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