如何在SetRange处于活动状态时获取FireDAC记录计数

时间:2016-03-28 03:39:12

标签: delphi firedac record-count

我正慢慢地从ClientDataSet转移到我的项目中的FireDAC FDQuery组件(Delphi 10 Seattle)。

我经常使用CDS的一个技巧是检查范围内的记录数。

那是:

CDS.SetRange([Value1][Value2]);  
k := CDS.RecordCount;  
case k of  
  1 : DoSingleThing;  
  2 : DoDoubleThing;  
else  
  BailOnWrongCount;  
end;  

因为我需要同时提供整套数据,所以在第一次打开查询时我使用FetchOptions.Mode:= fmAll。

执行FDQuery.SetRange([Value1][Value2]);然后调用FDQuery.RecordCount始终返回整个数据集的记录数(按照fmAll) - 而不是当前范围。

我不得不手动遍历范围计数记录。

是否有更简单的方法来获取当前范围内的记录数?

1 个答案:

答案 0 :(得分:4)