Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_Практичні роботи_ИЗВП_укр.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
7.14 Mб
Скачать

4.Стандарт odbc і dao

Вибір між класами ODBC і DAO. MSVC + + надає набір класів для доступу до БД через ODBC і DAO. У багатьох відносинах DAO є для класів ODBC суперкласом, включаючи більшість функціональних можливостей ODBC і додаючи при цьому безліч своїх власних. На жаль, хоча класи DAO і можуть працювати з джерелами даних ODBC, для яких існують ODBC-драйвери, таке їхнє застосування не особливо ефективно. З цієї причини DAO-класи більше підходять для створення програмних додатків, що оперують файлами баз даних формату. Mdb фірми Microsoft, створюваних додатком Microsoft Access. Файли інших форматів, з якими можна працювати безпосередньо, використовуючи класи DAO, створюються додатками FoxPro і Excel.

Класи інтерфейсу DAO, які використовують додаток Microsoft Jet Database Engine, настільки схожі на класи інтерфейсу ODBC, що в деяких випадках можна шляхом простої зміни назви класу в тексті програми замінити інтерфейс доступу з ODBC на DAO: CDatabase змінюється на CDaoDatabase, CRecordset - на CDaoRecordset, a CRecordView - на CDaoRecordView. Однак між класами ODBC і DAO є істотна відмінність в тому, як реалізуються системні бібліотеки. ODBC-класи реалізовані як набір модулів DLL, в той час як класи DAO реалізовані у вигляді об'єктів OLE. Використання об'єктів OLE робить систему DAO кілька більш сучасною в порівнянні з ODBC, принаймні, у відношенні архітектури.

Хоча система DAO реалізована у вигляді об'єктів OLE, вам не доведеться турбуватися про роботу з подібними об'єктами безпосередньо. Вхідні в MFC класи DAO беруть обробку всіх деталей управління на себе, надаючи дані і методи, що забезпечують взаємодію з об'єктами OLE. Клас

CDaoWorkspace забезпечує за допомогою статичних методів прямий доступ до об'єктів ядра бази даних DAO. Хоча MFC бере керування робочою областю на себе, можна використовувати її дані і методи для безпосередньої ініціалізації зв'язку з базою даних.

Ще одна відмінність полягає в тому, що класи DAO надають більш потужний набір функцій, які можна використовувати для маніпулювання базою даних. Ці більш потужні методи дозволяють виконувати з базами даних складні операції, використовуючи невеликий обсяг вихідного тексту на C + + або SQL-вирази, написані безпосередньо розробником:

• обидві системи (ODBC і DAO) можуть працювати з ODBC-джерелами даних, але в цьому випадку DAO менш ефективна, так як орієнтована для роботи з базами даних формату. mdb;

• майстер AppWizard може створити заготівлю БД-додатки, використовуючи або класи ODBC, або класи DAO. Вибір типу створюваного додатка залежить частково від баз даних, з якими ви будете працювати;

• обидві системи - і ODBC і DAO - використовують для з'єднання з базою даних, до якої здійснюється доступ, об'єкти класів баз даних MFC. В ODBC такий клас бази даних називається CDatabase, а в системі DAO - CDaoDatabase. Хоча ці класи і мають різні назви, вони містять безліч схожих членів;

• обидві системи, ODBC і DAO, використовують об'єкти класу вибірки даних для зберігання записів, вибраних на поточний момент. В ODBC такий клас вибірки даних називається CRecordset, а в системі DAO - CDaoRecordset. DAO-клас вибірки даних містить практично всі члени класу ODBC. Крім того, DAO-клас має великий набір додаткових методів;

• системи ODBC і DAO використовують схожі методики перегляду вмісту джерела даних, а саме: в обох системах додаток повинен створити об'єкт бази даних, об'єкт вибірки даних, а потім викликати методи відповідного класу для маніпулювання базою даних.

Відмінності між системами ODBC і DAO полягають у наступному:

• хоча вхідні в MFC класи ODBC і DAO схожі (іноді навіть дуже), деякі аналогічні методи мають різні імена. Крім того, класи DAO включають багато методів, яким немає аналогів в класах ODBC;

• в системі ODBC для визначення опцій, які можуть використовуватися при відкритті вибірки даних, використовуються макроси і перерахування, тоді як в DAO для цих цілей визначено константи;

• велика кількість існуючих ODBC-драйверів робить систему ODBC придатної для роботи з безліччю файлів баз даних різних форматів, в той час як система DAO більше підходить для додатків, що працюють тільки з файлами формату. mdb;

• система ODBC реалізована у вигляді набору DLL-модулів, а DAO реалізована як набір об'єктів OLE;

• в ODBC об'єкт класу CDatabase безпосередньо взаємодіє з джерелом даних. DAO-об'єкт класу CDaoWorkspace займає проміжне положення між об'єктами класів CDaoRecordset і CDaoDatabase, що дає можливість робітничому середовищі взаємодіяти з багатьма об'єктами класу баз даних.

OLE DB - це сукупність інтерфейсів OLE, які спрощують доступ до даних, збереженим додатками, які не є СУБД, наприклад, що зберігаються в поштових скриньках електронної пошти або лінійних файлах.

Додаток, що використовує OLE DB, може інтегрувати інформацію з таких СУБД, як Oracle, SQL Server і Access, з інформацією з систем, які не є СУБД, але використовують можливості OLE.

Для використання цього потужного інструменту ви повинні впевнено відчувати себе при роботі з інтерфейсами OLE. Якщо вам раніше доводилося створювати додатки OLE (ActiveX) тільки за допомогою MFC і майстри App-Wizard, вас може шокувати знайомство з тим, що Microsoft вважає "спрощеним". Ви зустрінетеся з безліччю викликів функції Querylnterface () і безліччю змінних з іменами на зразок pIColslnfo і rgCol Info. Все ж, розібравшись у всіх інтерфейсах і всіх установках, ви зможете викликати таку функцію, як GetData (), і отримати інформацію з програми, яка не є СУБД, як ніби це база даних. У результаті виходить істотний виграш у часі.

КОНТРОЛЬНІ ЗАПИТАННЯ

1. Наведіть основні етапи створення екранної форми для відображення вмісту БД?

2. Як забезпечити в програмі операції видалення, редагування, додавання записів в БД?

3. Як здійснити операції сортування і фільтрації записів з БД?

4. Що ви знаєте про стандарт ODBC і DAO?

ПРИЛОЖЕНИЕ А