2 farklı serverdaki tabloları join yapmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
MehmetZahit
Üye
Mesajlar: 70
Kayıt: 04 Tem 2007 08:39

2 farklı serverdaki tabloları join yapmak

Mesaj gönderen MehmetZahit »

bir connection ile bir db ye bağlanıyoruz.

iki ayrı DB deki tabloları joinlemek mümkünmüdür?

bir veritabanında Tc kimlik numaraları ile kayıtlar var, başka bir veritabanında TC numaraları ile başka kayıtlar var. Bunları TC numarası bazında birleştirerek tek bir tablo olarak sorgu almak istiyorum.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen sabanakman »

Hangi DB?
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen conari »

server mı, db mi?
ilkdb..tablo.field=ikincidb..tablo.field
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen m_ekici »

benim de ihtiyacım olmuştu.
Direk query ile yapamıyorsun. Fakat LINKED SERVER ile 2.serveri 1.servera tanıtıp, aynı serverdaki 2.DB gibi kullanabiliyorsun..
En son m_ekici tarafından 09 Mar 2010 10:32 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
MehmetZahit
Üye
Mesajlar: 70
Kayıt: 04 Tem 2007 08:39

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen MehmetZahit »

sabanakman yazdı:Hangi DB?
SQL Server. Aynı server da iki ayrı DB.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen m_ekici »

Kod: Tümünü seç

SELECT ST.LOGICALREF, ST.CODE, ST.NAME, UF.CODE AS CODE1, UF.NAME AS NAME1 FROM db1.dbo.LG_001_ITEMS ST WITH (NOLOCK)
LEFT JOIN db2.dbo.LG_001_UNITSETF UF ON UF.LOGICALREF=ST.UNITSETREF

Kod: Tümünü seç

SELECT column1 FROM db1.dbo.tablo1 WHERE ....
UNION 
SELECT column2 FROM db2.dbo.tablo2 WHERE ....
Kullanıcı avatarı
MehmetZahit
Üye
Mesajlar: 70
Kayıt: 04 Tem 2007 08:39

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen MehmetZahit »

Kod: Tümünü seç

SELECT TCKIMLIKNO 
FROM DB_1.dbo.SATICILAR, DB_2.dbo.HRK 
WHERE TCKIMLIKNO = '12345678901'
	and DB_2.DBO.HRK.SATID = DB_1.DBO.SATICILAR.TCKIMLIKNO
Şeklinde join yapmak istiyorum fakat hata mesajı olarak :

Kod: Tümünü seç

Cannot resolve collation conflict for equal to operation.
veriyor.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen m_ekici »

text alanların Collation ları farklı. (DB_2.DBO.HRK.SATID = DB_1.DBO.SATICILAR.TCKIMLIKNO) aynı collationa sahip olmalı. google da collation değiştirme olarak aratırsın.
Kullanıcı avatarı
MehmetZahit
Üye
Mesajlar: 70
Kayıt: 04 Tem 2007 08:39

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen MehmetZahit »

biri yabancı biri türk iki farklı yazılımın veritabanları olduğu için collation'u değiştirince sistemde sorun çıkabilir. Bu şekilde yapıldığını öğrenmiş oldum ilginiz için teşekkür.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: 2 farklı serverdaki tabloları join yapmak

Mesaj gönderen sabanakman »

SQL Server üzerinde veritabanına veya herhangi başka bir yere ayar yapmadan collate dönüşümü yaparak şart verebilirsiniz. Tek yapmanız gereken

Kod: Tümünü seç

(DB_2.DBO.HRK.SATID collate TURKISH_CI_AS = DB_1.DBO.SATICILAR.TCKIMLIKNO collate TURKISH_CI_AS)
şeklinde aynı collation'a dönüşüm yaptırmak o kadar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla