你目前正处于脱机状态,正在等待 Internet 重新连接

ODBC 管理器工具将显示在 64 位版本的 Windows 32 位和 64 位用户 Dsn

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 942976
症状
Microsoft Windows 操作系统的 64 位版本包括下列 Microsoft 开放式数据库连接(ODBC) (ODBC) 数据源管理器工具 (Odbcad32.exe) 的版本 ︰
  • Odbcad32.exe 文件的 32 位版本位于 %systemdrive%\Windows\SysWoW64 文件夹中。
  • Odbcad32.exe 文件的 64 位版本位于 %systemdrive%\Windows\System32 文件夹中。
Odbcad32.exe 文件显示以下类型的数据源名称 (Dsn):
  • 系统 Dsn
  • 用户 Dsn

症状 1

显示 ODBC 管理器工具的 32 位版本的 32 位系统 Dsn,32 位用户 Dsn,64 位用户 Dsn。64 位系统 Dsn,32 位用户 Dsn,64 位用户 Dsn 将显示 ODBC 管理器工具的 64 位版本。

症状

SQLDataSources函数将返回所有用户 Dsn,无论该应用程序的体系结构的版本。一个 32 位的应用程序中调用SQLDataSources函数返回仅系统 Dsn 的 32 位驱动程序,但返回用户 Dsn 的 32 位驱动程序和 64 位驱动程序。同样,在一个 64 位应用程序中调用SQLDataSources函数返回仅系统 Dsn 的 64 位驱动程序,但返回用户 Dsn 的 32 位驱动程序和 64 位驱动程序。因此,如果应用程序通过用户从SQLDataSources函数返回的 DSN 建立的连接,您可能会收到以下错误消息 ︰
未找到数据源名称并且未指定默认驱动程序
例如,请考虑下面的方案。创建用户 DSN 的 32 位驱动程序"Microsoft Access 驱动程序 (*.mdb)。"该驱动程序没有相应的 64 位版本。一个 64 位应用程序在调用SQLDataSources函数返回此 32 位用户 DSN。但是,如果通过此 32 位用户 DSN 连接,您将收到在本节前面提到的错误消息。
原因
用户 Dsn 存储在以下注册表子项下 ︰
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
未启用此注册表子项的注册表重定向。因此,用户 Dsn 都显示在 ODBC 管理器工具的 32 位和 64 位版本。
解决方案
为了保持向后兼容性,是目前没有解决此问题。
替代方法
若要变通解决此问题,请使用 ODBC 管理器工具的适当版本。如果生成,然后作为 32 位应用程序在 64 位操作系统上运行应用程序时,您必须 %windir%\syswow64\odbcad32.exe 中使用 ODBC 管理器工具创建 ODBC 数据源。若要指示类型的 DSN,可以向 64 位用户 Dsn 添加到 32 位用户 Dsn 的"_32"和"_64"。
更多信息
从控制面板管理用户 Dsn 和由 64 位进程使用的系统 Dsn,可以调用 64 位 ODBC 管理器工具。在 64 位操作系统,32 位 ODBC 管理器工具用于为 Windows Windows 64 (WOW64) 进程。您必须直接调用 SysWoW64 文件夹中的 32 位 ODBC 管理器工具。32 位 ODBC 管理器工具可用于管理用户 Dsn 并由 WOW64 进程使用的系统 Dsn。

系统 Dsn 都存储在以下注册表子项 ︰
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI
注册表重定向已启用此注册表子项。因此,分隔系统 Dsn 为 32 位驱动程序和 64 位驱动程序。64 位 ODBC 管理器工具不会显示系统,由 32 位 ODBC 管理器工具创建 Dsn。同样地,32 位 ODBC 管理器工具不显示系统,由 64 位 ODBC 管理器工具创建 Dsn。此外,64 位 ODBC 管理器工具不显示系统 Dsn 使用 32 位驱动程序。同样地,32 位 ODBC 管理器工具不显示系统 Dsn 使用 64 位驱动程序。

用户 Dsn 都存储在以下注册表子项 ︰
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
未启用此注册表子项的注册表重定向。因此,这两个 ODBC 管理器工具显示所有用户 Dsn。

有关注册表重定向的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点 ︰

警告:本文已自动翻译

属性

文章 ID:942976 - 上次审阅时间:06/12/2016 11:05:00 - 修订版本: 6.0

Microsoft Open Database Connectivity 4.21

  • kbexpertiseadvanced kbtshoot kbprb kbmt KB942976 KbMtzh
反馈