如何使用ODBC连接到我的64位SQL Server?

时间:2009-12-23 17:18:46

标签: sql sql-server 64-bit odbc

我最近在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位操作系统。首先,我是否正确?这是我遇到麻烦的原因吗?其次,如果是这样,我该如何解决这个问题呢?是否有任何更新的ODBC驱动程序可以与64位操作系统一起使用?我看了但是找不到任何......

6 个答案:

答案 0 :(得分:27)

你是对的,因为它与比特有关。

希望这会有所帮助:

- 来自MSDN -

  

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

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

  1. 32位用户DSN出现在64位管理员中,当64位客户端应用程序要求所有可用的DSN时 - 即使32位DSN无法使用由64位客户端应用程序和管理员。

  2. 64位用户DSN出现在32位管理员中,当32位客户端应用程序要求所有可用的DSN时 - 即使64位DSN无法使用由32位客户端应用程序和管理员。

  3. 如果DSN与尝试使用它的客户端之间出现如此严重的不匹配,则会出现您描述的错误消息。

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

    您可以使用32位和64位解决方案进行连接。客户端应用程序的位数 - IIS&在这种情况下,PHP决定了你需要的解决方案的位数。

答案 4 :(得分:1)

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

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

否则您将收到类似“建筑不匹配”的错误

希望这可以节省某人的一天:)

答案 5 :(得分:0)

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

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