BDE Kullanmadan İki VT'de Ortak SQL Kullanılabilir mi?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

BDE Kullanmadan İki VT'de Ortak SQL Kullanılabilir mi?

Mesaj gönderen Hakan Can »

BDE kullanmadan (dbExpress componentleriyle) birden fazla veritabanında ortak SQL kullanılabilir mi?
Kullanılabilirse nasıl kullanılır?

Örneğin:

Kod: Tümünü seç

SELECT 
  A.KODU, B.ADI
FROM ":A_VERITABANI:KODLAR" A
  INNER JOIN ":B_VERITABANI:ADLAR" B ON A.ID = B.ID
gibi.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

sql zaten standartdır, tabi ansisql kullanıyorsanız.
sql ile yazdıgınız ifadeleri istediginiz veritabanında kullanabilirsiniz.
ÜŞENME,ERTELEME,VAZGEÇME
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Sorum yanlış anlaşıldı galiba.
Benim sorum aynı query içinde aynı anda birden fazla veritabanına erişilmesi ile ilgili.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

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.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

viewtopic.php?p=7245#7245

sanırım benzer bi soru
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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 ....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

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.
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,

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)
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Örnek bir query yazabilir misiniz?
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Teşekkürler.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

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.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

tabiki zaten sybase de bu dediğimi inernet uzerinden yurt disindaki bir veritabanin baglanarak denemistim....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,

MS SQL server da Linked db eğer MSSQL değilse;

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)
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Herkese teşekkürler.
Cevapla