procedure TForm2.Button8Click(Sender: TObject);
begin
try
ADOConnection1.BeginTrans;
.
.
.
t1.Post;
ADOConnection1.CommitTrans;
ShowMessage('Kayıt Başarıyla Aktarıldı...!');
except
ShowMessage('KAYIT HATASI OLUŞTU:::!');
ADOConnection1.RollbackTrans;
end;
kabaca yukarıdaki transaction eyleminin commit bölümünü aynı kod parçasında değilde farklı bir eylem altında bitirebilir miyiz?
Yani button1 tıklanınca transaction başlatılacak, ama commit olayı button2 tıklanınca tamamlanacak. Bu tür bir kullanım hatalı olur mu?
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Evet Olur. Aynı Try Except İçinde Kullanmanız salık verilir. Zira Commit etmediğiniz sürece sistem ellediğini ztüm kayıtları ve page'leri Kilitleyecektir.
Ayrıca Rollback satırı ile mesajı satırını yer değiştirin. Yani önce Rollback edin sonra Mesaj verin. Zira Hatayı aldığınız anda kullanıcı gelen mesajın butonunu tıklamadığı sürece Rollback edilmeyecek ve diğer tüm kullanıcıları kilitli tutacaktır sisteminiz.