MSSQL serverde transaction problemi yaşıyorum sebebini bir türlü çözemedim. Öncelikle şunu belirteyim örnek olarak vereceğim kod mantığını Firebird projelerimde de kullanıyorum hiç bir sorun yaşamıyorum.
Query bileşenlerin CachedUpdates özellikleri True, Bileşen SDAC, MSSQL Server 2008 R2.
Master tablomun After Post olayı aşağıdaki gibi;
Kod: Tümünü seç
with qMaster do
begin
try
ApplyUpdates;
DD.Commit;
except
on E: Exception do
begin
DB.Rollback;
RevertRecord;
Mesaj('Hata','Bilgiler kayıt edilirken beklenmeyen hata oluştu. Hata : '+#13+E.Message,
'ME','Tamam','','',True,False,False);
end;
end;
CommitUpdates;
qDetail.CommitUpdates;
end;
Kod: Tümünü seç
with qDetail do
begin
try
ApplyUpdates;
except
on E: Exception do
begin
RevertRecord;
Mesaj('Hata','Bilgiler kayıt edilirken beklenmeyen hata oluştu. Hata : '+#13+E.Message,
'ME','Tamam','','',True,False,False);
end;
end;
end;
Kod: Tümünü seç
qmaster.CancelUpdates;
qdetail.CancelUpdates;
DB.Rollback;
Komutları çalışıyor.
Bu düzene rağmen master tabloyu kaydedeğim yada etmiyeyim detail tabloda yaptığım hareketler veri tabanına yazılıyor. Firebird projelerinde bir sorun yaşamıyorum ancak MSSQL de yaşıyorum. Delphi konusunda iyi bir abime sorduğumda delphinin standart bileşenlerinde aynı sorunu bende yaşadım dedi. Ama ben SDAC kullanıyorum ve transaction çalışmıyor. Ne yapmalıyım, kodumda bir düzensizlik yada yanlışlık varmı yardımcı olursanız sevinirim. Teşekkürler.