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

Поля и класс tField

Если для данных в целом используют компоненты типа Table, т.е. потомки TDataSet, то для, полей, которые представляют собой отдельные столбцы данных в таком наборе, определен класс TField. В свою очередь, от этого класса происходят типизированные классы полей типа TIntegerField, TStringField и т.п.

Для доступа к полям записей у набора данных имеется ряд специальных методов и свойств, доступных во время выполнения. Чаще всего используются метод FieldByName, позволяющий обратиться к полю по его имени. Альтернативным и зачастую менее надежным способом является использование массива Fields, обеспечивающего доступ к полю по его порядковому номеру. И в том и в другом случае мы получим объект типа TField. Основные свойства этого класса приведены в таблице 19.1.

Таблица 19.1. Основные свойства TField

Свойство

Тип

Описание

Alignment

TAlignment

Определяет выравнивание при выводе значения поля в визуальном компоненте

AsBCD

TBcd

Содержит значение поля в двоичном виде (BCD)

AsBoolean

Boolean

Содержит значение поля в виде булева значения

AsCurrency

Currency

Содержит значение поля в виде Currency

AsDateTime

TDateTime

Содержит значение поля в виде даты и времени

AsFloat

Double

Содержит значение поля в виде вещественного числа

AsInteger

Integer

Содержит значение поля в виде целого

AsString

String

Содержит значение поля в виде строки

AsVariant

Variant

Содержит значение поля в виде вариантного типа

Calculated

Boolean

Определяет, является ли поле вычисляемым

CanModify

Boolean

Указывает, может или нет быть изменено значение в данном поле

DataSet

TDataSet

Определяет набор данных, которому принадлежит данное поле

DataType

TFieldType

Указывает на тип данных поля

DisplayLabel

String

Определяет текст, выводимый в качестве заголовка столбца в таблице DBGrid

DisplayWidth

Integer

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

FieldName

String

Определяет имя поля в физической таблице БД

Index

Integer

Определяет порядковый номер поля в наборе данных

IsIndexField

Boolean

Указывает, является ли данное поле индексированным

IsNull

Boolean

Возвращает истину, если текущее значение поля пустое

ReadOnly

Boolean

Определяет, может ли поле быть изменено пользователем

Value

Variant

Содержит текущее значение поля

Visible

Boolean

Определяет, должно ли это поле быть видимым при отображении в таблице DBGrid

Здесь, прежде всего, следует выделить группу из 8 свойств, начинающихся с As. Все они, по сути, являются аналогами функций приведения к типу, поскольку, объект TField универсален и может содержать данные любого типа из встречающихся в СУБД. Например, если речь идет о полях из нашей таблицы bills, то обратиться к полям этой таблицы для получения их значений в "естественном" виде следует использовать подобный код:

x:=Table1.FieldByName('BILL_CUST').AsInteger;

y:=Table1.FieldByName('BILL_SUMM').AsCurrency;

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

Label1.Caption:=Table1.FieldByName('BILL_CUST').AsString;

Edit1.Text:=Table1.FieldByName('BILL_SUMM').AsString;

Если же при работе с записью нам не требуется явно приводить тип, то вполне подойдет свойство Value, содержащее текущее значение поля в БД. Оно же является одним из наиболее часто используемых, благодаря универсальности этого типа данных. Например, мы можем проверить значение поля на соответствие какому-либо условию, просто написав:

if Fields[1].Value > 100 then Fields[1].Value:=200;

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

Свойства DataSet и FieldName отвечают за привязку объекта к конкретным данным, а Calculated и IsIndexFiels позволяют определить параметры поля в СУБД. Большинство остальных свойств так или иначе влияют на параметры вывода информации из набора данных в визуальные компоненты наподобие DBGrid.

Что касается методов, то тут следует отметить метод Clear, устанавливающий значение поля в Null, и, пожалуй, IsValidChar, при помощи которого можно проверить, является ли указанный в качестве аргумента символ допустимым для данного поля:

if Table1.FieldByName('BILL_SUMM').IsValidChar('1') then

caption:='Yes!'

else caption:='No.'

В данном случае заголовок окна получит надпись "Yes!", поскольку символ "1" можно использовать для ввода в поле числового типа. Но если бы мы проверяли на допустимость ввода какой-либо буквы, то получили бы отрицательный ответ.