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

Управление запросом на сервере

Компонент TdientDataSet может не только эффективно управлять своим набором данных, но и влиять на выполнение серверного компонента, с которым он связан через провайдер.

Свойство:

property CornmandText: string;

…содержит текст запроса SQL, имя таблицы или хранимой процедуры в зависимости от типа серверного компонента.

Изменив значение этого свойства на клиенте, можно, например, модифицировать запрос SQL на сервере. Но для этого в свойстве Options соответствующего компонента-провайдера TDataSetProvider должно быть установлено значение:

poAliowCommandText: = True;

Новое значение свойства CommandText отправляется на сервер только после открытия клиентского набора данных или выполнения метода:

procedure Execute; virtual;

Для запросов или хранимых процедур можно задавать параметры, которые сохраняются в свойстве:

property Params: TParams;

До выполнения запроса присваиваются значения входным параметрам. После выполнения хранимой процедуры в выходных параметрах размещаются полученные от сервера значения.

Обратите внимание, что при выполнении запросов или хранимых процедур может измениться порядок следования параметров. Поэтому обращаться к параметрам желательно по их именам. Например, так:

Editl.Text: = ClientDataSet.Params.ParamByName('OutputParam').AsString;

Для того чтобы получить текущие значения параметров компонента набора данных на сервере, достаточно использовать метод:

procedure FetchParams;

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

property BeforeGetParams: TRemoteEvent;
property AfterGetParams: TRemoteEvent;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.