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

     

    Класс TParams

    Класс TParams представляет собой список параметров.

    Доступ к элементам списка возможен через индексированное свойство

    property Items[index: Word]: TParam;

    а к значениям параметров — через свойство

    property ParamValues[const ParamName: String]: Variant;

    Добавить новый параметр можно методом

    procedure AddParam(Value: TParam);

    Но для него необходимо создать объект параметра. Это можно сделать методом

    function CreateParamfFldType: TFieldType; const ParamName: string; ParamType: TParamType): TParam;

    где FidType — тип данных параметра, ParamName — имя параметра и ParamType — тип параметра (см. ниже).

    И оба метода можно использовать в связке:

    MyParams.AddParam(MyParams.CreateParam(ftInteger, 'Paraml', ptInput));

    Вместо того, чтобы заполнять параметры по одному, можно использовать метод

    function ParseSQL(SQL: String; DoCreate: Boolean): String;

    который при DoCreate = True анализирует текст запроса из свойства SQL и создает новый список параметров.

    Или же, для присвоения значений сразу всем параметрам используется метод

    procedure AssignValues(Value: TParams);

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

    procedure RemoveParam(Value: TParam);

    При работе с параметрами для их идентификации полезно использовать обращение по имени, т. к. при работе с хранимыми процедурами после их выполнения порядок следования может измениться. Также и при использовании динамических запросов (их текст SQL может изменяться во время выполнения).

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

    function ParamByName(const Value: String): TParam;

    В сложных запросах SQL или после многочисленных исправлений разработчик может допустить ошибку и создать два разных параметра с одним именем. В этом случае при выполнении запроса одноименные параметры считаются одним и им присваиваются значение первого по порядку запроса. Для контроля повторных имен в списке параметра используется метод

    function IsEqual(Value: TParams): Boolean;

    который возвращает значение True, если для параметра value найден дубликат.