Eğer tercih sana aitse hiç düşünme firebird e geç derim
master da bir şey yapmıyacaksın zaten

sadece master ı post et o db ye yazılsın, fiziksel olarak doğru bir şekilde yazıldıysa afterpost una
Kod: Tümünü seç
showmessage(dataset.fieldbyname('pk_anaTable').asstring)
ile bir bak bakalım master table ın pk sı varmı kayıt edilmişmi.eğer anormal bir durum varsa ona bir şey diyemiyeceğim ben mikisoftla hiç işim olmadı inşAllahda olmaz
Kod: Tümünü seç
detail.fieldbyname('ana_id').asinteger := master.fieldbyname('ana_id').asinteger;
Bu kodu detayın beforepost una eklemen gerek. master kaydedilmiş ve pk sı elinde, detail i kaydetmeden önce detail table a masterın pk sını eklemen gerek.
Bilgi bütünlüğü diye bahsettiğim master ve detay ve/veya bunların saz arkadaşları varsa yani bikaydı oluşturan bilgileri, fatura girişi, tahsilat girişi gibi mesela, bir seferde hepsinin kaydedilmesi yada işlemin iptal edilirse bütün işlemin iptal edilmesi geeken işlemler.Bunları transaction ile bir paket haline getiriyorun. en son noktada kaydet dersen bütün yapılan işlemler db ye eklenir,yada vazgeçersen tüm işlemler iptal edilir.Yani master ve detay table larına yaptığın tüm post lar transaction commit etmediğin sürece db ye eklenmez.rollback edersende tüm post delete işlemleri iptal edilir. bilgi bütünlüğü budur.
Transaction da global olmamalı ki aynı anda futura formu ve tahsilat formu açık olabilir bunlar birbirinden farklı gruptur.bunları iyi gruplamak gerekir.
Kolay gele