008 – Приклад підключення бази даних Microsoft Access до додатку в Delphi




Приклад підключення бази даних Microsoft Access до додатку в Delphi


Зміст


Умова задачі

Задано базу даних, сформовану в СКБД 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. Створити проект

Приклад створення та збереження проекту детально описується тут. Зберегти проект під довільним іменем.

 

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_04u

Рис. 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. Тестування підключення до файлу бази даних

Після цього натискаємо на кнопці “OK“. Вікно “Form1.ADOConnection1 ConnectionString” має вигляд (рис. 10).

01_02_00_008_10_

Рис. 10. Вікно “Form1.ADOConnection1 ConnectionString” з вибраним джерелом з’єднання

У вікні на рисунку 10 вибираємо “OK“. Після цього властивість 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

Задачу розв’язано.