Занятие 3. ODBC

(Продолжительность занятия 35 минут)

Стандарт открытого доступа к базам данных (Open Database Connectivity, ODBC) — это типовой программный интерфейс для построения приложений управления БД в среде Microsoft Windows. ODBC использует специализированные драйверы баз данных подобно тому, как Windows применяет драйвер определенной модели принтера конкретного производителя. Разработчики могут создавать свои собственные драйверы ODBC или использовать разработанные другими фирмами. При конструировании драйвера необходимо учитывать требования соответствия стандарту ODBC.

Из этого занятия Вы узнаете о ODBC и компонентах Windows, задействованных при реализации ODBC-драйверов.

 


Изучив материал этого занятия, Вы сможете:

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

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

6-14.jpg

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

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

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

ODBC соответствует формирующемуся стандарту интерфейса уровня вызова (Call-Level Interface) Международной организации по стандартизации (International Standards Organization, ISO).

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

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

6-15.jpg

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

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

Обычно для доступа к диспетчеру драйверов программа дополняется импортируемой библиотекой диспетчера драйверов (odbc.lib).

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

Прежде чем передать вызов драйверу, отвечающему за подключение к конкретной БД, диспетчер проверяет аргументы функций и корректность изменения состояния, а также другие условия отсутствия ошибок. Таким образом драйвер БД освобождается от обработки большинства ошибок.

Имена источников данных

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

6-16.jpg

Рис. 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-17.jpg

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

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

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

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

Базовый уровень

Уровень 1


Примечание В спецификации ODBC 2.0 многие требования уровня I были перемещены на базовый уровень.

Уровень 2

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

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

6-18.jpg

Рис. 6.15 Уровни соответствия требованиям в отношении грамматики SQL

Все драйверы должны поддерживать минимальную грамматику. Как и в случае API (см. предыдущий раздел), для соответствия одному из уровней по этому параметру необходимо, чтобы драйвер отвечал всем требованиям этого уровня.

Ниже перечислены требования различных уровней соответствия на основе спецификации SQL 92.

Минимальная грамматика SQL

Основная грамматика SQL

Расширенная грамматика SQL

Резюме

Технология ODBC реализует типовой интерфейс для доступа к разнородным SQL-совместимым базам данных. ODBC позволяет разработчику создавать и распространять клиент-серверные приложения, не привязанные к конкретной СУБД. Драйверы баз данных обеспечивают подключение приложений к СУБД. Загрузку драйверов, необходимых приложению-клиенту для доступа к БД, выполняет диспетчер драйверов ODBC. Имя источника данных задает местонахождение, тип драйвера и другие параметры, необходимые драйверу ODBC для доступа к БД. Все драйверы ODBC должны соответствовать требованиям в отношении API и SQL.

 

Используются технологии uCoz