Интерфейс 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, реализующие стандартные функции или классы на основе вызовов ODBC API в драйверах или провайдерах, специально предназначенных для работы с любыми ODBC-источниками.

Спецификация ODBC подразумевает несколько стандартов на ODBC-драйверы (обычно в этом случае используют термины Level 1, Level 2 и так далее). Эти стандарты отличаются различной функциональностью, которая должна быть реализована в таком драйвере. Например, драйверы, соответствующие стандарту Level 1, не обязаны поддерживать работу с хранимыми процедурами, а некоторые ODBC-драйверы не поддерживают двухфазное завершение транзакций (применяемое в том случае, когда требуется согласованное изменение данных в нескольких различных серверных СУБД).

Архитектура ODBC

Архитектура ODBC представлена четырьмя компонентами:

• приложение-клиент, выполняющее вызов функций ODBC;

• менеджер драйверов, загружающий и освобождающий ODBC-драйверы, которые требуются для приложений-клиентов. Менеджер драйверов обрабатывает вызовы ODBC-функций или передает их драйверу;

• ODBC-драйвер, обрабатывающий вызовы SQL-функций, передавая SQL-серверу выполняемый SQL-оператор, а приложению-клиенту - результат выполнения вызванной функции;

• источник данных, определяемый как конкретная локальная или удаленная база данных.

Основная задача менеджера драйверов – загрузка соответствующего подключаемому источнику данных драйвера, а также инкапсуляция взаимодействия с различными типами источников данных посредством применения различных ODBC-драйверов.

ODBC-драйверы, принимая вызовы функций, взаимодействуют с приложением-клиентом, выполняя следующие задачи:

• управление коммуникационными протоколами между приложением-клиентом и источником данных;

• управление запросами к СУБД;

• выполнение передачи данных от приложения-клиента в СУБД и из базы данных в приложение-клиент;

• возвращение приложению-клиенту стандартной информации о выполненном вызове ODBC-функции в виде кода возврата;

• поддерживает работу с курсорами и управляет транзакциями.

Приложение-клиент одновременно может устанавливать соединения с несколькими различными источниками данных, используя разные ODBC-драйверы, а также несколько соединений с одним и тем же источником данных, используя один и тот же ODBC-драйвер.