Использование баз данных формата 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) и оформить их.