- •Базы данных в Delphi Оглавление
- •Глава I. Базы данных в Delphi 3
- •Глава II. Наборы данных 11
- •Глава I. Базы данных в Delphi
- •1.1. Ведение в базы данных
- •1.2. Таблицы баз данных.
- •1.3. Таблицы формата dBase и Paradox
- •Сравнительная характеристика dBase и Paradox
- •1.4. Практическая работа
- •1.5. Самостоятельная работа
- •Глава II. Наборы данных
- •2.1. Набор данных
- •2.2. Практическая работа
- •2.3. Самостоятельная работа
- •2.4. Режимы наборов данных
- •2.5. Практическая работа
- •2.6. Перемещение по записям набора данных
- •2.7. Практическая работа
- •2.8. Доступ к полям
- •2.9. Практическая работа
- •2.10. Практическая работа
- •2.11. Способы задания состава полей набора данных
- •Редактор полей
- •2.12. Вычисляемые поля
- •2.13. Практическая работа №7
- •Глава III. Индексирование баз данных
- •3.1. Установка текущего индекса
- •3.2. Сортировка набора данных
- •3.3. Практическая работа
- •Глава IV. Фильтрация записей
- •4.1. Фильтрация по выражению
- •4.2. Практическая работа
- •4.3. Практическая работа
- •4.4. Фильтрация по диапазону
- •4.5. Самостоятельная работа
- •Глава V. Поиск записей в наборе данных.
- •5.1. Поиск записей
- •5.2. Поиск записей по нескольким полям.
- •5.3. Практическая работа
- •Глава VI. Модификация набора данных
- •6.1. Редактирование записей
- •6.2. Добавление записей
- •6.3. Удаление записей
- •6.4. Практическая работа
- •Глава VII. Работа со связанными таблицами
- •7.1. Организация связей между таблицами
- •7.2. Практическая работа
- •7.3. Самостоятельная работа
- •Глава VIII. Работа с отчетами
- •8.1. Объект QuickRep
- •8.2. Компоненты, размещаемые в полосе
- •8.3. Практическая работа
7.2. Практическая работа
Организация учета книг в библиотеке.
Создайте две таблицы в Database Desktop:
Таблица карточек читателей (фамилия, имя, отчество читателя (поле FIO), дата рождения (поле DataR), адрес (поле Adres), номер читательского билета (поле NomerChit)). Сохраните таблицу под именем Chitateli.db на диске С: в папке Baza.
Таблица выдачи книг (автор книги (Avtor), название книги (NameBook), номер читательского билета (NomerChit), дата выдачи (DataV), срок возврата книги (SrokV)). Сохраните таблицу под именем Book.db на диске С: в папке Baza.
Между таблицами нужно установить связь «мастер-детальный», при которой таблица Chitateli.db будет главной, а таблица Book.db – подчиненной. Для организации связи в качестве поля связи главной таблицы выберем поле NomerChit, которое необходимо сделать ключевым, т.е. чтобы значения в этом поле не повторялись. В подчиненной таблице Book.db полем связи будет поле NomerChit. Проиндексируйте обе таблицы по полям NomerChit (одинаковое поле в таблицах). Назовите индексные файлы indNomer.
В верхней части формы установите и свяжите между собой компоненты для работы с таблицей Chitateli.db, в нижней – компоненты для работы с таблицей Book.db. Переименуйте поля таблиц, присвоив им русские заголовки.
Для организации связи между таблицами в подчиненной таблице для компонента Table2 нужно установить следующие свойства:
MasterSource – источник данных главной таблицы (выбор главной таблицы) – Table1;
IndexName – текущий индекс подчиненной таблицы – indNomer;
MasterFields – поле или поля связи индекса главной таблицы. При выборе этого свойства на экране появляется окно специального Редактора полей связи (Field Link Designer). В списке Detail Fields выбирается поле подчиненной таблицы, а в списке Master Fields – поле главной таблицы. После нажатия кнопки Add выбранные поля связываются между собой, что отображается в списке Joined Fields. Заполнение свойства MasterFields происходит после закрытия окна при нажатии кнопки OK.
После установки всех нужных для связывания таблиц свойств запустите программу и заполните первую запись таблицы Chitateli.db, затем перейдите к заполнению таблицы Book.db (несколько записей, потому что один читатель может взять несколько книг), затем снова к заполнению таблицы Book.db и так далее. В таблице Chitateli.db должно быть не меньше 5 записей. Следите за тем, чтобы у связанных записей совпадали номера читательских билетов.
Пример
работы программы показан на рисунке
Создадим главное меню программы, как показано на рисунке:
Для этого нужно к проекту добавить еще три формы. На второй форме создать главное меню программы согласно рисунка. На третью форму скопируйте компоненты для работы с таблицей Chitateli.db. В заголовке формы – Таблица «Читатели». На четвертую форму скопируйте компоненты для работы с таблицей Book.db. В заголовке формы – Таблица «Книги». Для каждого пункта меню напишите обработчики событий, чтобы при выборе пункта на экране появлялось окно с выбранными таблицами. Например:
procedure TForm2.N2Click(Sender: TObject);
begin
Form3.Show;
end;
Оставшиеся процедуры напишите самостоятельно.
Чтобы можно было при выборе пунктов главного меню второй формы (содержит главное меню) показывать на экране другие формы, нужно подключить модули форм ко второй форме. Это можно выполнить следующим образом. Перейти на вторую форму, выполнить команду File\Use Unit… В появившемся окне выделить имена модулей остальных форм и нажать ОК. В модуле второй формы после слова implementation (раздел реализаций) автоматически пропишется следующее:
uses Unit3, Unit4, Unit1;
Работа готовой программы показана на рисунке:
