Класс 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);
а для присвоения типа данных и значения используется метод
Общее число знаков для числовых значений определяет свойство
property Precision: Integer;
А свойство
property NumericScale: Integer;
задает число знаков после запятой.
Для строковых параметров размер задает свойство
property Size: Integer;
Знаете ли Вы, что такое "усталость света"? Усталость света, анг. tired light - это явление потери энергии квантом электромагнитного излучения при прохождении космических расстояний, то же самое, что эффект красного смещения спектра далеких галактик, обнаруженный Эдвином Хабблом в 1926 г. На самом деле кванты света, проходя миллиарды световых лет, отдают свою энергию эфиру, "пустому пространству", так как он является реальной физической средой - носителем электромагнитных колебаний с ненулевой вязкостью или трением, и, следовательно, колебания в этой среде должны затухать с расходом энергии на трение. Трение это чрезвычайно мало, а потому эффект "старения света" или "красное смещение Хаббла" обнаруживается лишь на межгалактических расстояниях. Таким образом, свет далеких звезд не суммируется со светом ближних. Далекие звезды становятся красными, а совсем далекие уходят в радиодиапазон и перестают быть видимыми вообще. Это реально наблюдаемое явление астрономии глубокого космоса. Подробнее читайте в FAQ по эфирной физике.