如何根据嵌套数据集记录计数过滤数据集?

时间:2010-02-14 22:21:17

标签: delphi dataset filter

我有一个数据集我想基于数据集类型字段记录计数应用过滤器,例如:'NESTED_DATASET_FIELD.RecordCount> 0'

2 个答案:

答案 0 :(得分:2)

如果数据集来自基于SQL的存储引擎,请在连接表上使用select distict查询,并且只使用结果集中主表的字段。让SQL引擎为您完成工作。

答案 1 :(得分:1)

根据您的具体情况,您可以使用:

  1. OnFilterRecord活动中,您可以:

    接受:= myDataSetField.NestedDataSet.RecordCount> 0;

  2. 如果您有SQL后端,则可以使用ExistsCount来仅获取所需的记录。如果您是通过网络,也许是最好的方法。但是我不知道你有什么基础设施。

  3. OnFilterRecord活动中,您可以:

    接受:=不是myDataSetField.IsNull; //只测试DataSet字段是否为空 - 这是最快方法之一 ...但这取决于您的数据/数据集等的结构。

  4. 有时最好在DataSet / Table中使用专用字段来指定此状态,因为通常从嵌套数据集中获取此类信息可能会非常昂贵。 (必须至少部分获取它等。)

  5. 此外,出于同样的考虑(参见上文4),您可以使用存储过程(如果您的数据库后端允许)来获取此信息。

  6. HTH