Это предложение для цикла, оно не должно занимать больше времени, чем при использовании нефильтрованной таблицы kbmMemTable:
with kbmMemTable do
begin
First;
while not EOF do
begin
//do something, but don't change the position of the record-pointer!
//if you do some writing to the record, be sure to
// enable "AutoReposition" in your kbmMemTable
Next;
end;
end;
Отключение источника данных не является хорошим вариантом.Каждый компонент, подключенный к источнику данных, становится «пустым» и должен быть обновлен.Вы получаете много проблем, если используете рекурсию или более чем одно «отключение» источника данных.То же самое, когда вы включаете DataSet.С DisableControls вы сигнализируете всем подключенным компонентам, что они не должны обновлять данные.С EnableControls это условие завершается и элементы управления обновляются.Другое преимущество заключается в том, что счетчик увеличивается с каждым DisableControls и уменьшается с каждым EnableControls.Таким образом, вы можете вызывать это несколько раз (например, в рекурсии), и только последний вызов EnableControls, наконец, включает элементы управления.