【问题标题】:How do I connect to my 64-bit SQL Server with ODBC?如何使用 ODBC 连接到我的 64 位 SQL Server?
【发布时间】:2009-12-23 17:18:46
【问题描述】:

我最近在我的 Windows 7 Ultimate x64 家用计算机上安装了 SQL Server 2008 Express。我也有 IIS 7.5 和 PHP 5.3,我试图通过 ADODB 连接到 SQL,但一直收到此错误:

[Microsoft][ODBC Driver Manager] The specified DSN contains an
architecture mismatch between the Driver and Application

在互联网上进行了少量挖掘之后,我认为这是因为 SQL Server ODBC 驱动程序适用于 32 位操作系统,而我的是 64 位操作系统。首先,我是否正确?这就是我遇到麻烦的原因吗?其次,如果是这样,我该如何解决这个问题?是否有任何适用于 64 位操作系统的更新的 ODBC 驱动程序?我看了但找不到任何...

【问题讨论】:

    标签: sql sql-server 64-bit odbc


    【解决方案1】:

    你说得对,它与位有关。

    希望这会有所帮助:

    --来自 MSDN--

    管理连接到 64 位下的 32 位驱动程序的数据源 平台,使用 c:\windows\sysWOW64\odbcad32.exe。管理数据 连接到 64 位驱动程序的源,使用 c:\windows\system32\odbcad32.exe。如果您使用 64 位 odbcad32.exe 要配置或删除连接到 32 位驱动程序的 DSN,您将 收到此消息。

    【讨论】:

    • 这对我也有用...经过 30 多分钟的混乱,因为我复制了错误的路径。如果您正在阅读本文,C:\Windows\SysWOW64\odbcad32.exe 就是您想要的。
    【解决方案2】:

    我在尝试使用 Pervasive ODBC 客户端接口将 64 位 SQL 2012 服务器链接到“Sage Timberline”时遇到了同样的问题。

    我可以设置 32 位 DSN,但在尝试使用 32 位 DSN 创建链接服务器时,SQL Server 不断给我“架构不匹配”错误。

    【讨论】:

    • 斯科特我遇到了这个问题,你能解决这个问题吗?
    【解决方案3】:

    我尝试了C:\Windows\SysWOW64\odbcad32.exe 来添加驱动程序。但是当我在 MAS90 和 SQL Server 2008 R2 之间设置链接服务器时,我仍然收到架构不匹配错误。刚刚与 Sage 的一个人交谈,他说它不适用于 64 位版本的 Sql Server。仅当 Sql Server 版本为 32 位时,链接服务器才能与 MAS90 一起使用。

    【讨论】:

    • “刚和一个人说话”并不是真正的参考
    【解决方案4】:

    我打赌您正在使用用户 DSN。

    根据您的观点,64 位 Windows 环境中存在“功能”或“错误”——

    1. 32 位用户 DSN 显示在 64 位管理员中,并且当 64 位客户端应用程序请求所有可用的 DSN 时 - 即使 32 位 DSN 不能使用由 64 位客户端应用程序和管理员提供。

    2. 64 位用户 DSN 显示在 32 位管理员中,并且当 32 位客户端应用程序请求所有可用的 DSN 时 - 即使 64 位 DSN 不能使用由 32 位客户端应用程序和管理员提供。

    只要 DSN 和尝试使用它的客户端之间存在这种位数不匹配,就会出现您描述的错误消息。

    Microsoft 的建议是使用 _32 或 _64 命名您的用户 DSN,具体取决于它们所基于的驱动程序的位数......或坚持使用系统 DSN。

    您想要的连接有 32 位和 64 位解决方案。您的客户端应用程序(在这种情况下为 IIS 和 PHP)的位数决定了您需要的解决方案的位数。

    【讨论】:

    • 我实际上已经尝试将其设置为系统 DSN。如果你愿意,我基本上在 Server Fault 上重新提出了这个问题,因为它更多的是关于服务器管理而不是编程。它仍然没有解决,所以如果你认为你可以解决它,一定要这样做! serverfault.com/questions/97074
    【解决方案5】:

    如果 64 位操作系统上的 32 位应用程序(您安装在 [program files (X86)] 下的应用程序使用以下 C:\Windows\SysWOW64\odbcad32.exe

    否则 64 位应用程序和 64 位操作系统使用以下 C:\Windows\System32\odbcad32.exe

    否则你会得到类似“架构不匹配”的错误

    希望这会拯救某人的一天:)

    【讨论】:

      【解决方案6】:

      这对我有用: 更新的解决方案,确保 IIS 应用程序未在 x64 Windows 上设置为 32 位。更多信息: http://forum.gpsgate.com/topic.asp?TOPIC_ID=13711 来自:

      http://forum.gpsgate.com/topic.asp?TOPIC_ID=13622

      【讨论】:

        猜你喜欢
        • 2019-12-12
        • 2011-04-01
        • 2011-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-23
        • 2013-05-02
        相关资源
        最近更新 更多