Приклад підключення бази даних Microsoft Access до додатку в Delphi
Зміст
Умова задачі
Задано базу даних, сформовану в СКБД Microsoft Access. База даних розміщується за таким шляхом:
C:\Programs\C++ Builder\Program_01_02_00_008\01_02_00_008_database.mdb
Структура бази даних та зв’язки між таблицями зображено на рисунку 1.
Рис. 1. Схема зв’язків між таблицями бази даних
Здійснити підключення заданої бази даних до додатку Windows.
Виконання
1. Завантажити 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. Тестування підключення до файлу бази даних
Після цього натискаємо на кнопці “OK“. Вікно “Form1.ADOConnection1 ConnectionString” має вигляд (рис. 10).
Рис. 10. Вікно “Form1.ADOConnection1 ConnectionString” з вибраним джерелом з’єднання
У вікні на рисунку 10 вибираємо “OK“. Після цього властивість 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
Задачу розв’язано.