M Y D E L P H I 7 . R U Самоучитель программирования  
 
  • Главная
  •  

     

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

    Компонент 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;