首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TpFIBTransaction提供错误: Delphi XE4中的事务在FIBPlus 7.5中没有活动

TpFIBTransaction提供错误: Delphi XE4中的事务在FIBPlus 7.5中没有活动
EN

Stack Overflow用户
提问于 2013-11-26 06:16:14
回答 2查看 1.6K关注 0票数 2

我正在从德尔菲7迁移到德尔福XE4。使用Delphi XE4,我使用的是FIBPLUS 7.5。Delphi 7应用程序运行良好,但我在Delphi XE4中得到了一个运行时错误:

代码语言:javascript
复制
"Project abc.exe raised exception class EFIBClientError with message frmABC.transRead: Transaction not active"  

PAS文件

代码语言:javascript
复制
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文件。我没有发现任何这样的声明:

代码语言:javascript
复制
transRead.Active := True;

但我确实在许多地方找到了以下声明:

代码语言:javascript
复制
if transRead.Active then
begin
..........
..........
end

我在一些地方也看到过这样的情况:

代码语言:javascript
复制
transRead.Active := False;

我们不需要激活交易吗?是自动激活的吗?请建议我的任何线索,我应该集中处理这个“事务不是活动的”错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-29 12:35:37

我刚刚设置了属性AutoReconnect = True of TFIBDatabase,它起了作用。

票数 0
EN

Stack Overflow用户

发布于 2013-11-26 09:47:05

有两种方法: 1.在execQuery或2之前启动事务。在TpFibQuery选项中设置选项字段qoStartTransaction,如:

代码语言:javascript
复制
Options := Options + [qoStartTransaction];
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20209824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档