Объекты полей

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

Editl.Text := Tablel.Fields[0].AsString;

Свойство Fields представляет собой индексированный список объектов полей набора данных (см. гл. 12). Если разработчик не изменяет порядок следования полей в наборе данных, то расположение объектов полей в списке Fields соответствует структуре таблицы базы данных.

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

Editl.Text := Tablel.FieldByName('SomeField1).AsString;

Для того чтобы присвоить значение полю в текущей записи, можно воспользоваться приведенными выше способами или, если тип данных поля неизвестен, свойством Fieidvalues:

Tablel.FieldValues['SomeField'] := Editl.Text;

Знание имени поля дает самый простой способ обращения к текущему значению поля:

Tablel['SomeField'] := Editl.Text; 

Editl.Text := Tablel['SomeField'];

Примечание

При присваивании значений полям набора данных необходимо контролировать состояние, в котором находится набор данных (см. гл. 12).

В основе классов, описывающих иерархию типизированных полей, лежит класс TField. От него порождены другие классы, обеспечивающие работу целых групп полей, объединенных по типам данных.

Что же такое объект поля и какие возможности он предоставляет разработчику?

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

Во-вторых, с точки зрения набора данных объект поля является хранилищем текущего значения этого поля (а не всего столбца данных, как это можно себе представить по названию).

Рис. 13.1. Иерархия классов полей

Компоненты отображения данных при работе с набором данных взаимодействуют именно с полями. Например, колонки компонента TDBCrid при отсутствии дополнительных настроек соответствуют расположению объектов полей в связанном наборе данных.

 

Используются технологии uCoz