master/detail ve ibdataset

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
onselder
Üye
Mesajlar: 54
Kayıt: 09 Şub 2005 05:56
Konum: samsun
İletişim:

master/detail ve ibdataset

Mesaj gönderen onselder »

S.a.
arkadaşlar formuma bir tane ibdatabase,bir tane transaction,2 datasource,2 ibdataset,2dbgrid ve iki tane de dbnavigator koydum.
master/detail ayarlarını forumu araştırarak yaptım.gayet güzel de çalışıyo ce hiç sorunu yok.yalnız yapıpda mantığını anlamadığım bir nokta var.orayı soracağım sizlere.firebird 1,5 ve delphi7 kullanıyorum.

master tablom(isimler)
kayitno:integer(otomatik artan)
isim:varchar
adres:varchar

detail tablom(urunler)
kayitno:integer(otomotik artan)
ad:varchar
urunler:varchar

database ve transaction ayarlarını yaptım
datasource1-->ibdataset1(master)
datasource2-->ibdataset2(detail)
ibdataset2nin beforepost olayına:
ibdataset2.FieldByName('ad').value :=ibdataset1.fieldbyname('isim').value ;

buraya kadar herşey tamam
dataset2.datasource-->datasource1 bunu neden yaptık ne işe yarıyor
dataset1.selectsql-->select * from isimler
where where ad=:isim

asıl burası işte.detaildeki ad değeri ile masterdeki isimi nasıl eşleştiriyo.'select * from' yazan yere yani isimlerin yanına urunlerde yazmamız gerekmiyo mu.nasıl tanıyo.

mantığı anlamadan birşey yapmak istemiyorum.
kusura bakamayın soru biraz uzun oldu...
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

Kod: Tümünü seç

select * from tablom

where ad = :isim
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
anlamadığım dedğiniz kısımlar master detail yapan kısımlar.

dataset2.datasource-->datasource1[b/]
burda dataset1 i master yaptık dataset 2 yi de detail.

mastaer tablondaki benzersiz bi alanı detail tablon ile bağlantı için kullanıyoruz. örnekte o alanı string bir alan olan isim<->ad alanlarını kullanmışsın(her ne kadar string bir alan tavsiye edilmesede) where ifadesi bu iki alanı birbiriyle aynı olan kayıtları listelemeni sağlıyor. parametre olan
:isim e ise değerini otomatik olarak dataset1 den alıyor. (yukardaki atamadan dolayı).

umarım anlatabilmişimdir.

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
onselder
Üye
Mesajlar: 54
Kayıt: 09 Şub 2005 05:56
Konum: samsun
İletişim:

Mesaj gönderen onselder »

olayı çözdüm aslangeri sayende
teşekkur ederim
Cevapla