Как уже рассказывалось выше, наборы данных ADO используют на клиентской стороне локальный кэш для хранения данных и сделанных изменений. Благодаря наличию этого кэша и появилась возможность реализовать групповые операции. В этом режиме все сделанные изменения не передаются немедленно источнику данных, а накапливаются в локальном кэше. Это повышает скорость работы и позволяет сохранять сразу группу модифицированных записей.
Из отрицательных сторон этого метода стоит отметить, что пока изменения находятся на клиенте, они недоступны другим пользователям. В данной ситуации могут возникать потери данных.
Для перевода набора данных в режим групповых операций необходимо выполнить следующие условия.
Набор данных должен использовать клиентский курсор:
ADODataSet.CursorLocation := clUseClient;
Курсор должен иметь тип ctstatic:
ADODataSet.CursorType := ctstatic;
Блокировка должна иметь значение itBatchoptimistic:
ADODataSet.LockType := ItBatchOptimistic;
Для передачи сделанных изменений в хранилище данных в компонентах ADO используется метод
arcurrent — операция выполняется только для текущей записи;
arFiltered — операция выполняется для записей из работающего фильтра;
rAll — операция выполняется для всех записей;
arAllchapters — операция выполняется для всех записей текущего набора данных (включая невидимые из-за включенного фильтра), а также для всех вложенных наборов данных.
Знаете ли Вы, что только в 1990-х доплеровские измерения радиотелескопами показали скорость Маринова для CMB (космического микроволнового излучения), которую он открыл в 1974. Естественно, о Маринове никто не хотел вспоминать. Подробнее читайте в FAQ по эфирной физике.