Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000555.doc
Скачиваний:
31
Добавлен:
30.04.2022
Размер:
19.12 Mб
Скачать

7.5.2. Методы компонента adoDataSet

  • Метод Open открывает набор данных, а также обеспечивает выполнение SQL-запроса.

  • Метод Close закрывает набор данных.

  • Метод FilterOnBookmarks(Bookmarks: array of const) производит фильтрацию по существующим закладкам, которые были ранее установлены на необходимых записях. Вызов метода FilterOnBookmarks влечет за собой автоматическую очистку свойства Filter и присвоения значения fgUnassigned свойству FilterGroup (т. е. фильтр не задан).

  • Метод UpdateBatch(AffectRecords: TAffectRecords = arAII) применяется для окончательной фиксации изменений в физической базе данных.

  • Метод CancelBatch(AffectRecords: TAffectRecords = arAII) предназначен для отмены всех сделанных изменений, не сохраненных методом UpdateBatch.

Применение последних двух методов связано с тем, что наборы данных ADO используют локальный кэш на клиентской стороне. В этом кэше хранятся данные и сделанные клиентом изменения, что позволяет не передавать их немедленно источнику данных, а накапливать и затем сохранять сразу целую группу модифицированных записей.

При этом положительным аспектом является то, что благодаря описанной возможности повышается скорость работы. Отрицательный момент состоит в том, что пока изменения находятся на стороне клиента, они недоступны другим пользователям.

Для того чтобы подобное кэширование изменений стало возможным, должны быть выполнены следующие условия:

  • в наборе данных должен быть установлен клиентский курсор, т. е. свойству CursorLocation нужно присвоить значение clUseClient;

  • курсор должен быть статическим, поэтому свойству CursorType устанавливается значение ctStatic;

  • свойство LockType должно быть равно ItBatchOptimistic, что определяет тип блокировки записей.

Установка перечисленных свойств указанным образом переводит набор данных в режим групповых операций и позволяет использовать методы UpdateBatch и CancelBatch.

Оба эти метода имеют параметр AffectRecords, определяющий, к каким записям будут применяться операции сохранения или отмены изменений.

Данный параметр может принимать одно из четырех значений:

  • агАll - действие метода распространяется на все записи набора данных;

  • arAllChapters - метод применятся ко всем записям текущего набора данных, а также всех подчиненных наборов данных;

  • arCurrent - метод выполняется только для текущей записи;

  • arFiltered - метод работает с записями из активного фильтра.

7.5.3. Cобытия компонента adoDataSet

Основными событиями компонента ADODataSet являются следующие:

  • OnFetchComplete Возникает после обновления набора данных

  • OnFetchProgress Генерируется в процессе обновления, если набор данных работает в асинхронном режиме

  • OnWillMove Происходит перед перемещением курсора по набору данных

  • OnMoveComplete Возникает после завершения перемещения курсора в наборе данных

  • OnEndOfRecordSet Происходит при достижении курсором последней записи набора данных

  • OnWillChangeRecord Генерируется до изменения записи набора данных

  • OnRecordChangeComplete Вызывается после изменения записи набора данных

Событие OnFetchComplete имеет параметр Error, который представляет собой ссылку на объект ошибки ADO, если она возникла.

Рассмотрим важнейшие свойства объекта ошибки ADO:

  • Description - возвращает описание ошибки, передаваемое из объекта, в котором произошла данная ошибка;

  • SQLState - содержит текст команды, вызвавшей ошибку;

  • NativeError - позволяет узнать код ошибки, который передается из объекта, где данная ошибка произошла.

Все перечисленные выше свойства объекта ошибок ADO являются свойствами только для чтения.