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 |