Master ve Detail Tabloların state'lerinin aynı kalması

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Master ve Detail Tabloların state'lerinin aynı kalması

Mesaj gönderen hdayi »

Merhaba,
bir master ve iki adet buna bağlı detail tablom var. İçlerinden herhangi biri edit moduna geçtiğinde diğerleri de geçsin istiyorum.

Kafam durdu. :(
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

hepsinin afteredit eventine diger ikisi için Tablex.Edit seklinde kod yazmaniz yeterli..
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Teşekkürler,
Halloldu ancak bir sorum olacak. Ben beforeedit'e yazmıştım kodu, döngüye girip "stack overflow" diye bir hata veriyordu.
Afteredit'e yazınca sorun halloldu. Neden, afteredit'te olmasının farkı ne?
Örnek olarak tablonun biri için yazdığım kod:

Kod: Tümünü seç

procedure Tdm.tblnikahAfterEdit(DataSet: TDataSet);
begin
if not(tblerkek.State in [dsedit]) then tblerkek.Edit;
if not(tblkadin.State in [dsedit]) then tblkadin.Edit;
end;
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Cunku 1. tabloya edit yapilmadan once diger iki tabloyu da edit moduna gecirmeye calisiyordunuz... Dolayisiyla hemen 2. ve 3. tablonunda beforeeditleri calisiyordu. Oradaki kodlar da diger iki tabloyu yani 1. taqbloyu edit moduna getirmeye calisiyordu. yaptiginiz state kontrolu henuz 1. tablo edit moda gecmedigi icin ise yaramiyor ve 1. tablonun edit modu tekrar calisiyor. Tabi diger tablolarin edit motodlarini tekrar cagiriyor derken bu booooyle surup gidiyor.... taaaki stack dolup da oferflow olana kadar... Yani klasik tabiriyle kısır donguye giriyor program... Bu 3 evente breakpoint koyarsanız bu kısır donguyu topun nasıl oradan oraya atıldıgını da gorebilirsiniz....

Kolay gelsin..
Cevapla