Bu kodların yaptığı iş biliyorsunuz ki özetle yapılan kayıtları veritabanına kaydediyor. (Post ve Append'i çıkarın aradan. Onlardan sonra commitretaining veya applyupdates yapmak gerekiyor ki veritabanına fiziksel olarak yazsın.) IBTable ile kayıt yaparken bu kodların hangisini kullanmak daha doğru? (Commit, commitretaining ve applyupdates) Şu anda üzerinde çalıştığım projemde Kaydet tuşunda post; ve ibtransaction1.commitretaining; kodları, IBTable'ın AfterPost olayında ise IBTable1.Applyupdates; kodları var. Bu şekilde kullanırken hiç hata almıyorum ve istediğim işi de yapıyor. Ama sizce böyle çalışmak sağlıklı mı? Yoksa commitretaining i afterpost a alıp applyupdates i tamamen mi kaldırim?
ApplyUpdates ve CancelUpdates tarnsactionla değilde direkt olarak table, query veya dataset teki bilgileri hafızaya alarak çalışır. yani post komutundan sonra bilgiler chackedupdates true ise transactionda değilde hafızaya yüklenir. tabi bu durum uzun bilgi girişlerinde hafızayı doldurabilir veya performansını düşürebilmektedir. post ile hafıya alınan bilgiler applyupdates komutu ile vt ye yazılır ve hafıza boşaltılır. cancelupdates ile de hafızadaki bilgiler vt ye yazılmaz hafıza boşaltılır.
Commit: Transactiondaki bilgileri vt ye yazar tarnsactiondaki bilgiler boşaltılır, vt ile transaction arasındaki bağlantı kesilir.
Rollback : traansactiondaki bilgiler vt ye yazılmaktan vazgeçilir. transaction boşaltılır, vt ile transaction arasındaki bağlantı kesilir.
CommitRetaining : transactiondaki bilgiler vt ye yazılır transaction boşaltılır, vt ile transaction arasındaki bağlantı devam eder.
RollbackRetaining : traansactiondaki bilgiler vt ye yazılmaktan vazgeçilir. transaction boşaltılır, vt ile transaction arasındaki bağlantı devam eder.
yukarıda bahsettiğim 2 yöntemden birini kullanmalısın. her ikisini de kullanmanı tavsiye etmem. hangisi daha sağlı dersen, tabiki transaction derim. transaction un görevi budur. yani güvenli bir şekilde vt ye kaydetmek. kolay gelsin..
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez. Mevlana
OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
İlginiz için teşekkürler. O kadar uğraşıp yazmışsınız ama benim asıl sorduğum kısaca kaydederken (post işlemi) commitretaining yapıp kayıttan sonra da applyupdates kullanınca herhangi bir sorun olup olmayacağıydı.
Şu anda böyle kullanıyorum ve hatasız çalışıyor. Ama sizin gibi bizden çok daha tecrübeli abilerimizin bu durumda hangi yöntemi kullandığınızı / kullanacağınızı öğrenmek istiyorum.
ibx bileşenlerinin hangi sürümünü kullanıyorsunuz ?
3 katmanlı bir program geliştirmiyorsanız applyupdate kullanmanın çok fazla bir artısı yok hatta gereksiz bile diyebiliriz.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.
Delphi 6 ile gelen standart IBX bileşenlerini kullanıyorum. Bende gereksiz diye düşünüyorum. Aynı şeyi 2 kodla birlikte yapmanın faydasını daha önce hiç görmedim. Commitretaining kullanmak çok daha mantıklı.