繁体   English   中英

SQL 链接服务器到访问数据库

[英]SQL linked server to Access Database

我正在尝试在 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)


节目地点:

at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry) at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(String cmd, Boolean retry) at Microsoft.SqlServer.Management.Smo. Microsoft.SqlServer.Management.SqlManagerUI.LinkedServerProperties.DoPreProcessExecution 上的 LinkedServer.TestConnection()(RunType runType,ExecutionMode& executionResult)

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM