cmdText - текстовая команда, интерпретируемая источником данных (например запрос SQL);
текст должен быть составлен с учетом правил для конкретного источника данных;
cmdTable - команда на получение набора данных таблицы из хранилища данных;
cmdstoredProc - команда на выполнение хранимой процедуры;
cmdFile - команда на получение набора данных, сохраненного в файле в формате, используемым конкретным источником данных;

cmdTableDirect - команда на получение набора данных таблицы напрямую, например из файла таблицы.

Текст команды, представленный свойством

property CommandText: WideString;

обязательно должен быть согласован с ее типом.

Для ограничения времени ожидания выполнения команды используется свойство

property CornmandTimeout: Integer;

В компонентах наборов данных ADO команды выполняется при выполнении следующих операций:

□
открытие и закрытие набора данных;
• выполнение запросов и хранимых процедур;
ГП обновление набора данных;
П сохранение изменений;

П групповые операции.

Разработчик может повлиять на способ выполнения команды. Для этого он может изменить свойство

type

TExecuteOption = (eoAsyncExecute, eoAsyncFetch, eoAsyncFetcrffcnBlockrng, eoExecuteNoRecords);
TExecuteOptions = set of TExecuteOption;
property ExecuteOptions: TExecuteOptions;
eoAsyncExecute - асинхронное выполнение команды;
eoAsyncFetch - асинхронное выполнение команды на обновление набора данных;
eoAsyncFetchNonBlocking - асинхронное выполнение команды на обновление набора данных без установки блокировки;

eoExecuteNoRecords - выполнение команды не требует возвращения набора данных.

Групповые операции

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

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

Для перевода набора данных в режим групповых операций необходимо выполнить следующие условия.

□ Набор данных должен использовать клиентский курсор:

ATODataSet.CursorLocation := clUseClient;
□ Курсор должен иметь тип ctstatic: ADODataSet.CursorType := ctstatic;
□ Блокировка должна иметь значение ltBatchOptlmistic."
ADODataSet.LockType := ltfetcrCptimistic;

Для передачи сделанных изменений в хранилище данных в компонентах ADO используется метод

procedure UpdateBatch(AffectRecords: TAffectRecords = arAll) ;

Для отмены всех сделанных, но не сохраненных методом UpdateBatch изменений применяется метод

procedure CancelBatch (Af fectRecords: TAffectRecords = arAll) ;

Используемый в методах тип TAffectRecords позволяет задать тип записей, к которым применяется данная операция:

TAffectRecords = (arCurrent, arFiltered, arAll, arAHChapters) ;

⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31