Сокращение ODBC означает Open Database Connectivity, т. е. открытая связь с
базой данных. Этот стандарт, разработанный фирмой Microsoft, который определяет
интерфейс работы с базами данных. Очень важно, что система функций API этого
интерфейса позволяет получать доступ к самым разным базам данных, начиная с баз
Access и FoxPro и заканчивая удалённым доступом к серверам баз данных, таким
как MS Server SQL 2000.
Фирма Microsoft, контролирующая стандарт, поставляет набор драйверов для
наиболее популярных баз данных. Другие фирмы поставляют на рынок драйверы для
своих баз данных. Стандарт таков, что программа без перекомпиляции будет
работать с самыми разными базами данных.
Архитектура ODBC основана на использовании библиотек. На верхнем уровне
находится библиотека ODBC32.DLL. Эта библиотека и предоставляет интерфейс
прикладного программирования. Эта библиотека обращается к другим динамическим
библиотекам, отвечающим за взаимодействие с конкретными базами данных. Все
драйверы регистрируются в реестре по адресу:
Как уже было сказано, вся информация о драйверах хранится в реестре. И
соответственно есть несколько способов создания нового драйвера. Можно через
панель управления. Чтобы это сделать, надо открыть Панель
управления/Администрирование/ Источники данных (ODBC). На самом деле эта
программа Odbcad32.exe. Которую можно просто запускать и требовать создать
источник данных. Но можно программно создать его. Для этого используется
функция SQLConfigDataSource. Кроме того, в зависимости от заданных параметров
функции можно удалять и изменять источники данных. Вот её описание:
Если функция выполнена удачно, то она возвращает TRUE, а если не удачно – FALSE.
hwndParent – хэндл окна, которому будут направляться сообщения об
ошибка. Если этот параметр равен NULL, эти сообщения будут подавляться.
fRequest – тип выполняемого действия.
lpszDriver – точное имя драйвера ODBC, так, как оно выглядит в диалоге
настройки ODBC DSN, например "Microsoft Access Driver (*.mdb)" или "SQL
Server".
lpszAttributes – этот параметр содержит основные параметры подключения к
источнику данных.
Параметр fRequest может содержать следующие значения:
ODBC_ADD_DSN - Добавляем новый источник данных пользователя.
ODBC_CONFIG_DSN - Выбор конфигурации существующего источника данных
пользователя.
ODBC_REMOVE_DSN - Удаляем существующий источник данных пользователя.
ODBC_ADD_SYS_DSN - Добавляем новый источник данных системы.
ODBC_CONFIG_SYS_DSN - Изменяем существующий источник данных системы.
ODBC_REMOVE_SYS_DSN - Удаляем существующий источник данных системы.
ODBC_REMOVE_DEFAULT_DSN - Удаляем заданный по умолчанию раздел
спецификации источника данных из системы.
Вот параметры которые может содержать lpszAttributes:
DSN - название создаваемого источника данных
UID - имя пользователя
DATABASE - имя базы данных
PWD - пароль для подключения
Параметры разделены между собой символом '\0', конец строки отмечается
дополнительным символом '\0'.
Обязательным является имя DSN. Все остальные параметры могут быть запрошены при
подключении к источнику данных. Хотя различные драйверы ODBC в этом отношении
могут вести себя по-разному - например, для драйвера MS SQLServer обязательным
параметром также является и имя сервера.
Итак, приведу пример создания нового источника данных для Access:
Вы при необходимости можете сузить диапазон выводимых значений, указав для
direction в качестве стартового параметра SQL_FETCH_FIRST_USER для
пользовательских источников данных и SQL_FETCH_FIRST_SYSTEM для системных.
То, что описано в этой статье, лишь малая часть всех возможностей языка Visual
C++ для работы с базами данных. К этой теме вернусь еще в некоторых рассылках.