Master Detail中的TClientDataset未关闭详细信息查询

时间:2012-02-16 20:26:32

标签: delphi tclientdataset

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

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

我认为应该关闭详细查询......

任何帮助?

由于

1 个答案:

答案 0 :(得分:0)

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

中看到它

提供者应自动打开或关闭主数据集和链接的详细数据集。因此,master.close;没有当前代码,因此您可以添加detail.close;,因为有些评论建议。如果您正在使用IBX,则在存在主 - 详细信息(QC 107456)时,甚至不会提交事务组件。

有两种解决方法:

  1. 您可以在MasterDataset.OnAfterClose事件中添加detail.close;。请注意,这是 MasterClientDataSet.onAfterClose。
  2. 您可以在Provider.Options中设置选项poFetchDetailsOnDemand。如果您不希望ClientDataSet仅按需获取详细信息的记录,则会产生不良影响。