008 — Пример подключения базы данных Microsoft Access к приложению Delphi




Пример подключения базы данных Microsoft Access к приложению


Содержание


Условие задачи

Дана база данных, сформированная средствами СУБД Microsoft Access. База данных расположена на диске по такому пути:

C:\Programs\C++ Builder\Program_01_02_00_008\01_02_00_008_database.mdb

Структура базы данных и связи между таблицами изображены на рисунке 1.

01_02_00_008_01

Рис. 1. Схема связей между таблицами базы данных

Необходимо осуществить подключение данной базы данных к приложению Windows.

 

Выполнение

1. Запустить Delphi

Пример создания и сохранения приложения в Delphi подробно описывается здесь. 

Создать форму и сохранить проект под произвольным именем.

 

2. Компоненты для работы с базой данных

Из вкладки «dbGo» палитры инструментов выбираем компоненты TADOConnection и TADOTable.
Из вкладки «Data Access» выбираем компонент TDataSource (рис. 2).
Выносим эти компоненты на форму приложения.

01_02_00_008_02_

Рис. 2. Компоненты для соединения с базой данных

Компоненты из палитры «dbGo» предназначены для работы с базами данных по технологии ADO, которая хорошо подходит для базы данных Microsoft Access.

Вместо компонента TADOQuery можно использовать компонент TADOTable. Можно также совмещать эти компоненты.

С целью визуализации данных из таблиц используется компонент TDBGrid из палитры Data Controls. Он отображает данные в некоторой таблице базы данных. После выноса этого компонента на форму, вид окна проектирования примет приблизительно следующий вид (рис. 3).

01_02_00_008_03_

Рис. 3. Компонент DBGrid1 для отображения данных из базы данных

 

3. Настройка компонент

Существует два варианта подключения к базе данных с использованием вышеупомянутых компонент (рис. 4).

01_02_00_008_04r

Рис. 4. Способы подключения к файлу базы данных

Во втором случае подключение осуществляется через дополнительный компонент ADOConnection1. Этот способ есть более обобщенным случаем и лучше подходит для случаев, когда несколько компонент типа TADOTable или TADOQuery используются для доступа к одному соединению ADOConnection1.

Выбираем второй способ настройки.

 

4. Строка соединения ConnectionString

Для доступа к файлу базы данных нужно задать путь к этому файлу и установить другие параметры.

Осуществим настройку свойства ConnectionString компонента ADOConnection1. Таким же образом настраивается свойство ConnectionString компонента ADOTable1.

Сначала выделим компонент ADOConnection1. В Object Inspector выбирается свойство ConnectionString (рис. 5).

01_02_00_008_05_

Рис. 5. Свойство ConnectionString компонента ADOConnection1

В результате откроется окно «Form1.ADOConnection1 ConnectionString» (рис. 6).

Предлагается 2 варианта подключения:

  • Use Data Link File;
  • Use Connection String.

В первом случае есть возможность подключения к базе данных путем выбора файлов типа Microsoft Data Link с расширением «*.udl«. Эти файлы служат для связи с данными по технологии ADO.

Для ознакомления используем второй способ «Use Connection String«. Выбираем кнопку «Build…«.

01_02_00_008_06_

Рис. 6. Способы выбора источника соединения

В результате предыдущего выбора откроется окно «Свойства связи с данными» (рис. 7).

01_02_00_008_07_

Рис. 7. Окно «Свойства связи с данными»

В этом окне выбираем поставщика OLE DB. Для работы с базами данных Microsoft Access лучше всего подходит поставщик «Microsoft Jet 4.0 OLE DB Provider«.

Делаем клик на кнопке «Далее >>«.

На следующем этапе нужно выбрать файл базы данных (рис. 8). Согласно с условием задания файл базы данных размещается по следующему пути:

C:\Programs\C++ Builder\Program_01_02_00_008\01_02_00_008_database.mdb

Кликаем на кнопке «» и выбираем файл базы данных.

01_02_00_008_08_

Рис. 8. Вкладка «Подключение» с выбранным файлом базы данных

Есть возможность протестировать подключение кнопкой «Проверить подключение«. Если все в порядке, то будет выведено следующее сообщение (рис. 9).

01_02_00_008_09_

Рис. 9. Тестирование подключения к файлу базы данных

После этого выбираем «ОК«. Окно «Form1.ADOConnection1 ConnectionString» имеет вид (рис. 10).

01_02_00_008_10_

Рис. 10. Окно «Form1.ADOConnection1 ConnectionString»
с выбранным источником соединения

В окне на рисунке 10 выбираем «ОК«. После этого свойство ConnectionString компонента ADOConnection1 будет сформировано.

 

5. Свойство LoginPrompt компонента ADOConnection1

По умолчанию, база данных настроена таким образом, что при обращении к данным от пользователя будет требоваться ввести имя и пароль. Во избежание неудобств, необходимо в свойстве LoginPrompt компонента ADOConnection1 установить значение «false» (рис. 11).

01_02_00_008_11_

Рис. 11. Свойство LoginPrompt компонента ADOConnection1

 

6. Связывание компонент между собой

Теперь можно связать компоненты между собой по схеме, изображенной на рис. 4 а).
Для этого, используя Object Inspector, необходимо выполнить следующие действия:

  • в компоненте ADOTable1 свойство Connection нужно установить в значение ADOConnection1;
  • в компоненте DataSource1 свойство DataSet установить в значение ADOTable1;
  • в компоненте DBGrid1 свойство DataSource установить в значение DataSource1.

 

7. Выбор таблицы Students и ее отображение

После выполненных операций имеем связь приложения с базой данных.

Теперь нужно задать таблицу или запрос для вывода в DBGrid1.
Если использовать компонент TADOQuery, то для вывода используется строка запроса на языке SQL. В этом случае данные в DBGrid1 могут отображаться сразу из нескольких таблиц.

Если используется компонент TADOTable (наш случай), то выводится непосредственно одна из таблиц базы данных.

Выберем для примера таблицу Students.

Для этого с помощью Object Inspector в компоненте ADOTable1 нужно:

  • в свойстве «TableName» выбрать таблицу Students;
  • свойство Active установить в значение «true».

В результате выполненных действий данные сразу отобразятся в компоненте DBGrid1 (рис. 12).

01_02_00_008_12_

Рис. 12. Настройка ADOTable1 и вывод таблицы Students

Задача решена!