SQL2008 如何实现与ACCESS 的链接服务器

csvmm 2012-12-19 09:58:36
环境:
操作系统:Windows2008
数据库:SQL2008 R2
其他软件:Office2010

要实现链接服务器,链接 Access数据库,发现没有 JET4.0驱动,

在网上下载安装了AccessDatabaseEngine.exe,也不行!

在我本机上是有这个驱动,不同的是本机用的操作系统是WIN7,而且安装了VS.NET开发环境

...全文
886 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqs198992 2013-06-21
  • 打赏
  • 举报
回复
加密的access怎么链接啊
黄_瓜 2012-12-19
  • 打赏
  • 举报
回复
引用 10 楼 csvmm 的回复:
就是在SQLServer可视化创建链接服务器时 没有这个驱动,我先安装64位的看看
使用语句创建,看报什么错。
csvmm 2012-12-19
  • 打赏
  • 举报
回复
就是在SQLServer可视化创建链接服务器时 没有这个驱动,我先安装64位的看看
黄_瓜 2012-12-19
  • 打赏
  • 举报
回复
引用 8 楼 csvmm 的回复:
'Microsoft.ACE.OLEDB.12.0' 这个驱动没出来,是不是因为这个原因 操作系统是 64位的,Office2010 是32位的
这个不太确定,我的都是32位的。 你说的没出来是什么意思?在“访问接口”里面看不到? 那你安装64的office 和64的驱动 然后再看下。
csvmm 2012-12-19
  • 打赏
  • 举报
回复
'Microsoft.ACE.OLEDB.12.0' 这个驱动没出来,是不是因为这个原因 操作系统是 64位的,Office2010 是32位的
黄_瓜 2012-12-19
  • 打赏
  • 举报
回复
引用 6 楼 csvmm 的回复:
引用 3 楼 Beirut 的回复:你的环境需要使用ace 12.0 的 驱动 关键要看你的 AccessDatabaseEngine.exe 版本是否正确 临时性访问可以使用 openrowset 之类的 ace 12.0 的 驱动 如何安装,这个驱动也没有
http://www.microsoft.com/en-us/download/details.aspx?id=13255 我的环境和你的一样,下面的测试通过,access数据库是2010的

--建立连接服务器
EXEC sp_addlinkedserver'my_test_link_server','Access2010','Microsoft.ACE.OLEDB.12.0','E:\test.accdb'
GO
--创建链接服务器登录映射
EXEC sp_addlinkedsrvlogin'my_test_link_server',false,'sa','admin',NULL
GO
--查询
SELECT *  FROM [my_test_link_server]...[tb]
GO
csvmm 2012-12-19
  • 打赏
  • 举报
回复
引用 3 楼 Beirut 的回复:
你的环境需要使用ace 12.0 的 驱动 关键要看你的 AccessDatabaseEngine.exe 版本是否正确 临时性访问可以使用 openrowset 之类的
ace 12.0 的 驱动 如何安装,这个驱动也没有
csvmm 2012-12-19
  • 打赏
  • 举报
回复
由于要做 计划任务,所以做链接服务器能方便一些
csvmm 2012-12-19
  • 打赏
  • 举报
回复
现在就是缺少 Microsoft.Jet.OLEDB.4.0 ,AccessDatabaseEngine.exe 2007和2010的我都安装了,就是出不来驱动,索性把Office2010也安装上了,还是不行
黄_瓜 2012-12-19
  • 打赏
  • 举报
回复
你的环境需要使用ace 12.0 的 驱动 关键要看你的 AccessDatabaseEngine.exe 版本是否正确 临时性访问可以使用 openrowset 之类的
快溜 2012-12-19
  • 打赏
  • 举报
回复
装一个Microsoft.Jet.OLEDB.4.0的驱动
  • 打赏
  • 举报
回复

