Так как компоненту TADOCcmtmrl нет необходимости обеспечивать работу набора записей, его непосредственным предком является класс TComponent. К его функциональности просто добавлен механизм соединения с БД через ADO и средства представления команды.

Команда передается в хранилище данных ADO через собственное соединение или через компонент TADoconnection, аналогично другим компонентам ADO (см. выше).

Текстовое представление выполняемой команды должно содержаться в свойстве

property CommandText: WideString;

Однако команду можно задать и другим способом. Прямая ссылка на нужный объект команды ADO может быть задана свойством

property CommandObject: _Cornmarid; Тип команды определяется свойством

type TCommandType = (cmdUnknown, cmdText, cmdTable, cmdStoredProc,

cmdFile, cmdTableDirect);
property CommandType: TCommandType;

Так как ТИП T&mrnandType также используется В классе TCustomADODataSet, где необходимо представлять все возможные виды команд, по отношению к компоненту TALXXhrimard этот тип обладает избыточностью. Здесь нельзя установить значения cmdTable, cmdFile, cmdTableDirect, а ТИП cmdStoredProc должен обозначать только те хранимые процедуры, которые не возвращают набор данных.

Если команда должна содержать текст запроса SQL, свойство ConimandType должно иметь значение cmdText.

Для вызова хранимой процедуры необходимо задать тип cmdStoredProc, а в свойстве ConimandText ввести имя процедуры.

Если для выполнения команды необходимо задать параметры, используется свойство

property Parameters: TParameters;

Выполнение команды осуществляется методом Execute:

function Execute: _RecordSet;
overload;
function Execute (const Parameters: OleVariant) : _Recordset;
overload;
function Execute (var RecordsAf fected: Integer;
var Parameters: OleVariant;
ExecuteOptions: TExecuteOptions = []) : _RecordSet;
overload;

Разработчик может использовать любую из представленных нотаций перегружаемого метода:

• параметр RecordsAf fected возвращает число обработанных записей;
□
параметр Parameters задает параметры команды;

• параметр ExecuteOptions определяет условия выполнения команды:

TExecuteOption = (mAsyncExecute, eoAsyncFetch, eoAsyncFetchNonBlocking, eoExecuteNoRecords);
TExecuteOptions = set of TExecuteOption;
eoAsyncExecute - асинхронное выполнение команды;
eoAsyncFetch - асинхронная передача данных;
eoAsyncFetchNonBlocking - асинхронная передача данных без блокирования потока;

eoExecuteNoRecords - если команда возвращает набор записей, то они не передаются в компонент.

При работе с компонентом TADOConnection желательно использовать опцию eoExecuteNoRecords.

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

procedure Cancel;

Текущее состояние команды можно определить свойством суре

TObjectState = (stClosed, stOpen, stConriecting, stExecuting, stFetching) ;
TObjectStates = set of TObjectState;
property States: TObjectStates;

Объект ошибок ADO

При рассказе о компонентах ADO в данной главе мы довольно часто упоминали об объектах ошибок ADO. Эти объекты содержат информацию об ошибке, возникшей при выполнении операции каким-либо объектом ADO.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс