【问题标题】:SQL Server Linked Server to MS Access - DSN Architecture Mismatch ErrorSQL Server 链接服务器到 MS Access - DSN 体系结构不匹配错误
【发布时间】:2017-06-06 05:55:24
【问题描述】:

我正在使用 SQL Server 2016 Express,尝试通过 ODBC 数据源连接到网络上另一台服务器上的 Access 数据库。我查阅了许多教程并尝试了各种不同的方法,但无法使连接正常工作。最终我似乎陷入了这个错误:

[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配(Microsoft SQL Server,错误:7303)

为了排除权限和网络问题,我已将数据库复制到本地计算机以尝试创建测试连接。我已验证 Microsoft Access 的安全设置已关闭(意味着没有用户名/密码可登录)。我确保使用 32 位版本的 ODBC 数据源管理器(Windows\SysWOW64\),在 SQL Server 中尝试了各种设置,甚至尝试通过 T-SQL 代码直接创建链接服务器,例如这个:

EXEC sp_addlinkedserver
     @server = N'TESTLINK',
     @provider = N'MSDASQL',
     @srvproduct = N'',
     @datasrc = N'TEST';

这是我用来尝试创建此连接的当前设置,但我一直收到此错误:

请注意,我还尝试了“新建链接服务器”对话框的“安全”选项卡上的每个设置,但每次都收到错误消息。

如果有人知道我在这里可能缺少什么,请告诉我。

编辑:这里有一个类似的问题,但它是一个旧线程,并且高度评价的答案对我来说是不成功的(我已经尝试过):

The specified DSN contains an architecture mismatch between the Driver and Application. JAVA

解决我的问题的关键是我需要专门下载64位版本的Access ODBC驱动,可以在这里下载:

https://www.microsoft.com/en-US/download/details.aspx?id=13255

【问题讨论】:

  • 如果 SQL Server 进程以 64 位运行,这似乎很可能,那么它可能想要与 64 位 ODBC 驱动程序通信。
  • @GordThompson 是的,这是 64 位 SQL Server。我们需要它是 64 位的。你是说我需要为 SQL Server 安装一些东西,让它能够连接到 32 位 ODBC 驱动程序吗?这是有道理的......我正在查找一些相关信息。
  • 为了清楚起见,我在问题中提到了这一点,但是 ODBC 驱动程序是 32 位的,我使用 32 位 ODBC 数据源管理器(在 @987654331 @ 目录)。您可以在第一个屏幕截图中看到这一点。
  • 该线程已有 7 年历史。 64 位(和 32 位)版本的 Access 数据库引擎组件可用here

标签: sql-server ms-access sql-server-2016-express


【解决方案1】:

如果 SQL Server 进程以 64 位运行(这几天似乎极有可能),那么它需要安装 64 位版本的 Access 数据库引擎组件。它们可供下载here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    相关资源
    最近更新 更多