Шаг 47.
Работа с локальными БД в Delphi.
Работа с наборами данных

    На этом шаге мы рассмотрим понятие "набор данных".

    Под набором данных понимается группа записей из одной или нескольких таблиц БД, доступных для использования с помощью компонентов-источников TTable и TQuery. Эти компоненты порождены от общего родительского класса TDBDataSet.

    Начальное состояние любого НД - dsInactive. Чтобы открыть НД, используется метод Open. В наших примерах мы открывали НД, присвоив свойству Active значение True, что эквивалентно использованию метода Open. После успешного открытия НД переходит в состояние dsBrowse, а его курсор устанавливается на первую запись.

    Чтобы закрыть НД, вызывается метод Close. Если НД закрывается, находясь в режимах dsEdit или dsInsert, изменения, сделанные в текущей записи, не запоминаются. Закрыть НД можно также, поместив значение False в его свойство Active.

    Для дальнейшего изложения нам понадобится БД School. Создайте одноименный алиас. БД School будет состоять из двух таблиц: Class.db и Pupils.db. Class.db - таблица, содержащая все классы, которые есть в школе (1A, 2A, и т.д.) и имя классного руководителя. Таблица будет иметь следующую структуру:

Таблица 1. Структура таблицы Class.db
Fields Name Type Size Key
Class A 3 *
Teacher A 20  

    Для каждого поля необходимо выставить флаг Required Field. Размер поля Class - 3 символа. Это обусловлено тем, что для обозначения класса, например "11А", достаточно трех символов.

    Pupils.db - таблица, которая содержит информацию о учениках (класс, Ф.И.О., год рождения, адрес). Структура этой таблицы имеет следующий вид:

Таблица 2. Структура таблицы Pupils.db
Fields Name Type Size Key
N +   *
Class A 3  
FIO A 20  
God S    
Adress A 100  

    Также как и в таблице Class.db, все поля нужно сделать обязательными для заполнения, кроме поля N (оно автоинкрементно). Данная таблица содержит 6 полей: N - автоинкрементное, служит лишь для реализации уникальности записи, Class - класс в котором учится данный ученик. Заметьте, что это поле того же типа и размера, что поле в таблице Class.db. Это совпадение не случайно. В дальнейшем эти две таблицы необходимо связать ссылочной целостностью по этим полям. Поля FIO, God, Adress - это соответственно Ф.И.О., год рождения и адрес. Разобравшись со структурой этой БД, вы увидите, что она совершенно идентична структуре БД FIRMA, но приложение, которое мы будем писать для новой БД, будет существенно отличаться. После формирования таблиц БД, не забудьте определить ссылочную целостность по полю Class.

    Созданные таблицы можно взять здесь.

    На следующем шаге мы рассмотрим модуль данных.




Предыдущий шаг Содержание Следующий шаг