Иллюстрированный самоучитель по Delphi 7 для профессионалов

Команда ADO

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

При использовании компонентов-потомков класса TCustomADODataSet обычно нет необходимости применять объект команды напрямую. И хотя все реальное взаимодействие объекта набора данных ADO с источником данных осуществляется через объект команды, настройка и выполнение команды скрыты в свойствах и методах компонентов ADO.

Тем не менее в классе TCustomADODataSet доступ к объекту команды можно получить при помощи свойства:

property Command: TADOCommand;

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

Тип команды задается свойством:

type
TCommandType = (cmdUnknown, cmdText, cmdTable, cmdStoredProc, cmdFile,
cmdTableDirect);
property CommandType: TCommandType;

Где:

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

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

property CommandText: WideString;

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

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

property CommandTimeout: Integer;

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

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

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

type
TExecuteOption = (eoAsyncExecute, eoAsyncFetch, eoAsyncFetchNonBlocking, eoExecuteNoRecords);
TExecuteOptions = set of TExecuteOption;
property ExecuteOptions: TExecuteOptions;

Где:

  • eoAsyncExecute – асинхронное выполнение команды;
  • eoAsyncFetch – асинхронное выполнение команды на обновление набора данных;
  • eoAsyncFetchNonBlocking – асинхронное выполнение команды на обновление набора данных без установки блокировки;
  • eoExecuteNoRecords – выполнение команды не требует возвращения набора данных.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.