violation of primary.....(master detail)hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

violation of primary.....(master detail)hatası

Mesaj gönderen Arifceylan28 »

Merhaba.Sorunum kolaydır ama query hakkında pek bi bilgim yok.

İbtable nesnesini kullandığımda Veritabanına kayıt yapabiliyorum fakat ibtable yerine ibquery kullandığımda veritabanına kayıt yapmıyor.Hangi özelliğini değiştireceğim.
Formda ibtable,ibdatabase,ibtransaction,datasource var.

Bir de master detaili en sağlam hangi bileşenleri bağlayarak yapabilirim?
Teşekkürler.
En son Arifceylan28 tarafından 19 Ağu 2004 01:07 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

Hele şükür birinci sorumu updatesql kullanarak çözdüm. :)
İkinci soruma yanıt bekliyorum.
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

Bir de ibquery ye yaptığım kayıtları programı tekrar başlattığımda göremiyorum.
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

ibquery+ibupdatesql yerine sadece ibdataset kullnırsan daha iyi olur.
bir table ve query de bulunan bütün özellikleri barındırıyor.
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

ibdataset kulandığımda master detail tablo oluştururken ibtableyi ibdatasete mi bağlayayım?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Eğer ibdataset i detail tablo yapcaksan ibdataset in datasource özelliğine master tablonun datasourcesini seç birde ibdatasetin selectsql inde

Kod: Tümünü seç

where detailtablodakialan=:mastertalodakialan
ifadesini yazmalısın.
mastertablodakialanparametresini datasource dan otomatik olarak alıyor.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

Aslangeri sağolasın.Forma iki tane ibdataset,datasource koydum.Dediklerini yaptım.ibdataset2nin selectsql cümlesine
select * from DETAIL
where kayitno=:kayitno
yazdım ve datasource1e bağladım.
Program çalışırken şu hatayı veriyor.

Violation of primary or unique key constraint "PK_detail" on table detail.
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

Bu sorunumu da deneme yanılma yoluyla çözdüm.Cachedupdate özelliğini true yaparak.

Fakat o sorun bitiyor başka sorun başlıyor.Masterda kayıtı yaptıktan sonra detail tablodaki bağlantılı alanı kayitno yu otomatik olarak kendisi değiştirmiyor.Benim yazmam gerekiyor.

Bir de master tablodaki bir kayıtın detailine kayıt yapıyorum.Daha sonra kayıt yapıldı gözüküyor.Tekrar açtığımda yaptığım kayıt ortalıkta yok. :duvar:
Birşeyleri yanlış yaptım ama neyi bilmiyorum.Yardımlarınızı bekliyorum.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

detail in beforepost unda masterkayıt no sunu detail tabloda atamalısın
atamazsan foreign key olan detail tablonun det_master_id alanı null olacak
master-detail baglantıda da eslesmedigi icin kayıt gorunmeyecek
ÜŞENME,ERTELEME,VAZGEÇME
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

Hocam sağolasın.O sorunu öyle hallettim.Bdede tableler ile yaptığımda otomatik koyuyordu da.
Fakat kayıtları yine göremiyorum.
ibdatasetlerin afterpost olayına
ibtransaction1.CommitRetaining ; yazıyorum.
Form1.close olayına da
IBTransaction1.Commit; yazıyorum fakat yine de olmuyor.
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

Hele şükür bu sorunu da hallettim.Nasıl hallettiğimi bilmiyorum ama.Herşeyi yeniden yaptım o kadar.Yine küçük bi sorun var ama onu hallederim herhalde.Olmazsa yine yazarım tabi.Herkese teşekkür ederim.Artık ben de interbase ile master detail tablo oluşturdum. Darısı diğerlerinin başına.
Saygılar
Cevapla