由于Access数据库是一种文件型数据库,所以无法跨服务器进行访问。下面我们来介绍一下如何利用SQLServer的链接服务器,把地理上分散的Access数据库整合起来,使Access数据库具有跨越Web服务器群的能力。此方法还可以使Access数据库与SQLServer数据库,甚至Oracle等网络数据库连接起来,实现异构数据库的互连,最终执行分布式的查询、更新、命令和事务。
  
  1.创建链接服务器,连接本地Access数据库
  
  创建链接服务器可以用“企业管理器”,也可以执行系统存储过程sp_addlinkedserver来完成。用系统存储过程相对快捷一些,格式为:
  
  sp_addlinkedserver'链接服务器名','产品名','Microsoft.Jet.OLEDB.4.0','Access数据库路径及文件名'。
  
  指定Microsoft.Jet.OLEDB.4.0作为provider_name,指定Access数据库文件的完整路径名作为data_source。.mdb数据库文件必须驻留在本地服务器上,路径必须是服务器上的有效路径。
  
  例如,本例创建一个名为Anna的链接服务器,对E:我的文档文件夹下名为DOS.mdb的Access数据库进行操作,则在“SQL查询分析器”中执行:
  
  sp_addlinkedserver'Anna','Access2000','Microsoft.Jet.OLEDB.4.0','E:我的文档DOS.mdb'
  
  2.创建链接服务器登录映射
  
  同样可以用“企业管理器”或存储过程来完成。存储过程的格式为:
  
  sp_addlinkedsrvlogin'链接服务器',false,'SQLServer登录名','admin',NULL
  
  为访问非保密的Access数据库,试图访问Access数据库的SQLServer登录应该有一个为用户Admin定义的没有密码的登录映射,下例使得本地用户sa可以访问名为mytest的链接服务器:
  
  sp_addlinkedsrvlogin'mytest',false,'sa','admin',NULL
  
  要访问保密的Access数据库,需使用注册表编辑器配置注册表,以便使用Access的正确的工作组信息文件。使用注册表编辑器向该注册表项中添加Access使用的工作组信息文件的完整路径名称:
  
  HKEY_LOCAL_MACHINESOFTWAREMicrosoftJet4.0EnginesSystemDB
  
  配置了注册表项后,请使用sp_addlinkedsrvlogin创建从本地登录到Access登录的登录映射:
  
  sp_addlinkedsrvlogin'mytest',false,'sa','[AccessUser]','[AccessPwd]'
  
  链接服务器和链接服务器登录映射建立完毕,可以在企业管理器里进行查看。
  
  3.链接服务器的测试
  
  可以在“SQL查询分析器”里对创建的链接服务器进行测试。由于Access数据库没有目录和架构名称,因此,基于Access的链接服务器中的表可以在分布式查询中使用[linked_server]...[table_name]的四部分名称进行引用。下例从名为mytest的链接服务器中检索articles表的所有行:
  
  Select*frommytest...articles
  
  或者:Select*fromOpenQuery(mytest,'Select*from.articles')
  
  4.用代码访问链接服务器的Access数据库
  
  只有实现用代码访问链接服务器的Access数据库,才使得链接服务器发挥了最大的灵活性和实用性。可以使用三中的测试链接服务器的代码建立存储过程,供Asp代码调用,也可以直接在Asp代码中调用链接服务器。
csvmm 2012-12-19
  • 打赏
  • 举报
回复
一句话点醒梦中人,64位的我原来安装不上,是因为已经安装了32位的Office,卸载Office,安装AccessDatabaseEngine.exe 64位的,搞定,使用'Microsoft.ACE.OLEDB.12.0' 驱动
Mr_Nice 2012-12-19
  • 打赏
  • 举报
回复
同理参考http://blog.csdn.net/orchidcat/article/details/7480680 AccessDatabaseEngine.exe 有64位版本。lz可以查找一下。
csvmm 2012-12-19
  • 打赏
  • 举报
回复
使用语句创建不报错,查询的时候会提示 无驱动

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