gpt4 book ai didi

delphi - 为什么有时我会收到 “Invalid transaction object”异常?

转载 作者:行者123 更新时间:2023-12-03 06:49:17 25 4
gpt4 key购买 nike

这段代码有什么问题吗?
有时我收到未处理的“无效交易对象”异常:

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的驱动程序。

最佳答案

如果CommitFreeAndNil抛出异常会怎样?

将调用RollbackFreeAndNil。 TD会有效吗?

您正在吃异常(exception),因此是证据。不要那样做重新抛出:

procedure BlaBla;
var
TD: TDBXTransaction;
begin
TD := SQLConnection.BeginTransaction;
try
SQLConnection.ExecuteDirect('some sql command');
SQLConnection.ExecuteDirect('some sql command');
except
SQLConnection.RollbackFreeAndNil(TD);
raise;
end;
SQLConnection.CommitFreeAndNil(TD);
end;

关于delphi - 为什么有时我会收到 “Invalid transaction object”异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/420022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com