Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.04 Mб
Скачать

2. Объекты поля

Объект поля Field имеет тип TFieid и служит полем набора данных. Тип TField является абстрактным классом и непосредственно не используется. Вместо него применяются производные классы (табл. 7.1), соответствующие типу данных, размещаемых в рассматриваемом поле набора данных. Производные классы от­личаются от базового класса TField некоторыми особенностями, связанными с манипулированием конкретным типом данных, например, символьным, число­вым или логическим. Далее под объектами типа TField мы будем понимать ли­бо сам объект типа TField, либо один из производных от него объектов, напри­мер, типа TStringField (строковое значение) или TIntegerField (целочисленное значение).

Таблица 7.1

Типы объектов

Тип объекта

Вид поля

TBLOLBField

BLOB-поле

TMemoField

Мемо-поле (поле комментария)

TGraphicField

Графическое поле

TBooleanField

Логическое поле

TBinaryField

Двоичное поле

TBytesField

Поле байтов фиксированной длины

TVarBytesField

Поле байтов для значений переменной длины

TDateTimeField

Поле даты и времени

TDateField

Поле даты

TTimeField

Поле времени

TNumericField

Числовое поле

TBCDField

Поле BCD-значения

TFloatField

Поле вещественного значения

TCurrencyField

Поле значения денежной суммы

TIntegerField

Поле целочисленного значения (32 разряда)

TAutoincField

Поле автоинкрементного значения (32 разряда)

TSmallintField

Поле целочисленного короткого значения (16 разрядов)

TLargeintField

Поле целочисленного длинного значения (64 разряда)

TWordField

Поле целочисленного значения без знака (16 разрядов)

TStringField

Поле строкового значения

Объекты типа TField являются невизуальными и служат для доступа к данным соответствующих полей записей. Управляя объектами типа TField, можно управлять поведением полей, при этом все объекты полей являются независи­мыми друг от друга. Например, разработчик может запретить модификацию значения отдельного поля, несмотря на то, что набор данных в целом является модифицируемым и допускает изменение значений других полей. Кроме того, можно скрыть то или иное поле от пользователя, сделав его невидимым.

Существуют следующие два способа задания состава полей набора данных:

  • по умолчанию (динамические поля);

  • с помощью редактора полей (статические поля).

По умолчанию при каждом открытии набора данных как на этапе проектирова­ния, так и на этапе выполнения приложения для каждого поля набора автома­тически создается свой объект типа TField. В этом случае мы имеем дело с ди­намическими полями, достоинством которых является корректность отображения структуры набора данных даже при ее изменении. Напомним, что для компо­нента Table состав полей определяется структурой таблицы, с которой этот компонент связан, а для компонента Query состав полей зависит от SQL-запроса.

Однако использование динамических полей имеет и существенные недостатки, связанные с тем, что для полученного набора данных нельзя выполнить такие действия, как ограничение состава полей или определение вычисляемых полей.

Поэтому при необходимости этих операций следует использовать второй способ задания состава полей.

На этапе разработки приложения с помощью Редактора полей можно создавать для набора данных статические (устойчивые) поля, основные достоинства кото­рых состоят в реализации следующих возможностей:

  • определение вычисляемых полей, значения которых рассчитываются с по­мощью выражений, использующих значения других полей;

  • ограничение состава полей набора данных;

  • изменение порядка полей набора данных;

  • скрытие или показ отдельных полей при выполнении приложения;

  • задание формата отображения или редактирования данных поля на этапе разработки приложения.

Необходимо отметить, что при модификации структуры таблицы, например, удалении поля или изменении его типа, открытие набора данных, имеющего статические поля, может привести к возникновению исключительной ситуации.