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

Доступ к связанным наборам данных и командам ADO

Однако компонент TADOConnection может выполнять команды ADO самостоятельно, без помощи других компонентов. Для этого используется перегружаемый метод:

function Execute(const CommandText: WideString; ExecuteOptions:
TExecuteOptions = []): _RecordSet; overload;
procedure Execute(const CommandText: WideString;
var RecordsAffected:
Integer; ExecuteOptions: TExecuteOptions = [eoExecuteNoRecords]);
overload;

Выполнение команды осуществляется процедурой Execute (если команда не возвращает набор записей) или одноименной функцией Execute (если команда возвращает набор записей).

Параметр commandText должен содержать текст команды. Параметр RecordsAffected возвращает число обработанных командой записей (если они есть). Параметр:

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

…задает условия выполнения команды:

  • eoAsyncExecute – команда выполняется асинхронно (соединение не будет ожидать окончания выполнения команды, а продолжит работу, обработав сигнал о завершении команды, когда он поступит);
  • eoAsyncFetch – команда получает необходимые записи также асинхронно;
  • eoAsyncFetchNonBlocking – команда получает необходимые записи также асинхронно, но при этом созданная нить не блокируется;
  • eoExecuteNoRecords – команда не должна возвращать записи.

Если источник данных принял команду для выполнения и сообщил об этом соединению, вызывается метод-обработчик:

TWillExecuteEvent = procedure(Connection: TADOConnection;
var CommandText: WideString; var CursorType: TCursorType; var LockType:
TADOLockType; var ExecuteOptions: TExecuteOptions;
var EventStatus:
TEventStatus; const Command: _Command;
const Recordset: _Recordset)
of object;
property OnWillExecute: TWillExecuteEvent;

После выполнения команды вызывается метод-обработчик:

TExecuteCompleteEvent = procedure(Connection: TADOConnection; RecordsAffected: Integer;
const Error: Error; var EventStatus: TEventStatus;
const Command: _Command;
const Recordset: _Recordset) of object;
property OnExecuteComplete: TExecuteCompleteEvent;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.