delphi - 主详细信息中的 TClientDataset 未关闭详细信息查询

标签 delphi tclientdataset

我使用一个提供程序在主详细信息中有 2 个 ClientDatasets。
2 个基础查询作为主详细信息与数据源连接,并且主查询将详细信息作为字段 (TDatasetField)

我的问题是关闭主(甚至是细节)数据集会关闭主查询,但细节没有关闭......如果我们稍后尝试使用相同的参数重新启动相同的查询,则会导致问题。

我认为无论如何都应该关闭详细查询...

有什么帮助吗?

谢谢

最佳答案

这是 Delphi XE 中的一个问题。它已经在 Quality Central (QC) 101264 中。
你也可以在 EDN 的 forum 中看到它

提供者应自动打开或关闭主数据集和链接的详细数据集。因此,master.close; 没有当前代码,因此您可以按照一些评论的建议添加 detail.close;。如果您使用的是 IBX,即使有主从(QC 107456)时也不会提交事务组件。

有两种解决方法:

  • 您可以在 MasterDataset.OnAfterClose 事件中添加 detail.close;。请注意,这是 而不是 MasterClientDataSet.onAfterClose。
  • 您可以在 Provider.Options 中设置选项 poFetchDetailsOnDemand 。如果您不希望 ClientDataSet 仅按需获取详细信息的记录,这可能会产生不良影响。
  • 关于delphi - 主详细信息中的 TClientDataset 未关闭详细信息查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318535/

    相关文章:

    c++ - 如何禁用XE6中的嵌入式设计器?

    json - 当值为整数时,无法将小数部分显示为 .0

    delphi - Delphi 中的 TMemo 滚动

    mysql - Delphi双击DBGrid查找行的字段内容

    delphi - TDataset 书签的有效期是多长时间?

    delphi - 如何在没有 CreateDataset 的情况下向数据集添加新字段?

    Delphi Firemonkey TGrid如何更新

    delphi - 在窗体中创建 Delphi 对象

    database - TClientDataSet:如何在数据库结构发生变化时保持本地数据的保存和可用