作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 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"
PAS文件
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;
我们不需要激活交易吗?是自动激活的吗?请建议我任何线索,我应该集中精力摆脱这个“交易不活跃”错误。
最佳答案
有两种方法:1. 在 execQuery 或之前启动事务2. 在TpFibQuery的Options中设置options字段qoStartTransaction,如下:
Options := Options + [qoStartTransaction];
关于delphi - TpFIBTransaction 给出错误 : Transaction is not active in Delphi XE4 with FIBPlus 7. 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20209824/
我正在从 Delphi 7 迁移到 Delphi XE4。对于 Delphi XE4,我使用的是 FIBPLUS 7.5。 Delphi 7 应用程序运行良好,但我在 Delphi XE4 中遇到运行
我是一名优秀的程序员,十分优秀!