aynı anda aynı query ile birden fazla veritabanına erişilemez her halde. böyle bir şey bugüne kadar görmedim duymadım.
dbexpress ile şunu yapabilirsiniz.
sql standartlarına uyduğunuz sürece; sadece dbexpressin sqlconnection bileşenin bağlantı ayarlarını değiştirerek, uygulama üzerinde her hangi bir değişiklik yapmadan birden fazla sql sunucuyu kullanabilirsiniz.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.
mege nin verdigi linkte konu gecmisti fakat orada TDatabase nesnesi yani BDE kullanılıyor.... BDE olmaksızın bu işin olmasi bana biraz zor geliyor.... O sql i yorumlayacak bi database engine şart çünkü.... Yani yazacağınız bir join de farklı veritabanlarından farklı tabloları getirmek bu veritabanlarına ilgili işleri paylaştırmak vs...
Veritabanınız nedir?
Belki soyle bir yontem olabilir... Sybase de proxy table diye bir şey var. Mevcut veritabanınıza bir başak veritabanından bir tabloyu proxy table olarak verdiginiz bir isimle kaydediyorsunuz. Ve artik diger veritabanındaki o tablo bu veritabanında bir isimle kullanımıza hazır istediginiz gibi aynı select icinde kullanın....
Kullandığınız veritabanın bu tur ozelliklerini arastirarak bu sql cumlenizi bir stored procedure seklinde yazmaya çalışmak tek çare gibi duruyor... Proxy table gibi bir ozellik belki vardir. Ya da ilgili database in boyle bir kabiliyeti olabilir .Yani başka bir veritabanından bir tabloyu select icinde kullandırtma imkanı....
Kanaatimce bu iş delphi tarafında BDE siz zor ....
Asıl isteğim veritabanından bağımsız olarak bunun gerçekleştirilebilmesi (BDE'de olduğu gibi).
InterBase/FireBird' de bu iki adımda yapılabiliyor (External File).
Ama bildiğim kadarıyla tek adımda yapılabilmesi mümkün değil?
Ben bunun şu anki mevcut Delphi componentleri veya DLL'leriyle yapılamadığı kanaatindeyim zaten.
Ama belki bu özellikleri de olan geliştirilmiş dbExpress componentleri/DLL'leri vardır diye düşünüyorum.
Veritabanlarından birisini master seçip diğerini bunun içine link ederek bu işi yapabilirsiniz. Aslında bu şekilde yapmalısınız. Çift taraflı commit yapabilmek için buna ihtiyacınız var.
Oracle: Sadece diğer oracle db leri link edebiliyorsunuz.
MS SQL Server: ODBC text vs ADO nun kullanabildiği her türlü kaynağı link edebiliyorsunuz.
SyBase: Bir önceki mesajda geçmiş, diğer hangi db leri link edebildiğinizi bilemiyorum.
MSDE yi birbirine link edilemeyen iki db yi birlikte kullanmak için kullanabilirsiniz. Misal bir excel tablosuyla oracle DB table i birbirine join edebilirsiniz. Performans ne olur diye sorarsanız bilemeyeceğim.
Kolay gelsin.
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
doganzorlu yazdı:Oracle: Sadece diğer oracle db leri link edebiliyorsunuz.
MS SQL Server: ODBC text vs ADO nun kullanabildiği her türlü kaynağı link edebiliyorsunuz.
SyBase: Bir önceki mesajda geçmiş, diğer hangi db leri link edebildiğinizi bilemiyorum.
Sybase e de IBM DB/2, Oracle, Ms SQL ve ODBC uzerinden baglanilabilen her turlu veritabanını remote server olarak tanımlayıp iclerinden istenilen tablolari proxy table olarak kullanmak mumkun.....
Ben de ekleyeyim, MS-SQL Server'da Linked server denen bir olay vardır. Yani bırakın ayrı DB'de olmasını farklı server'larda da olsa tabloya ulaşma imkanı tanır.
yani
SELECT * FROM Server1.Database1.dbo.Tablo1 diyerek veriye ulaşmanızı sağlar.
SELECT * FROM openquery(RDBALIAS,'SELECT * FROM xx')
şeklinde kullanabiliyorsunuz. Yani remote db nin schema sını cache etmiyor.
Malumat..
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)