【问题标题】:SQL linked server to Access DatabaseSQL 链接服务器到访问数据库
【发布时间】:2021-03-25 15:00:48
【问题描述】:

我正在尝试在 SQL (SQL 2016) 中为访问数据库 (2013) 创建一个链接服务器。我不想在访问中做任何事情 - 只是简单地从 SQL Studio Management 中查询一个表。我试图创建一个 ODBC 连接 - 但我只有 32 位的选项 - 而不是 64。但是如果我创建一个 32 位(Microsoft Access Driver (*.mdb),然后使用 Microsoft OLE DB Provider for ODBC Driver 创建一个链接服务器- 数据源我使用的是系统 DSN 名称我收到此消息:

已创建链接服务器,但连接测试失败。是否要保留链接服务器?

====================================

执行 Transact-SQL 语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)


节目地点:

在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry) 在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(字符串 cmd,布尔重试) 在 Microsoft.SqlServer.Management.Smo.LinkedServer.TestConnection() 在 Microsoft.SqlServer.Management.SqlManagerUI.LinkedServerProperties.DoPreProcessExecution(RunType runType, ExecutionMode& executionResult)

我确实有一些其他的链接服务器 - 但连接到 Oracle DB。我错过了什么吗?

【问题讨论】:

标签: sql ms-access odbc


【解决方案1】:

好吧,如果您的 SQL 服务器以 x64 位运行,那么您必须安装并使用 Access 数据引擎 (ACE) 的 x64 位副本。

您不能将 MS-access x32 与 x64 位版本的 SQL 服务器一起使用。

虽然 x32 或 x64 位客户端可以轻松连接到 SQL 服务器?之所以可行,是因为这是一个套接字连接。

但是对于 Access,它不是从 sql server 到 ACE 数据引擎的套接字连接。没有您连接到的“服务”。所以这是一个进程内的外部 .dll,SQL Server 直接使用和使用它来打开 accDB 文件。

因此,消耗 ACE 数据引擎的进程的位大小必须匹配。您可以在该服务器上安装 ACE x64 位数据引擎,然后这可以工作。但是 SQL server x64 不能使用任何类型的外部 x32 位 dll - 包括 ACE 数据引擎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    相关资源
    最近更新 更多