Архитектура Microsoft Windows для разработчиков

       

Определение ODBC


Технология ODBC реализует стандартизованный интерфейс для доступа к разнородным SQL-совместимым базам данных (рис. 6.11). Для программирования доступа к информации в ODBC-совместимых БД применяется язык структурированных запросов (Structured Query Language, SQL).

Рис. 6.11 Подключение клиентского приложения к БД средствами ODBC

Используя ODBC и SQL, приложение может средствами одного кода получить доступ к SQL-совместимым системам управления базами данных (СУБД) разных производителей. ODBC позволяет разработчику создавать и распространять клиент-серверные программы, не зависящие от конкретной СУБД. Для подключения к выбранной пользователем БД достаточно просто добавить соответствующий драйвер базы данных. Эту работу берет на себя диспетчер драйверов ODBC.

Вот в чем причина гибкости ODBC:

  • приложения не связаны узами фирменного API конкретного поставщика;
  • операторы SQL включают непосредственно в исходный код или конструируют их на стадии выполнения; кроме того, приложение может игнорировать нижележащие протоколы обмена данными;
  • данные передают и принимают в удобном для приложения формате.
  • ODBC соответствует формирующемуся стандарту интерфейса уровня вызова (Call-Level Interface) Международной организации по стандартизации (International Standards Organization, ISO).

    Диспетчер драйверов ODBC

    Приложение взаимодействует с диспетчером драйверов ODBC через интерфейс ODBC. Диспетчер драйверов — это библиотека динамической загрузки, которая загружает необходимые ODBC-драйверы (рис. 6.12).

    Рис. 6.12 Диспетчер драйверов ODBC

    Кроме загрузки необходимых драйверов, диспетчер выполняет дополнительные функции:

    • обрабатывает некоторые инициализационные и информационные вызовы ODBC;
    • передает вызовы функций ODBC от приложения драйверу;
    • проверяет ошибки и контролирует состояние;
    • регистрирует вызовы функций приложениями (дополнительная возможность).
    • Обычно для доступа к диспетчеру драйверов программа дополняется импортируемой библиотекой диспетчера драйверов (odbc.lib).

      Диспетчер драйверов может при необходимости регистрировать в журнале все вызовы функций ODBC приложением (это происходит после проверки наличия ошибок).
      В журнал записывается имя каждой свободной от ошибок функции вместе со значениями входных аргументов и именами выходных. Прежде чем передать вызов драйверу, отвечающему за подключение к конкретной БД, диспетчер проверяет аргументы функций и корректность изменения состояния, а также другие условия отсутствия ошибок. Таким образом драйвер БД освобождается от обработки большинства ошибок. Имена источников данных Имя источника данных (Data Source Name, DSN) — это именованный ресурс ODBC, который определяет местонахождение, тип драйвера и другие параметры БД, необходимые для доступа к ней (рис. 6.13). Диспетчер драйверов ODBC использует эту информацию для установления соединения и управления им.

      Рис. 6.13 Три типа DSN и их функции Существуют три типа DSN, различающиеся местом хранения информации, необходимой для подключения к серверу БД. Информация о соединении для пользовательского DSN содержится в реестре Windows того компьютера, на котором создано соединение с данными.

      Системные DSN относятся к компьютеру, а не к пользователю. Система или любой пользователь, обладающий соответствующими привилегиями, могут работать с источником данных, заданным системным DSN.



      Информация о соединении для файлового DSN хранится в файле, доступном для чтения любому приложению: это облегчает перенос проекта с одного компьютера на другой.

      > Создание DSN В этом упражнении Вы создадите DSN для базы данных Northwind, чтобы пользоваться ею в следующих упражнениях этого занятия.


      1. Дважды щелкните значок 32bit ODBC на панели управления Windows. Если Вы работаете с Windows NT 4.0, этот значок называется ODBC.


      2. Откройте вкладку System DSN.


      3. Щелкните кнопку Add.


      4. Выберите Microsoft Access Driver и щелкните Finish.


      5. В поле Data Source Name введите nwind.


      6. Щелкните Select и найдите базу данных Northwind в папке WA\Practice\ nwind.mdb.


      7. Щелкните кнопку OK, чтобы закрыть ODBC Data Source Administrator. Теперь база данных Northwind доступна средствам разработки (например, Visual Basic) и средствам управления Web-узлом (например, Frontpage).



        Соответствие требованиям API ODBC

        Драйверы ODBC предоставляют программам доступ к разнообразным источникам данных: приложение на стадии выполнения может выяснить, какие возможности и какую грамматику SQL поддерживают данный драйвер и источник данных.

        Все драйверы ODBC должны удовлетворять требованиям одного из трех уровней соответствия стандартам API ODBC (рис. 6.14).



        Рис. 6.14 Уровни соответствия требованиям API ODBC

        Драйверы ODBC должны, как минимум, соответствовать требованиям интерфейса базового уровня. Это основные функции драйвера, которые обычно необходимы приложениям.

        Многим приложениям ODBC нужны драйверы, отвечающие требованиям следующего уровня; поэтому если драйвер ориентирован на широкую аудиторию, разработчикам придется реализовать все требования уровня 1, а условия второго можно рассматривать как перечень необязательных дополнений.

        Ниже перечислены функции, которые должен реализовать драйвер для соответствия требованиям каждого из уровней.


        Содержание раздела