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


Класс TParam



Класс TParam инкапсулирует свойства отдельного параметра. Имя параметра определяется свойством

property Name: String;

Тип данных параметра задает свойство

property DataType: TFieldType;



Тип данных параметра и связанного поля должны совпадать.

Тип параметра определяется множеством

type

TParamType = (ptUnknown, ptInput, ptOutput, ptlnputOutput, ptResult); TParamTypes = set of TParamType;

которое имеет следующие значения:

  •  ptUnknown — тип неизвестен;
  •  ptinput — параметр предназначен для передачи значения из приложения;
  •  ptOutput — параметр предназначен для передачи значения в приложение;
  •  ptlnputOutput — параметр предназначен для передачи и приема значения;
  •  ptResult — параметр предназначен для передачи в приложения информации о статусе операции.

Свойство

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;



Содержание раздела