0

目前我们正在将Delphi7应用程序的数据库组件从BDE组件迁移到AnyDAC (FireDAC) 版本 8.0.5组件。

给出了以下先决条件:

  • 在我们的表单上,我们有一个 TADConnection、一个 TADQuery 和一个 TADTable。TADQuery 是 TADTable 的 MasterSource。没有对 AnyDAC 组件的设置进行特殊更改,因此AutoCommit模式处于活动状态。
  • 此外,我们的表单上有一个 TDBMemo,它链接到 TADTable 的 ftMemo 字段(Firebird FieldType = Blob / Size = 240 / Subtype = Text)

在加载 blob 文本字段内容 (TBlobField.GetAsString) 期间,TADTable 会自动启动一个不会提交的事务。

这种行为正常吗?我们是否有可能避免这种公开交易?请注意,目前无法停用 AutoCommit。

任何帮助表示赞赏。

4

1 回答 1

1

是的,这是正常行为。只要您不与详细元组一起获取 BLOB 数据,AnyDAC 就会启动一个隐式事务来获取这些 BLOB 数据。

于 2018-03-07T08:14:19.887 回答