Основа ODBC
ODBC (Open Database Connectivity) – открытый интерфейс доступа к БД, который разработан фирмой Microsoft. Интерфейс предоставляет унифицированные средства взаимодействия прикладной программы (клиента) и сервера (базы данных).
Базу интерфейса ODBC составляет спецификация CLI-интерфейса, ISO/IEC для баз данных API и язык SQL.
Интерфейс ODBC был спроектирован для поддержки наилучшей интероперабельности приложений, обеспечивающей унифицированный доступ любого приложения, которое использует ODBC, к разным источникам данных. Например, если приложение, которое соответствует стандарту SQL и ODBC, первоначально было разработано для работы с БД MS Access, а после таблицы этой базы перенесли в БД MS SQL Server или БД Oracle, то приложение сможет и далее выполнять обработку этих данных без внесения каких-либо изменений.
Создание источника данных
Источник данных DSN, который используется функциями ODBC API, можно создать двумя способами: программно с помощью функции ODBC API и интерактивно с помощью утилиты ODBC.
Утилита ODBC
При запуске утилиты ODBC (рисунок 1) на вкладке Пользовательский DSN выводится список всех источников данных, которые были зарегистрированы.
При создании нового источника данных в диалоге отображаются все зарегистрированные в реестре Windows ODBC-драйвера (рисунок 2).
При выборе различных ODBC-драйверов будут последовательно отображаться один или более диалоговых окон для ввода параметров DSN, который создается.
Например, при создании источника данных, который позволяет работать с БД MS SQL Server, необходимо ввести имя DSN, который создается, имя зарегистрированного SQL-сервера (рисунок 3) и имя БД и некоторые дополнительные параметры.
Создание источника данных с использованием ODBC API
Две функции ODBC API ConfigDSN и SQLConfigDataSource, которые позволяют регистрировать новые источники данных или удалять информацию о них из реестра Windows (а также из файла ODBC.ini) находятся в DLL-библиотеке ODBCCP32.DLL.
Функция ConfigDSN отвечает за добавление, изменение или удаление источников данных и описывается следующим образом:
hwndParent – параметр, определяющий дескриптор окна или NULL. При неуказанном дескрипторе в ходе выполнения данной функции не будет отображаться окно с предложением уточнения параметров.
fRequest – параметр, указывающий тип запроса, который может принимать одно из следующих значений:
- ODBC_REMOVE_DSN – удаляет существующий источник данных;
- ODBC_CONFIG_DSN – изменяет существующий источник данных;
- ODBC_ADD_DSN – добавляет новый источник данных.
lpszDriver – параметр, содержащий описание драйвера.
lpszAttributes – параметр, содержащий список атрибутов в виде «ключевое слово = значение».
Функция SQLConfigDataSource описывается следующим образом:
Параметры данной функции аналогичны параметрам предыдущей функции и другими значениями параметра fRequest:
- ODBC_REMOVE_SYS_DSN – удаляет существующий системный DSN;
- ODBC_CONFIG_SYS_DSN – изменяет существующий системный DSN;
- ODBC_ADD_SYS_DSN – добавляет новый системный DSN;
- ODBC_REMOVE_DSN – удаляет существующий пользовательский DSN;
- ODBC_CONFIG_DSN – изменяет существующий пользовательский DSN;
- ODBC_ADD_DSN – добавляет новый пользовательский DSN.