Объект поля Field имеет тип TField и служит полем набора данных (таблицы, запроса и т.п.). Тип TField является абстрактным классом и непосредственно не используется. Вместо него применяются производные классы (важнейшие из них приведены в таблице ниже), соответствующие типу данных, размещаемых в поле набора данных. Производные классы отличаются от базового класса TField некоторыми особенностями, связанными с манипулированием конкретным типом данных, например, символьным, числовым или логическим. Далее под объектами типа TField будет рассматриваться либо сам объект типа TField, либо один из производных от него объектов, например, типа TStringField (строковое значение) или TIntegerField (целочисленное значение).
Таблица объектов поля
Тип объекта | Вид поля |
---|---|
TAutoincField | Поле автоинкрементного значения (32 разряда) |
TBCDField | Поле BCD-значения |
TBinaryField | Поле двоичного значения |
TBLOBField | Поле BLOB-значения (BLOB, Binary Large Object большой двоичный объект) |
TBooleanField | Поле логического значения |
TBytesField | Поле байтового значения фиксированной длины |
TCurrencyField | Поле значения денежной суммы |
TDateField | Поле значения даты |
TDateTimeField | Поле значения даты и времени |
TFloatField | Поле вещественного значения |
TGradivhicField | Графическое поле |
TIntegerField | Поле целочисленного значения (32 разряда) |
TLargeintField | Поле целочисленного длинного значения (64 разряда) |
TMemoField | Memo-поле (поле комментария) |
TNumericField | Поле числового значения |
TSmallintField | Поле целочисленного короткого значения (16 разрядов) |
TStringField | Поле строкового значения |
TTimeField | Поле значения времени |
TVarBytesField | Поле байтового значения переменной длины |
TWordField | Поле целочисленного значения без знака (16 разрядов) |
Объекты типа TField являются не визуальными и служат для доступа к данным соответствующих полей записей. Управляя объектами типа TField, можно управлять поведением полей, при этом все объекты полей являются независимыми друг от друга. Например, разработчик может запретить изменять значение отдельного поля, несмотря на то, что набор данных в целом является модифицируемым и допускает изменение значений других полей. Кроме того, можно скрыть то или иное поле от пользователя, сделав его невидимым.
Способы задания состава полей набора данных
- автоматически (динамические поля - по умолчанию);
- с помощью Редактора полей (статические поля).
По умолчанию для каждого поля набора автоматически создается свой объект типа TField при каждом открытии набора данных, как на этапе проектирования, так и на этапе выполнения приложения. В этом случае имеется дело с динамическими полями, достоинством которых является корректность отображения структуры набора данных даже при ее изменении. Для компонента Table состав полей определяется структурой таблицы, с которой этот компонент связан, а для компонента Query состав полей зависит от SQL-запроса. Однако у динамических полей есть и существенные недостатки, связанные с тем, что для полученного набора данных нельзя выполнить такие действия, как ограничение состава полей или определение вычисляемых полей. Поэтому при необходимости этих операций следует использовать второй способ задания состава полей.
Преимущества статических полей набора данных
На этапе разработки приложения с помощью Редактора полей можно создавать для набора данных статические (устойчивые) поля, основные достоинства которых состоят в реализации следующих возможностей:
- определение вычисляемых полей, значения которых рассчитываются с помощью выражений, использующих значения других полей;
- ограничение состава полей набора данных;
- изменение порядка полей набора данных;
- скрытие или показ отдельных полей при выполнении приложения;
- задание формата отображения или редактирования данных поля на этапе разработки приложения.
При модификации структуры таблицы, например, удалении поля или изменении его типа, открытие набора данных, имеющего статические поля, может вызвать исключение.