Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП 01. Базы данных. Часть 2 — копия.doc
Скачиваний:
33
Добавлен:
09.12.2018
Размер:
637.44 Кб
Скачать

Задание на практическую работу № 2

  1. Создать алиас БД.

  2. Установить связи между таблицами БД.

  3. Связать основную таблицу с навигатором.

1.3. Практическая работа № 3: работа с полями и компонентом dbGrid

Класс TField позволяет обращаться к полям таблиц БД. Каждый набор данных (НД) состоит из записей, а те, в свою очередь, — из полей.

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

Таким образом, в структуре таблицы имеется минимум одно поле.

1.3.1. Использование объектов-полей

Для удобства работы с конкретным полем можно создать объект-поле класса TField или одного из его специализированных потомков — TStringField, TIntegerField, TBlobField и т.д. Объект-поле создается на этапе конструирования программы с помощью редактора полей. Если определен объект-поле, получить доступ к полю можно по имени этого объекта. Редактор полей присваивает объектам-полям имена путем сцепления имени источника данных и имени поля. Допустим, есть компонент Firms типа Table (Firms: Table), который связан с источником данных, имеющим поле City. Объект этого поля получает имя FirmsCity, и можно использовать прямое обращение к нему. Например:

FirmsCity.AsString:=’Омск’;

Если хотя бы для одного поля НД создан объект-поле, все поля НД, для которых такие объекты не определены, становятся недоступными. К «несуществующим» полям обратиться из данного НД нельзя. Вновь вернуться к использованию всех полей НД можно только на этапе конструирования программы, удалив в редакторе полей все определенные ранее объекты или добавив с его помощью объекты для недостающих полей.

Если нужно обращаться к полю, но не показывать его значение в компонентах, отображающих данные (например, в компоненте DBGrid), свойство Visible этого объекта-поля следует установить в False. Однако если в компоненте DBGrid уже определены объекты столбцов для полей НД, изменение свойства Visible не произведет эффекта. В этом случае можно удалить из редактора столбцов DBGrid те столбцы, отображать которые не требуется.

Для вызова редактора полей нужно дважды щелкнуть по компоненту Table или щелкнуть по нему правой кнопкой мыши и выбрать Fields Editor. Предварительно НД должен быть связан с нужной таблицей БД: в Table должны быть определены свойства DatabaseName и TableName.

Чтобы добавить объекты-поля, нажмите правую кнопку мыши в свободном поле появившегося окна и выберите Add All Fields. Появятся объекты-поля для всех полей НД (рис. 8).

Рис. 8. Редактор полей НД

1.3.2. Обращение к значению поля

К значению поля можно обратиться при помощи свойства Value и AsXXXX класса TField или его потомков. В классе TField определены следующие свойства AsXXXX для приведения типов полей:

Property AsBoolean:Boolean;

Property AsInteger:Integer;

Property AsCurrency:Currency;

Property AsString:String;

Property AsDateTime:TDateTime;

Property AsVariant:Variant;

Property AsFloat:Double;

Каждое из этих свойств приводит значение поля к соответствующему типу данных, указанному в названии свойства. Например, если BooksBookId — поле TIntegerField, для приведения его к типу String нужно воспользоваться свойством AsString:

Edit1.Text:= BooksBookId.AsString

Следует знать, что преобразование не всех типов возможно.

Если для НД не создан ни один объект-поле, получить доступ к значению поля этого НД можно с помощью его метода FieldByName или через его свойства Fields и FieldValues. Допустим, у вас имеется НД Books типа Table, который содержит поле Year. Следующие обращения будут идентичными:

Books.FieldByName(‘Year’).AsInteger:=2000;

Books[‘Year’]:=2000;

Books.FieldValues[‘Year’]:=2000;

Books.Fields[4].AsInteger:=2000;

(предполагается, что поле ‘Year’ является 5-м по счету в НД Books).