Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
27
Добавлен:
04.05.2019
Размер:
4.03 Mб
Скачать

Тема: Объекты поля. Операции с полями.

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

Тип объекта

Вид поля

TBLOBField

BLOB – поле

TMemoField

Memo – поле

TGraphicfield

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

TBooleanField

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

TBinaryField

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

TByteField

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

TVarBytesField

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

TDateFiled

Поле даты

TFloatField

Поле вещественных значений

TIntegerField

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

TStringField

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

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

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

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

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

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

Создание статических полей выполняется с помощью Редактора полей, который вызывается одним из следующих действий:

  • дважды щелкнуть на компоненте Table,

  • из контекстного меню компонента Table выбрать Fields Editor

С помощью редактора полей можно создать новое статическое поле, удалить статическое поле, изменить порядок следования статических полей.

Создание статического поля.

В контекстном меню Редактора полей выбрать пункт Add Fields (добавить поля) (<Ctrl>+<A>) или Add All Fields (добавить все поля) (<Ctrl>+<F>). Добавленное статическое поле (или поля) является полем данных и связано с конкретным физическим полем таблицы БД.

Удаление статического поля.

Выделить поле в списке Редактора полей и нажать <Delete> или выбрать в контекстном меню пункт Delete.

Изменение порядка следования полей выполняется с помощью мыши или клавишами <Ctrl>+, <Ctrl>+.

Существует три типа статических полей:

  1. поле данных, связанное с соответствующим физическим полем таблицы;

  2. вычисляемое поле, значение которого рассчитывается в обработчике события OnCalcFields во время выполнения приложения;

  3. поле выбора, значение которого можно выбирать из списка, формируемого на основе заданных критериев и правил.

Создание нового поля:

  1. в контекстном меню Редактора полей выбрать пункт New Field…(Новое поле) (<Ctrl>+<N>).

  2. В появившемся окне New Field задать:

    1. Field Properties (Свойства поля):

Name (Имя) – значение свойства Field Name,то есть имя поля,

Component – значение свойства Name, то есть название компонента (Объекта типа TField)

Type – тип поля,

Size – размер поля.

    1. Field Type (Тип нового поля) выбирается из группы переключателей

Data – поле данных,

Calculated – вычисляемое поле,

Lookup – поле выбора.

    1. Lookup definition (определение выбора) – указываются набор данных и поля связи, поля для формирования списка выбора и результата.

Создание поля данных выполняется по описанным выше шагам.

Создание вычисляемого поля.

  1. В окне New Field задать имя и тип поля;

  2. Установить переключатель Calculated;

  3. Для набора данных, который содержит это поле подготовить код обработчика события OnCalcFields. В коде этому полю присвоить требуемое значение. Для расчета значения можно использовать значения других полей, переменные и константы программы.

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

Создание поля выбора.

  1. В окне New Field задать имя и тип поля создаваемого поля выбора;

  2. Установить переключатель Lookup и задать: имя поля связи текущего набора данных, имя набора данных выбора, поле связи набора данных выбора, поле выбора.

П ример 1. Для БД Tovary создать вычисляемое поле Summa, для определения общей стоимости товара.

    1. Создать псевдоним Tovary.

    2. Создать приложение, разместив на нем следующие компоненты:

Компонент

Свойства

Table1

Databasename = Tovary; TableName =Tovary.db; Name=TbTovary;

DataSource1

Dataset= TbTovary; Name=dsTovary;

DBGrid1

DataSource=dsTovary;

DBNavigator1

DataSource=dsTovary;

    1. Для компонента TbTovary:

      1. Создать все статические поля (T_Code, T_Nazv, T_Cena, T_Kol_vo);

      2. Вызвать окно New Field и задать

    1. В обработчике события OnCalcFields компонента TbTovary записать код вычисления стоимости товара:

procedure TForm1.TbTovaryCalcFields(DataSet: TDataSet);

begin

TbTovarySumma.AsCurrency:=

TbTovaryT_Cena.AsCurrency*TbTovaryT_Kol_vo.AsInteger;

end;

П ример 2. Для базы данных Pokupka”, состоящей из двух таблиц создать поле подстановки в наборе данных таблицы Pokupka для названия товара из набора данных таблицы Tovar.

    1. Создать псевдоним Pokupka.

    2. Создать приложение, разместив на нем следующие компоненты:

Компонент

Свойства

Table1

Databasename = Pokupka; TableName =Pokupka.db; Active = True; Name=TbPokupka;

DataSource1

Dataset= TbPokupka; Name=dsPokupka;

DBGrid1

DataSource=dsPokupka;

DBNavigator1

DataSource=dsPokupka;

Table2

Databasename = Pokupka; TableName =Tovar.db; Active = True; Name=TbTovar;

DataSource2

Dataset= TbTovar; Name=dsTovar;

DBGrid2

DataSource=dsTovar;

DBNavigator2

DataSource=dsTovar;

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

    1. Для компонента TbPokupka:

      1. Создать все статические поля (P_Code, P_Date, P_Tovar, P_Kol_vo);

      2. Вызвать окно New Field и задать

Пример 3. Для базы данных Pokupka”, состоящей из двух таблиц создать вычисляемое поле Summa в наборе данных таблицы Pokupka, для подсчета стоимости купленного товара.

    1. Выполнить пункты 1)-2) из предыдущего примера.

    2. Для компонента TbTovar создать все статические поля (T_Code, T_Nazv, T_Cena);

    3. Для компонента TbPokupka:

      1. – создание поля связи - Вызвать окно New Field и задать

      1. Создать вычисляемое поле Summa, для этого вызвать окно New Field и задать

      1. В обработчике события OnCalcFields компонента TbPokupka записать код вычисления стоимости товара:

procedure TForm1.TbPokupkaCalcFields(DataSet: TDataSet);

begin

TbPokupkaSumma.AsCurrency:=

TbPokupkaCena.AsCurrency*TbPokupkaP_Kol_vo.AsInteger;

end;