Поделиться через


Функция 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. В противном случае отобразится список установленных переводчиков в следующем диалоговом окне.

Select Translator dialog box

Если lpszName содержит допустимое имя переводчика, он выбран. <В противном случае не выбран переводчик>.

Если пользователь выбирает <No Translator>, содержимое lpszName, lpszPath и pvOption не касаются. SQLGetTranslator задает для pcbNameOut и pcbPathOut значение 0 и возвращает ЗНАЧЕНИЕ TRUE.

Если пользователь выбирает переводчик, SQLGetTranslator вызывает ConfigTranslator в библиотеке DLL установки переводчика. Если ConfigTranslator возвращает ЗНАЧЕНИЕ FALSE, SQLGetTranslator возвращается в его диалоговое окно. Если ConfigTranslator возвращает ЗНАЧЕНИЕ TRUE, SQLGetTranslator возвращает ЗНАЧЕНИЕ TRUE, а также выбранный параметр перевода, пути и перевода.

Сведения Раздел
Настройка переводчика ConfigTranslator
Получение атрибута перевода SQLGetConnectAttr
Настройка атрибута перевода SQLSetConnectAttr