SQLConfigDataSource, функция

Соответствия
Представлена версия: ODBC 1.0

Сводка
SQLConfigDataSource добавляет, изменяет или удаляет источники данных.

К функциям SQLConfigDataSource также можно получить доступ с помощью ODBCCONF.EXE.

Синтаксис

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

Аргументы

hwndParent
[Входные данные] Родительский дескриптор окна. Функция не будет отображать диалоговые окна, если дескриптор имеет значение NULL.

fRequest
[Входные данные] Тип запроса. Аргумент 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. Удалите раздел спецификации источника данных по умолчанию из системных сведений. (Он также удаляет раздел спецификации драйвера по умолчанию из записи Odbcinst.ini в системной информации. Эта функция fRequest выполняет ту же функцию, что и устаревшая функция SQLRemoveDefaultDataSource .) Если этот параметр указан, все остальные параметры в вызове SQLConfigDataSource должны быть NULLs; если они не имеют значения NULL, они будут игнорироваться.

lpszDriver
[Входные данные] Описание драйвера (обычно имя связанной СУБД), представленное пользователям вместо имени физического драйвера.

lpszAttributes
[Входные данные] Двукратный список атрибутов, завершаемых значением NULL, в виде пар "ключевое слово-значение". Дополнительные сведения см. в разделе ConfigDSN.

Возвраты

Функция возвращает значение TRUE, если оно выполнено успешно, значение FALSE, если оно завершается ошибкой. Если запись не существует в системной информации при вызове этой функции, функция возвращает значение FALSE.

Диагностика

Когда SQLConfigDataSource возвращает ЗНАЧЕНИЕ FALSE, связанное значение *pfErrorCode можно получить путем вызова SQLInstallerError. В следующей таблице перечислены значения *pfErrorCode , которые можно возвращать SQLInstallerError и объясняет каждый из них в контексте этой функции.

*pfErrorCode Error Description
ODBC_ERROR_GENERAL_ERR Общая ошибка установщика Произошла ошибка, для которой не было определенной ошибки установщика.
ODBC_ERROR_INVALID_HWND Недопустимый дескриптор окна Недопустимый аргумент hwndParent или NULL.
ODBC_ERROR_INVALID_REQUEST_TYPE Недопустимый тип запроса Аргумент 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
ODBC_ERROR_INVALID_NAME Недопустимое имя драйвера или переводчика Недопустимый аргумент lpszDriver . Его не удалось найти в реестре.
ODBC_ERROR_INVALID_KEYWORD_VALUE Недопустимые пары "ключевое слово-значение" Аргумент lpszAttributes содержит синтаксическую ошибку.
ODBC_ERROR_REQUEST_FAILED Сбой запроса Установщик не смог выполнить операцию, запрошенную аргументом fRequest . Сбой вызова ConfigDSN .
ODBC_ERROR_LOAD_LIBRARY_FAILED Не удалось загрузить библиотеку установки драйвера или переводчика Не удалось загрузить библиотеку установки драйвера.
ODBC_ERROR_OUT_OF_MEM Недостаточно памяти Установщик не мог выполнить функцию из-за нехватки памяти.

Комментарии

SQLConfigDataSource использует значение lpszDriver для чтения полного пути библиотеки DLL установки для драйвера из системных сведений. Он загружает библиотеку DLL и вызывает ConfigDSN с теми же аргументами, которые были переданы в него.

SQLConfigDataSource возвращает значение FALSE, если не удается найти или загрузить библиотеку DLL установки или если пользователь отменяет диалоговое окно. В противном случае возвращается состояние, полученное из ConfigDSN.

SQLConfigDataSource сопоставляет system DSN fRequest с пользовательскими fRequest-s (ODBC_ADD_SYS_DSN с ODBC_ADD_DSN, ODBC_CONFIG_SYS_DSN ODBC_CONFIG_DSN и ODBC_REMOVE_SYS_DSN с ODBC_REMOVE_DSN). Чтобы различать доменные имена пользователей и системных доменов, SQLConfigDataSource задает режим конфигурации установщика в соответствии со следующей таблицей. Перед возвратом SQLConfigDataSource сбрасывает режим конфигурации в BOTHDSN. ConfigDSN (реализованная драйверами) должен вызывать SQLWriteDSNToIni и SQLWritePrivateProfileString для поддержки системного DSN. Дополнительные сведения см. в разделе "Функция ConfigDSN".

fRequest Режим конфигурации
ODBC_ADD_DSN USERDSN_ONLY
ODBC_CONFIG_DSN USERDSN_ONLY
ODBC_REMOVE_DSN USERDSN_ONLY
ODBC_ADD_SYS_DSN SYSTEMDSN_ONLY
ODBC_CONFIG_SYS_DSN SYSTEMDSN_ONLY
ODBC_REMOVE_SYS_DSN SYSTEMDSN_ONLY
Сведения Раздел
Добавление, изменение или удаление источника данных ConfigDSN (в библиотеке DLL установки)
Удаление имени источника данных из системной информации SQLRemoveDSNFromIni
Добавление имени источника данных в системную информацию SQLWriteDSNToIni