додаток зможе використовувати дані тільки СУБД цього виробника, і заміна її на іншу (наприклад, з метою розширення сховища даних або переходу в архітектуру „клієнт-сервер”) спричинить за собою переписування значної частини коду клієнтського додатка — клієнтські API і об'єктні моделі не підчиняються ніяким стандартам і різні для різних СУБД.
Інший спосіб маніпуляції даними в додатку базується на застосуванні універсальних механізмів доступу до даних. Універсальний механізм доступу до даних звичайно реалізований у виді бібліотек і додаткових модулів, називаних драйверами або провайдерами. Додаткові модулі, специфічні для тієї або іншої СУБД, реалізують безпосереднє звертання до функцій клієнтського API конкретних СУБД.
Відзначимо, що перевагою універсальних механізмів є можливість застосування того самого абстрактного API, а в багатьох випадках — COM-серверів, компонентів, класів для доступу до різних типів СУБД. Тому додатки, що використовують універсальні механізми доступу до даних, легко модифікувати, якщо необхідно змінити СУБД. При цьому нерідко модифікація торкається додатка як такого, а настроювання доступу до даних, що утримуються в реєстрі або зовнішніх файлах. Однак за подібну універсальність часом приходиться платити неможливістю доступу до унікальної функціональності, специфічної для конкретної СУБД, зниженням продуктивності додатків, а також ускладненням процедури постачання додатка — адже в його склад потрібно включати бібліотеки, відповідальні за реалізацію універсальних механізмів, драйвери для тих або інших СУБД, а також забезпечувати настроювання, необхідні для їхнього правильного функціонування.
Найбільш популярними серед універсальних механізмів доступу до даних можна назвати наступні:
Open Database Connectivity (ODBC).
OLE DB.
Active Data Objects (ADO).
Borland Database Engine (BDE).
Універсальні механізми ODBC, OLE DB і ADO фірми Microsoft являють собою власне кажучи промислові стандарти. Нижче ми коротко зупинимося на найбільше широко використовуваних універсальних механізмах.
Технологія ODBC
ODBC (Open Database Connectivity) — широко розповсюджений програмний інтерфейс фірми Microsoft, що задовольняє стандартам ANSI і ISO для інтерфейсів звертань до баз даних (Call Level Interface, CLI). Для доступу до даних конкретної СУБД за допомогою ODBC, крім власне клієнтської частини цієї СУБД, потрібний ODBC Administrator (додаток, що дозволяє визначити, які джерела даних доступні для даного комп'ютера за допомогою ODBC, і описати нові джерела даних), і ODBC-драйвер для доступу до цієї СУБД. ODBC-драйвер являє собою бібліотеку, що динамічно завантажується, (DLL), що клієнтський додаток може завантажити у свій адресний простір і використовувати для доступу до джерела даних. Для кожної використовуваної СУБД потрібний власний ODBC-драйвер, тому що ODBC-драйвери використовують функції клієнтських API, різні для різних СУБД.
За допомогою ODBC можна маніпулювати даними будь-якої СУБД (і навіть даними, що не мають прямого відношення до баз даних, наприклад даними у файлах електронних таблиць або в текстових файлах), якщо для них мається ODBC-драйвер. Для маніпуляції даними можна використовувати як безпосередні виклики ODBC API, так і інші універсальні механізми доступу до даних, наприклад OLE DB, ADO, BDE, що реалізують стандартні функції або класи на основі викликів ODBC API у драйверах або провайдерах, спеціально призначених для роботи з будь-якими ODBC-джерелами.
Говорячи про ODBC, не можна не відзначити, що специфікація ODBC має на увазі кілька стандартів на ODBC-драйвери (звичайно в цьому випадку вживаються терміни Level 1, Level 2 і т.д.). Ці стандарти відрізняються різною функціональністю, що повинна бути реалізована в такому драйвері. Наприклад, драйвери, що відповідають стандартові Level 1, не зобов'язані підтримувати роботу зі збереженими процедурами, а деякі ODBC-драйвери не підтримують двохфазне завершення транзакцій (застосовуване в тому випадку, коли потрібне погоджена зміна даних у декількох різних серверних СУБД).
Технологія OLE DB і ADO
OLE DB і ADO — частина універсального механізму доступу до даних Microsoft (Microsoft Universal Data Access), що дозволяє здійснити доступ як до реляційних, так і до нереляційних джерел даних, таких як файлова система, дані електронної пошти, багатомірні сховища даних і ін.
Microsoft Active Data Objects (ADO) — це набір бібліотек, що містять COM-об'єкти, що реалізують прикладний програмний інтерфейс для доступу до таких даних і використовувані в клієнтських додатках. ADO використовує бібліотеки OLE DB, що надають низькорівневий інтерфейс для доступу до даних. OLE DB надає доступ до даних за допомогою COM-інтерфейсів. Можна також використовувати OLE DB безпосередньо, обминаючи ADO.
Для доступу до джерела даних за допомогою OLE DB потрібно, щоб на комп'ютері, де використовується клієнтський додаток, був установлений OLE DB-провайдер для даної СУБД. OLE DB-провайдер являє собою DLL, що завантажується в адресний простір клієнтського додатка і використовується для доступу до джерела даних. Для кожного типу СУБД потрібний власний OLE DB-провайдер, тому що ці провайдери базуються на функціях клієнтських API, різних для різних СУБД.
Серед OLE DB-провайдерів для різних джерел даних мається спеціальний провайдер Microsoft OLE DB Provider for ODBC Drivers. Цей провайдер використовує не API клієнтської частини якої-небудь СУБД, а інтерфейс ODBC API, тому він застосовується разом з ODBC-драйвером для обраної СУБД.
Відзначимо, що ADO стає усе більш популярним способом доступу до даних, тому що входить до складу таких широко використовуваних продуктів, як Microsoft Office і Microsoft Internet Explorer , а також включений у ядро операційних систем сімейства Windows.
Моделі для об'єктів COM
Опис: сервер не забезпечує ніякої підтримки багатонитковості. COM видає випусками запити клієнта таким чином, що додаток одержує запит в час. Клієнти управляються поодинці, так що ніяка підтримка багатонитковості не потрібна. COM гарантує, що тільки одна нитка клієнта може зайти об'єкт в час доступу. Всі виклики клієнта використовують нитку, в якій об'єкт був