我正在从 Delphi 7 迁移到 Delphi XE4。对于 Delphi XE4,我使用的是 FIBPLUS 7.5。Delphi 7 应用程序运行良好,但在 Delphi XE4 中出现运行时错误:
"Project abc.exe raised exception class EFIBClientError with message frmABC.transRead: Transaction not active"
考绩档案
var
transRead: TpFIBTransaction;
...
...
//transRead is used like this
with TpFIBQuery.Create(Self) do
begin
Database := dbMyDB;
Transaction := transRead;
SQL.Add ('Select .....');
ExecQuery;
Close;
Free;
end;
DFM File
object transRead: TpFIBTransaction
DefaultDatabase = dbMyDB
TimeoutAction = TARollback
Left = 192
Top = 196
end
我已经搜索了整个项目中的所有 pas 和 dfm 文件。我没有找到任何这样的声明:
transRead.Active := True;
但我确实在很多地方找到了以下声明:
if transRead.Active then
begin
..........
..........
end
我也在一些地方看到了这个:
transRead.Active := False;
我们不需要激活交易吗?是自动激活的吗?请向我建议任何线索,以消除此“交易未激活”错误。