Класс 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;
Знаете ли Вы, почему "черные дыры" - фикция? Согласно релятивистской мифологии, "чёрная дыра - это область в пространстве-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света (в том числе и кванты самого света). Граница этой области называется горизонтом событий, а её характерный размер - гравитационным радиусом. В простейшем случае сферически симметричной чёрной дыры он равен радиусу Шварцшильда". На самом деле миф о черных дырах есть порождение мифа о фотоне - пушечном ядре. Этот миф родился еще в античные времена. Математическое развитие он получил в трудах Исаака Ньютона в виде корпускулярной теории света. Корпускуле света приписывалась масса. Из этого следовало, что при высоких ускорениях свободного падения возможен поворот траектории луча света вспять, по параболе, как это происходит с пушечным ядром в гравитационном поле Земли. Отсюда родились сказки о "радиусе Шварцшильда", "черных дырах Хокинга" и прочих безудержных фантазиях пропагандистов релятивизма. Впрочем, эти сказки несколько древнее. В 1795 году математик Пьер Симон Лаплас писал: "Если бы диаметр светящейся звезды с той же плотностью, что и Земля, в 250 раз превосходил бы диаметр Солнца, то вследствие притяжения звезды ни один из испущенных ею лучей не смог бы дойти до нас; следовательно, не исключено, что самые большие из светящихся тел по этой причине являются невидимыми." [цитата по Брагинский В.Б., Полнарёв А. Г. Удивительная гравитация. - М., Наука, 1985] Однако, как выяснилось в 20-м веке, фотон не обладает массой и не может взаимодействовать с гравитационным полем как весомое вещество. Фотон - это квантованная электромагнитная волна, то есть даже не объект, а процесс. А процессы не могут иметь веса, так как они не являются вещественными объектами. Это всего-лишь движение некоторой среды. (сравните с аналогами: движение воды, движение воздуха, колебания почвы). Подробнее читайте в FAQ по эфирной физике.