Delphi для профессионалов



 

Команда 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 — выполнение команды не требует возвращения набора данных.