Класс TParams
Класс TParams представляет собой список параметров.
Доступ к элементам списка возможен через индексированное свойство
property Items [Index: Word] : TParam;
а к значениям параметров - через свойство
property ParamValues [const PararrName: String] : Variant;
Добавить новый параметр можно методом
procedure AddParam(Value: TParam) ;
Но для него необходимо создать объект параметра. Это можно сделать методом
function CreateParam(FldType: TTieldType;
const PararrName: string;
PararriType: TParamType) : TParam;
где FidType - тип данных параметра, ParamName - имя параметра и ParamType - тип параметра (см. ниже).
И оба метода можно использовать в связке:
MyParams.AddParam(MyParams.CreateParam(ftInteger, 'Paraml', ptlnput));
Вместо того, чтобы заполнять параметры по одному, можно использовать метод
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 найден дубликат.
Класс TParam
Класс TParam инкапсулирует свойства отдельного параметра. Имя параметра определяется свойством
property Name: String;
Тип данных параметра задает свойство
property DataType: TFieldType;
Тип данных параметра и связанного поля должны совпадать.
Тип параметра определяется множеством type
TParamType = (ptUnknown, ptInput, ptoutput, ptlnputOutput, ptResult);
TParamTypes = set of TParamType;
которое имеет следующие значения:
□ ptUnknown - тип неизвестен;
□ pt input - параметр предназначен для передачи значения из приложения;
Optoutput - параметр предназначен для передачи значения в приложение;
О ptlnputOutput - параметр предназначен для передачи и приема значения;
О ptResult - параметр предназначен для передачи в приложения информации о статусе операции.
Свойство
property PararriType: TParamType; определяет тип параметра.
При работе с параметрами довольно часто бывает необходимо определить, имеет ли параметр ненулевое значение. Для этого используется свойство