这段代码有问题吗?
有时我会得到一个未处理的“无效事务对象”异常:
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;
这个异常是向用户提出的,所以我认为它是由 RollbackFreeAndNil 提出的,因为所有的休息都在 try..except 中。
我应该用另一个 try..except 来包装 RollbackFreeAndNil 吗?真是一团糟。
我正在使用 Delphi 2009、带有 Firebird 2.1 的 DBX 和 Devart 的驱动程序。