Основы проектирования приложений баз данных


         

Создание источника данных с использованием ODBC API


DLL-библиотека ODBCCP32.DLL предоставляет функции ODBC API ConfigDSN и SQLConfigDataSource, позволяющие выполнять регистрацию новых источников данных или удалять информацию об источниках данных из реестра Windows (и из файла ODBC.ini).

Функция ConfigDSN позволяет добавлять, изменять или удалять источники данных и имеет следующее формальное описание:

BOOL ConfigDSN( HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);

Для использования в среде Visual Studio функций ConfigDSN и SQLConfigDataSource следует подключить заголовочный файл odbcinst.h.

Параметр hwndParent определяет дескриптор окна или NULL. Если дескриптор не указан, то при выполнении данной функции окно с предложением уточнить параметры не отображается. Параметр fRequest указывает тип запроса, который задается одной из следующих констант:

  • ODBC_ADD_DSN - добавление нового источника данных;
  • ODBC_CONFIG_DSN - изменение существующего источника данных;
  • ODBC_REMOVE_DSN - удаление существующего источника данных.

Параметр lpszDriver содержит описание драйвера, а параметр lpszAttributes - список атрибутов в форме "ключевое слово=значение" (например: DSN=MyDB\0UID=U1\0PWD=P1\0DATABASE=DB1\0\0). Список атрибутов завершается двумя null-байтами.

При успешном завершении функция возвращает значение TRUE, в противном случае вызовом функции SQLInstallerError можно получить один из следующих кодов ошибки:

  • ODBC_ERROR_INVALID_HWND - ошибка в указании дескриптора окна;
  • ODBC_ERROR_INVALID_KEYWORD_VALUE - параметр lpszAttributes содержит ошибки;
  • ODBC_ERROR_INVALID_NAME - параметр lpszDriver не найден в системе;
  • ODBC_ERROR_INVALID_REQUEST_TYPE - параметр fRequest содержит недопустимое значение;
  • ODBC_ERROR_REQUEST_FAILED - нельзя выполнить действие, указанное параметром fRequest;
  • ODBC_ERROR_DRIVER_SPECIFIC - ошибка конкретного драйвера.

Для записи информации об источнике данных в секцию [ODBC Data Sources] секции ODBC.INI реестра Windows функция ConfigDSN вызывает функцию SQLWriteDSNToIni, а для удаления - функцию SQLRemoveDSNFromIni.



Содержание  Назад  Вперед