SQLRemoveTranslator 函数

一致性
引入的版本:ODBC 3.0

摘要
SQLRemoveTranslator 从系统信息的 Odbcinst.ini 节中删除有关翻译器的信息,并将翻译器的组件使用量计数减少 1。

语法

  
BOOL SQLRemoveTranslator(  
     LPCSTR    lpszTranslator,  
     LPDWORD   lpdwUsageCount);  

参数

lpszTranslator
[输入]在系统信息的Odbcinst.ini键中注册的翻译器的名称。

lpdwUsageCount
[输出]调用此函数后翻译器的使用计数。

返回

如果成功,函数将返回 TRUE;如果失败,则返回 FALSE。 如果在调用此函数时系统信息中不存在任何条目,该函数将返回 FALSE。

诊断

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

*pfErrorCode 错误 说明
ODBC_ERROR_GENERAL_ERR 常规安装程序错误 发生错误,其中没有特定的安装程序错误。
ODBC_ERROR_COMPONENT_NOT_FOUND 在注册表中找不到组件 安装程序无法删除翻译器信息,因为它在注册表中不存在或无法在注册表中找到。
ODBC_ERROR_INVALID_NAME 驱动程序或翻译器名称无效 lpszTranslator 参数无效。
ODBC_ERROR_USAGE_UPDATE_FAILED 无法递增或递减组件使用情况计数 安装程序未能减少驱动程序的使用计数。
ODBC_ERROR_OUT_OF_MEM 内存不足 由于内存不足,安装程序无法执行该函数。

注释

SQLRemoveTranslator 补充 了 SQLInstallTranslatorEx 函数,并更新系统信息中的组件使用情况计数。 只能从安装应用程序调用此函数。

SQLRemoveTranslator 将使组件使用量计数减少 1。 如果组件使用情况计数为 0,则将删除系统信息中的翻译器条目。 翻译器条目位于系统信息中的以下位置,位于翻译器名称下:

HKEY_LOCAL_MACHINE

SOFTWARE

ODBC

Odbcinst.ini

SQLRemoveTranslator 实际上不会删除任何文件。 调用程序负责删除文件和维护文件使用情况计数。 只有在组件使用情况计数和文件使用计数都达到零之后,才会以物理方式删除文件。 组件中的某些文件可以删除,而其他文件则不能删除,具体取决于文件是否由其他应用程序使用,这些应用程序已增加文件使用计数。

SQLRemoveTranslator 也称为升级过程的一部分。 如果应用程序检测到它必须执行升级,并且它之前已安装了驱动程序,则应删除驱动程序,然后重新安装。 应首先调用 SQLRemoveTranslator 来减少组件使用量计数,然后调用 SQLInstallTranslatorEx 以增加组件使用量计数。 应用程序安装程序必须以物理方式将旧文件替换为新文件。 文件使用情况计数将保持不变,而使用较旧版本文件的其他应用程序现在将使用较新版本。

有关以下方面的信息 请参阅
安装翻译器 SQLInstallTranslatorEx