AnyDAC (FireDAC) - 在 TBlobField.GetAsString 之后打开事务



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

给出了以下先决条件:

  • 在我们的表格上,我们有一个TADConnection,一个TADQuery和一个TADTable。TADQuery是TADTable的主来源。未对 AnyDAC 组件的设置进行特殊更改,因此自动提交模式处于活动状态。
  • Furhtermore,我们的表单上有一个TDBMemo,它链接到TADTable的ftMemo字段(Firebird字段类型= Blob/Size = 240/子类型=文本)

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

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

任何帮助表示赞赏。

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

相关内容

最新更新