Delphi7+Interbase+IBX ile...
Master-Detail yapım var ve Interbase'de trigerlarla bu relation çalışır durumda(silme-Modify-Ekleme) Form üzerinde de IBDateset ve Transectionlarla bu relation sağlanmış durumda...
Sorum Şu:
Masterda KodNo 3 olan bir kaydı sildiğimde detaildede(DBGride bağlı) KodNo 3 olanlar siliniyor görünüyor fakat silinen 3 noyu tekrar mastera eklediğimde detaildeki eski 3 kodno olanlar tekrar geliyor. (Aslında database workbench ile baktığımda gerçekten detaildekilerde silinmiş durumda). Yani sorun, DBGridde sanırım hafızadaki detail kayıtlar birşekilde tekrar geliyor(gelmemesi lazım)...Bu durumda neyi nasıl refresh veya close-open yapmamız lazım sizce? DataSeti açıp kapatsak(fikir olarak) uygun olurmu
Teşekkür eder, hayırlı işler dilerim.....
arada Transectionlarda , afterpost ve after insert olayları için "Commit retaining" yazılmış durumda...
Master-Detail'de, detail tablonun anında refresh edilmesi...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Master-Detail'de, detail tablonun anında refresh edilmesi...
Delphi konusunda daha çok database ile ilgileniyorum...
Gökhan Bey,
Zaten database tarafında triger ile detaildeki kayıtlar siliniyor, o tarafta sorun yok... Sorun olan şey , form üzerindeki DBGridde gerçekte silinmiş olan kayıtların, aynı kaydı tekrar(master'a) girdiğimizde sanki silinmemiş gibi görükmesi, aslında databas^'de detail yok ama DBGrid hala hafızadakileri getiriyor, yani DBGrid birşekilde güncellenmeli, refresh edilmeli, ama nasıl???
Zaten database tarafında triger ile detaildeki kayıtlar siliniyor, o tarafta sorun yok... Sorun olan şey , form üzerindeki DBGridde gerçekte silinmiş olan kayıtların, aynı kaydı tekrar(master'a) girdiğimizde sanki silinmemiş gibi görükmesi, aslında databas^'de detail yok ama DBGrid hala hafızadakileri getiriyor, yani DBGrid birşekilde güncellenmeli, refresh edilmeli, ama nasıl???
Delphi konusunda daha çok database ile ilgileniyorum...
peki baska bir arac ile Database e baktıgınızda silinmis gorunuyormu.
yani grid uzerinden sildiniz, baska kayıtlar uzerinde geziniyorsunuz diyelim
gittiniz ibexpertten baktınız sildiginiz kayıtlar duruyormu durmuyormu?
ayrıca her islem bir transaction gerektirir, ge her transaction islem sonunda ya onaylanır yada iptal edilir.
IbTransaction nesnesinde Default action da TACommit geliyor ,burayı degistirdiyseniz silme islemi sonunda da Commit yada CommitRetaining yapmanız gerekmekte.
yani grid uzerinden sildiniz, baska kayıtlar uzerinde geziniyorsunuz diyelim
gittiniz ibexpertten baktınız sildiginiz kayıtlar duruyormu durmuyormu?
ayrıca her islem bir transaction gerektirir, ge her transaction islem sonunda ya onaylanır yada iptal edilir.
IbTransaction nesnesinde Default action da TACommit geliyor ,burayı degistirdiyseniz silme islemi sonunda da Commit yada CommitRetaining yapmanız gerekmekte.
ÜŞENME,ERTELEME,VAZGEÇME
İlk yazdığımdaki gibi, aynı anda DBWorkBench ile baktığımda detaillerin silindiği görünüyor(orada trigger var tabi affetmiyor
). Yani aslında DBGrid gerçekte silinmiş olan kayıtları tekrar getiriyor detailde(Mastera kodno 3 diye yeni bir kayot yaparsam) . Buda şunu gösteriyor, DBGrid hala hafızasındaki detailleri getiriyor(çünkü database 'de yok kayıtlar DBWorkbench ile bakıyorum online...) . Transection ve IBDataSet' te CommitRetaining yapılıyor afterpost ve afterdelete' de ve sorun yok...
Yani işin özü DBGrid' i bir şekilde refresh, DataSeti veya Transection' u bir şekilde close-open gibi birşey yapmak lazım ki DBGrid kendini güncellesin...Ama nasıl ve neyi?.....

Yani işin özü DBGrid' i bir şekilde refresh, DataSeti veya Transection' u bir şekilde close-open gibi birşey yapmak lazım ki DBGrid kendini güncellesin...Ama nasıl ve neyi?.....
Delphi konusunda daha çok database ile ilgileniyorum...