Пример подключения базы данных Microsoft Access к приложению
Содержание
Условие задачи
Дана база данных, сформированная средствами СУБД Microsoft Access. База данных расположена на диске по такому пути:
C:\Programs\C++ Builder\Program_01_02_00_008\01_02_00_008_database.mdb
Структура базы данных и связи между таблицами изображены на рисунке 1.
Рис. 1. Схема связей между таблицами базы данных
Необходимо осуществить подключение данной базы данных к приложению Windows.
Выполнение
1. Запустить Delphi
Пример создания и сохранения приложения в Delphi подробно описывается здесь.
Создать форму и сохранить проект под произвольным именем.
2. Компоненты для работы с базой данных
Из вкладки «dbGo» палитры инструментов выбираем компоненты TADOConnection и TADOTable.
Из вкладки «Data Access» выбираем компонент TDataSource (рис. 2).
Выносим эти компоненты на форму приложения.
Рис. 2. Компоненты для соединения с базой данных
Компоненты из палитры «dbGo» предназначены для работы с базами данных по технологии ADO, которая хорошо подходит для базы данных Microsoft Access.
Вместо компонента TADOQuery можно использовать компонент TADOTable. Можно также совмещать эти компоненты.
С целью визуализации данных из таблиц используется компонент TDBGrid из палитры Data Controls. Он отображает данные в некоторой таблице базы данных. После выноса этого компонента на форму, вид окна проектирования примет приблизительно следующий вид (рис. 3).
Рис. 3. Компонент DBGrid1 для отображения данных из базы данных
3. Настройка компонент
Существует два варианта подключения к базе данных с использованием вышеупомянутых компонент (рис. 4).
Рис. 4. Способы подключения к файлу базы данных
Во втором случае подключение осуществляется через дополнительный компонент ADOConnection1. Этот способ есть более обобщенным случаем и лучше подходит для случаев, когда несколько компонент типа TADOTable или TADOQuery используются для доступа к одному соединению ADOConnection1.
Выбираем второй способ настройки.
4. Строка соединения ConnectionString
Для доступа к файлу базы данных нужно задать путь к этому файлу и установить другие параметры.
Осуществим настройку свойства ConnectionString компонента ADOConnection1. Таким же образом настраивается свойство ConnectionString компонента ADOTable1.
Сначала выделим компонент ADOConnection1. В Object Inspector выбирается свойство ConnectionString (рис. 5).
Рис. 5. Свойство ConnectionString компонента ADOConnection1
В результате откроется окно «Form1.ADOConnection1 ConnectionString» (рис. 6).
Предлагается 2 варианта подключения:
- Use Data Link File;
- Use Connection String.
В первом случае есть возможность подключения к базе данных путем выбора файлов типа Microsoft Data Link с расширением «*.udl«. Эти файлы служат для связи с данными по технологии ADO.
Для ознакомления используем второй способ «Use Connection String«. Выбираем кнопку «Build…«.
Рис. 6. Способы выбора источника соединения
В результате предыдущего выбора откроется окно «Свойства связи с данными» (рис. 7).
Рис. 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
Кликаем на кнопке «…» и выбираем файл базы данных.
Рис. 8. Вкладка «Подключение» с выбранным файлом базы данных
Есть возможность протестировать подключение кнопкой «Проверить подключение«. Если все в порядке, то будет выведено следующее сообщение (рис. 9).
Рис. 9. Тестирование подключения к файлу базы данных
После этого выбираем «ОК«. Окно «Form1.ADOConnection1 ConnectionString» имеет вид (рис. 10).
Рис. 10. Окно «Form1.ADOConnection1 ConnectionString»
с выбранным источником соединения
В окне на рисунке 10 выбираем «ОК«. После этого свойство ConnectionString компонента ADOConnection1 будет сформировано.
5. Свойство LoginPrompt компонента ADOConnection1
По умолчанию, база данных настроена таким образом, что при обращении к данным от пользователя будет требоваться ввести имя и пароль. Во избежание неудобств, необходимо в свойстве LoginPrompt компонента ADOConnection1 установить значение «false» (рис. 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).
Рис. 12. Настройка ADOTable1 и вывод таблицы Students
Задача решена!