property DataSets[Index: Integer]: TCustomADODataSet;

Каждый элемент этого списка содержит дескриптор компонента доступа к данным ADO (тип TCustomADODataSet). Общее число связанных компонентов с наборами данных возвращается свойством

property DataSetCount: Integer;

Для этих компонентов можно централизованно установить тип используемого курсора при помощи свойства

type IQjrsorLocation = (clüseServer, clUseClient) ;
property CursorLocation: ICursorPocation;

Значение clUseClient задает локальный курсор на стороне клиента, что позволяет выполнять любые операции с данными, в том числе не поддерживаемые сервером.

Значение clUseServer задает курсор на сервере, который реализует только возможности сервера, но обеспечивает быструю обработку больших массивов данных.

Например:

for i : = 0 to ADOConnection. DataSetCount - 1 do

fcegin

if ADOConnection.DataSets[i].Active = True then ADOConnection.DataSets[i].Close;
ADOConnection.DataSets[i].CursorLocation := clUseClient;
end;

Помимо наборов данных компонент TADOConnection обеспечивает выполнение команд ADO. Команду ADO инкапсулирует специальный компонент Т/ЮСОстгаг!, который рассматривается ниже. Все команды ADO, работающие с хранилищем данных через это соединение, доступны для управления через индексированное свойство

property Commands [ Index: Integer] : TATOCcrrrnand

Каждый элемент этого списка представляет собой экземпляр класса

TATCorarand.

Общее число доступных команд возвращается свойством

property CommandCount: Integer

Например, сразу после открытия соединения можно выполнить все связанные команды ADO , реализовав таким образом нечто вроде скрипта:

procedure TForml. ADOConnectionConnectComplete (Connection: TÄLXCcnnecticri; const Error: Error; var EventStatus: TEventStatus) ; var i, ЕТлхэгСМ;: Integer; begin if EventStatus = es OK then

for i := 0 to ADOConnection.CommandCount - 1 do

try

if ADOConnection.Commands[i].CommandText о '' then ADOConnection.Commands[i].Execute;

except

on E: Exception cb Inc(ErrorCnt);
end;
end;

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

function Execute (const Ccrrrjandlext: WideString; ExecuteOptions:

lExecuteOptions = [ ] ) : _RecordSet;
overload;
procedure Execute (const Ccrrrjandlext: WideString;
var RecordsAffected: Integer;
ExecuteOptions: lExecuteOptions = [eoExecuteNoRecords]);
overload;

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

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

type

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

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

О eoAsyncExeeute - команда выполняется асинхронно (соединение не будет ожидать окончания выполнения команды, а продолжит работу, обработав сигнал о завершении команды, когда он поступит);

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

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



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

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс