Я медленно перехожу от 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), а не текущий диапазон.
Мне приходится вручную перебирать записи подсчета диапазона.
Есть ли более простой способ получить количество записей в текущем диапазоне?