Класс TParam
Класс TParam инкапсулирует свойства отдельного параметра. Имя параметра определяется свойством
property Name: String;
Тип данных параметра задает свойство
property DataType: TFieldType;
Тип данных параметра и связанного поля должны совпадать.
Тип параметра определяется множеством
type
TParamType = (ptUnknown, ptInput, ptOutput, ptlnputOutput, ptResult); TParamTypes = set of TParamType;
которое имеет следующие значения:
Свойство
property ParamType: TParamType;
определяет тип параметра.
При работе с параметрами довольно часто бывает необходимо определить, имеет ли параметр ненулевое значение. Для этого используется свойство
property IsNull: Boolean;
Свойство возвращает значение True, если параметр не имеет значения или имеет значение Null.
Свойство
property Bound: Boolean;
возвращает значение True только тогда, когда параметру не присваивалось значение вообще.
Метод
procedure Clear;
присваивает параметру значение Null.
Само значение параметра задается свойством
property Value: Variant;
Но использование вариантов не очень эффективно, когда требуется обеспечить максимальную скорость. В таких случаях можно обратиться к целому набору свойств AS ..., которые не только возвращают значение, но и приводят его к некоторому типу. Например, свойство
property Aslnteger: Longlnt;
возвращает целочисленное значение поля.
Примечание
Необходимо осторожно использовать свойства с приведением типа, т. к. попытка преобразования неверного значения вызовет исключительную ситуацию.
Для чтения из буфера и записи в буфер значения параметра соответственно используются методы
procedure SetData(Buffer: Pointer);
procedure GetData(Buffer: Pointer);
а необходимый размер при записи в буфер позволит определить метод
function GetDataSize: Integer;
Можно скопировать тип данных, имя и значение параметра прямо из поля данных. Для этого применяется метод
procedure AssignField(Field: TField);
а для присвоения типа данных и значения используется метод
procedure AssignFieldValue(Field: TField; const Value: Variant);
Общее число знаков для числовых значений определяет свойство
property Precision: Integer;
А свойство
property NumericScale: Integer;
задает число знаков после запятой.
Для строковых параметров размер задает свойство
property Size: Integer;