Farklı veritabanlarının ilişkilendirilmesi..

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Farklı veritabanlarının ilişkilendirilmesi..

Mesaj gönderen rsimsek »

Arkadaşlar http://www.ibexpert.info da şöyle bir şeyler gördüm. Bir aralar forumda sorulmuştu farklı veritabanlarını aynı anda kullanmak diye.. Belki işe yarar :wink:

http://www.ibexpert.info/documentation/ ... 45146.html

http://www.ibexpert.info/documentation/ ... 45149.html

http://www.ibexpert.info/documentation/ ... 20305.html
Joining tables from different databases

The following example illustrates how to join two tables from different databases:

execute ibeblock (iii integer, ivc varchar(100))
returns (id integer, ename varchar(100), company varchar(100))
as
begin

-- dro p database 'localhost/3060:c:\db1.fdb' user 'SYSDBA' password 'masterkey' clientlib 'C:\Program Files\Firebird\bin\fbclient.dll';

-- dro p database 'localhost/3060:c:\db2.fdb' user 'SYSDBA' password 'masterkey' clientlib 'C:\Program Files\Firebird\bin\fbclient.dll';

create database 'localhost/3060:c:\db1.fdb' user 'SYSDBA' password 'masterkey'
page_size 4096 sql_dialect 3
clientlib 'C:\Program Files\Firebird\bin\fbclient.dll';

create database 'localhost/3060:c:\db2.fdb' user 'SYSDBA' password 'masterkey'
page_size 4096 sql_dialect 3
clientlib 'C:\Program Files\Firebird\bin\fbclient.dll';

create connection db1 dbname 'localhost/3060:c:\db1.fdb'
password 'masterkey' user 'SYSDBA'
clientlib 'C:\Program Files\Firebird\bin\fbclient.dll';

create connection db2 dbname 'localhost/3060:c:\db2.fdb'
password 'masterkey' user 'SYSDBA'
sql_dialect 3
clientlib 'C:\Program Files\Firebird\bin\fbclient.dll';

use db1;

vstmt = 'create table "employees" ( ' || '
id integer not null primary key,
full_name varchar(100),
company_id integer)';

execute statement :vstmt;

commit;

use default;

select count(*) from help_items into :icount;

use db1;

insert into "employees" (id, full_name, company_id) values (1, 'Alexander Khvastunov', 2);
insert into "employees" (id, full_name, company_id) values (2, 'Bill Gates', 1);
insert into "employees" (id, full_name, company_id) values (3, 'John Doe', NULL);
insert into "employees" (id, full_name, company_id) values (4, 'Vladimir Putin', 3);
insert into "employees" (id, full_name, company_id) values (5, 'Somebody', 15);

use db2;

execute statement
'create table companies (
id integer not null primary key,
company_name varchar(100))';

commit;

insert into companies (id, company_name) values (1, 'Microsoft');
insert into companies (id, company_name) values (2, 'HK-Software');
insert into companies (id, company_name) values (3, 'The Kremlin?');

commit;

use db1;

for execute statement 'select id, full_name, company_id from "employees"'
into :id, :ename, :cid
do
begin
use db2;

company = NULL;

select company_name from companies
where id = :cid
into :company;

suspend;
end

close connection db1;
close connection db2;
end
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

ben sormuştum ama geçti burun pazarı :)
ilgilendiğin için teşekkürler arşivde bulunsun. :bravo:
ne demişler sakla kodu gelir zamanı :lol:
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Geçse de Bor'un pazarı tam olarak (biraz uğraştığımda bu yapıyı fb2.0 tanımadı) çözülmüş değil :wink: En azından böyle bir şey var. Herkese her an lazım olacak bir yöntem olarak olayı tazelemek niyetiyle buraya yazdım.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

işe yarayacağından eminim :wink:
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

İhtiyaç duyduğumuza göre başkaları da düşünmüştür tabi ki. Zaten bir çok veritabanında (örneğin Oracle'da Create Database Link ... ) yapılabilmekte..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla