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