Использование баз данных формата mdb в проекте Delphi
Цель работы: научиться подключать к проекту базы данных, созданные в Microsoft Access; использовать их в программе.
Ход работы: создать в Access базу данных «Поликлиника», состоящую из трёх таблиц (в названиях полей не должно быть пробелов!!!):
1) Посещения (Номер_медицинского_полиса, дата_посещения, диагноз)
2) Пациент (Номер_медицинского_полиса, ФИО, пол, дата_рождения, адрес, место_работы, должность, номер_участка)
3) Врач (Номер_участка, ФИО_врача, рабочий_телефон).
Самостоятельно определить типы полей, ключевые поля, если они необходимы, связать таблицы на схеме данных. Заполнить таблицы записями (не менее 10 записей в каждой таблице). Сохранить базу в будущую папку проекта.
Начать новый проект в Delphi. Сохранить его.
Добавить на форму компоненты с вкладки ADO: ADOConnection, ADOTable, с вкладки DataAccess компонент DataSource, с вкладки DBControl компонент DBGrid.
Настроить ADOConnection1: свойство ConnectionString – выбрать Use ConnectionString – Build: Поставщики OLE DB – выбрать Microsoft Jet 4.0 OLE DB Provider, на вкладке Подключение выбрать свою базу данных, задать относительный путь (.\название_ базы_данных.mdb); на вкладке Дополнительно установить права доступа Read/Write, а предыдущий флажок убрать.
Свойство LoginPrompt (запрос пароля на открытие базы) установить false.
Настроить DataSource1: свойство DataSet – ADOTable1.
Настроить ADOTable1: свойство Connection -- ADOConnection1, TableName – Пациент.
Настроить DBGrid1: свойство DataSource -- DataSource1.
Свойство Active у ADOTable1 выставить true.
Если всё сделали правильно, в DBGrid’е будут отображаться записи из таблицы Пациент.
Добавить на форму DB Navigator. Присоединить его к DBGrid’у. Скрыть все кнопки, отвечающие за изменения БД. Сам DBGrid сделать readonly.
Оформить форму как «Просмотр данных о пациенте».
Создать ещё одну форму. Оформить её как «Внесение данных о пациентах».
Вместо DBGrid использовать другие компоненты с вкладки DataControl, для полей Пол и Номер участка использовать DBComboBox’ы. У компонентов DBEdit настраиваются два свойства: DataSource и DataField.
Аналогично оформить форму для внесения данных о врачах, форму для внесения данных о посещениях больными врача.
Организовать переход от формы к форме.
Создать новую форму «Поиск данных о пациенте».
Добавить на эту форму компоненты DataSource, ADOConnection, ADOQuery, настроить их.
Добавить на форму компоненты для вывода информации о пациенте по запросу (можно использовать DBCtrlGrid, на нём разместить остальные компоненты).
Организовать запросы по: фамилии, по дате рождения, номеру медицинского полиса, и т. п.
Использовать процедуры:
ADOQuery1.Close; // закрываем запрос
ADOQuery1.SQL.Clear; // очищаем SQL для нового условия запроса
ADOQuery1.SQL.Text:='Select {нужные поля} from {нужная таблица (таблицы)} whereнужное поле=:p1'; // формируем текст запроса, p1 – вводимый параметр запроса
ADOQuery1.Parameters[0].Value:=edit1.text; //присваиваем параметру запроса конкретное значение
ADOQuery1.Open; // открываем запрос
Другой пример запроса:
ADOQuery1.Close; // закрываем запрос
ADOQuery1.SQL.Clear; // очищаем SQL для нового условия запроса
ADOQuery1.SQL.Text:='Select {нужные поля} from {нужная таблица (таблицы)} whereнужное поле like ’’’+Edi1.text+’%’’’; // формируем текст запроса, нужное поле начинается с символов, введенных в Edit1.text
ADOQuery1.Open; // открываем запрос
Оформить отдельную форму для поиска информации о врачах (условия запросов придумать самим).
Организовать запросы из нескольких таблиц:
- Всех пациентов, посетивших поликлинику в конкретный день; (добавив в конец запроса order by, можно задать группировку по конкретному полю)
- Всех пациентов, имеющих диагноз …
- Всех пациентов, родившихся позже ….
Придумать 3 своих сложных запроса (использовать в условиях запроса and, or) и оформить их.