Master&Detail yapıda detail tüm kayıtları çekiyor [çözül

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Master&Detail yapıda detail tüm kayıtları çekiyor [çözül

Mesaj gönderen mkysoft »

Şimdiye kadar master/detail bağlantıları elimle manuel olarak yapardım. SQLtable'ın master source özelliğini kullanarak iki tabloyu birbirine bağladım. Veri tabanına giden SQL komutlarını incelediğimde tüm kayıtları çektiğini gördüm. Haliyle yavaş kaldı. Detail olan tablonun tüm kayıtları çekmesi mantıksız geldi. Acaba parametre gibi bir şey mi girmek gerekiyorduda ben eksik yaptım?
Teşekkürler.
-------------
Mastersource özelliği değil datasource özelliği kullanılması gerekiyormuş.
Örnek:
SQL1 = select * from il
SQL2 = selec * from ilce where il_id= :il_id
SQL2'nin datasoruce özelliği SQL1 'in datasoruce'na ayarlanacak.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Bu tekniğe hiç bulaşmamıştım iyi bir özelliğe benzer. Kafama takılan bir konu var. :il_id parametre değerini nereden alıyor, bir olaya harici bir kod mu yazılıyor?
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

acaba quantum grid gibi filtrelemeyi kendisi mi yapıyor diye düşündüm bir an.. demek istediğim neden bütün kaytları çeksinki. belkide çekip lokal bir süzme yapıp öyle gösteriyordur
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Daha ayrıntılı yazarsam anlaşılır olur sanırım.
1. tablomuzun adi iller olsun ve fieldları il_id, il_adi olsun.
2.tablomuzun adi ilceler olsun ve fieldları il_id,ilce_adi olsun.

1. nesnemizin SQL'ine

Kod: Tümünü seç

select * from iller
yazıyoruz.
2. nesnemizin SQL'ine

Kod: Tümünü seç

select * from ilceler where il_id= :il_id
yazıyoruz ve datasoruce özelliğinden 1. nesnemize bağladığımız datasource'u seçiyoruz. Paramacheck özelliğini true yapıyoruz. Nesnemiz otomatik olarak paramlist'den istediği değerleri 1. nesneden alarak sorgusunu çalıştırıyor ve sadece o verileri çekiyor.
@ikutluay dediğin gibi mastersource olarak ayarlarsan tüm kayıtları çekiyor ve kendisi filtreleme yapıyor.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Demekki en iyi yöntem gene eski dost sql ve elle yazmak.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla