Функция SQLGetTranslator
Соответствия
Представлена версия: ODBC 2.0
Сводка
SQLGetTranslator отображает диалоговое окно, из которого пользователь может выбрать переводчика.
Синтаксис
BOOL SQLGetTranslator(
HWND hwndParent,
LPSTR lpszName,
WORD cbNameMax,
WORD * pcbNameOut,
LPSTR lpszPath,
WORD cbPathMax,
WORD * pcbPathOut,
DWORD * pvOption);
Аргументы
hwndParent
[Входные данные] Родительский дескриптор окна.
lpszName
[входные и выходные данные] Имя переводчика из системной информации.
cbNameMax
[Входные данные] Максимальная длина буфера lpszName .
pcbNameOut
[входные и выходные данные] Общее число байтов (за исключением байта завершения null), переданное или возвращенное в lpszName. Если число байтов, доступных для возврата, больше или равно cbNameMax, то имя переводчика в lpszName усечено до cbNameMax минус символ завершения null. Аргумент pcbNameOut может быть пустым указателем.
lpszPath
[Выходные данные] Полный путь к библиотеке DLL перевода.
cbPathMax
[Входные данные] Максимальная длина буфера lpszPath .
pcbPathOut
[Выходные данные] Общее количество байтов (за исключением байта завершения null), возвращаемое в lpszPath. Если число байтов, доступных для возврата, больше или равно cbPathMax, путь dll перевода в lpszPath усечен до cbPathMax минус символ завершения null. Аргумент pcbPathOut может быть указателем null.
pvOption
[Выходные данные] 32-разрядный параметр перевода.
Возвраты
Функция возвращает значение TRUE, если оно выполнено успешно, значение FALSE, если оно завершается ошибкой или если пользователь отменяет диалоговое окно.
Диагностика
Когда SQLGetTranslator возвращает ЗНАЧЕНИЕ FALSE, связанное значение *pfErrorCode можно получить путем вызова SQLInstallerError. В следующей таблице перечислены значения *pfErrorCode , которые можно возвращать SQLInstallerError и объясняет каждый из них в контексте этой функции.
*pfErrorCode | Error | Description |
---|---|---|
ODBC_ERROR_GENERAL_ERR | Общая ошибка установщика | Произошла ошибка, для которой не было определенной ошибки установщика. |
ODBC_ERROR_INVALID_BUFF_LEN | Недопустимая длина буфера | Аргумент cbNameMax или cbPathMax был меньше или равен 0. |
ODBC_ERROR_INVALID_HWND | Недопустимый дескриптор окна | Недопустимый аргумент hwndParent или NULL. |
ODBC_ERROR_INVALID_NAME | Недопустимое имя драйвера или переводчика | Недопустимый аргумент lpszName . Его не удалось найти в реестре. |
ODBC_ERROR_LOAD_LIBRARY_FAILED | Не удалось загрузить библиотеку установки драйвера или переводчика | Не удалось загрузить библиотеку переводчика. |
ODBC_ERROR_INVALID_OPTION | Недопустимый параметр транзакции | Аргумент pvOption содержит недопустимое значение. |
ODBC_ERROR_OUT_OF_MEM | Недостаточно памяти | Установщик не мог выполнить функцию из-за нехватки памяти. |
Комментарии
Если hwndParent имеет значение NULL или если lpszName, lpszPath или pvOption является пустым указателем, SQLGetTranslator возвращает ЗНАЧЕНИЕ FALSE. В противном случае отобразится список установленных переводчиков в следующем диалоговом окне.
Если lpszName содержит допустимое имя переводчика, он выбран. <В противном случае не выбран переводчик>.
Если пользователь выбирает <No Translator>, содержимое lpszName, lpszPath и pvOption не касаются. SQLGetTranslator задает для pcbNameOut и pcbPathOut значение 0 и возвращает ЗНАЧЕНИЕ TRUE.
Если пользователь выбирает переводчик, SQLGetTranslator вызывает ConfigTranslator в библиотеке DLL установки переводчика. Если ConfigTranslator возвращает ЗНАЧЕНИЕ FALSE, SQLGetTranslator возвращается в его диалоговое окно. Если ConfigTranslator возвращает ЗНАЧЕНИЕ TRUE, SQLGetTranslator возвращает ЗНАЧЕНИЕ TRUE, а также выбранный параметр перевода, пути и перевода.
Связанные функции
Сведения | Раздел |
---|---|
Настройка переводчика | ConfigTranslator |
Получение атрибута перевода | SQLGetConnectAttr |
Настройка атрибута перевода | SQLSetConnectAttr |