Is there something wrong with this code?
Sometimes I get an unhandled "Invalid transaction object" exception in it:
procedure BlaBla;
var
TD: TDBXTransaction;
begin
TD := SQLConnection.BeginTransaction;
try
SQLConnection.ExecuteDirect('some sql command');
SQLConnection.ExecuteDirect('some sql command');
SQLConnection.CommitFreeAndNil(TD);
except
SQLConnection.RollbackFreeAndNil(TD);
end;
end;
This exception is being raised to the user, so I assume it's raised by RollbackFreeAndNil, since all rest is inside a try..except.
Should I wrap RollbackFreeAndNil with another try..except? What a mess.
I'm using Delphi 2009, DBX with Firebird 2.1 and Devart's driver.