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 缓冲区的最大长度。

印刷名称Out
[输入/输出] (,不包括在 lpszName 中传递或返回的 null 终止字节) 的总字节数。 如果可返回的字节数大于或等于 cbNameMax则 lpszName 中的翻译名称将被截断为 cbNameMax 减去 null 终止字符。 “印刷名称”参数可以是 null 指针。

lpszPath
[输出]转换 DLL 的完整路径。

cbPathMax
[输入] lpszPath 缓冲区的最大长度。

线路板路径Out
[输出] (不包括 lpszPath 中返回的 null 终止字节) 的字节总数。 如果可返回的字节数大于或等于 cbPathMax,则 lpszPath 中的转换 DLL 路径将被截断为 cbPathMax 减去 null 终止字符。 “线路板路径”参数可以是 null 指针。

pvOption
[输出] 32 位转换选项。

返回

如果成功,函数将返回 TRUE;如果失败或用户取消对话框,则返回 FALSE。

诊断

SQLGetTranslator 返回 FALSE 时,可以通过调用 SQLInstallerError 来获取关联的 *pfErrorCode 值。 下表列出了 SQLInstallerError 可返回的 *pfErrorCode 值,并说明了此函数上下文中的每个值。

*pfErrorCode 错误 说明
ODBC_ERROR_GENERAL_ERR 常规安装程序错误 发生错误,其中没有特定的安装程序错误。
ODBC_ERROR_INVALID_BUFF_LEN 缓冲区长度无效 cbNameMaxcbPathMax 参数小于或等于 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,或者 lpszNamelpszPathpvOption 为 null 指针, 则 SQLGetTranslator 返回 FALSE。 否则,它会在以下对话框中显示已安装翻译器的列表。

“选择翻译器”对话框

如果 lpszName 包含有效的翻译器名称,则将其选中。 否则, <未选择“翻译器> ”。

如果用户选择 <“无翻译器>”,则不会触摸 lpszNamelpszPathpvOption 的内容。 SQLGetTranslator号名称OutPathOut 设置为 0 并返回 TRUE。

如果用户选择翻译器, SQLGetTranslator 在翻译器的安装 DLL 中调用 ConfigTranslator 。 如果 ConfigTranslator 返回 FALSE, SQLGetTranslator 将返回到其对话框。 如果 ConfigTranslator 返回 TRUE, SQLGetTranslator 将返回 TRUE,以及所选翻译器名称、路径和翻译选项。

有关以下方面的信息 请参阅
配置翻译器 ConfigTranslator
获取翻译属性 SQLGetConnectAttr
设置转换属性 SQLSetConnectAttr