应用SQLServer链接服务器访问远程Access数据库

应用SQLServer链接服务器访问远程Access数据库,第1张

应用SQLServer链接服务器访问远程Access数据库,第2张

Web开发中经常使用Access数据库。但是,因为Access是一个文件数据库,所以不能跨服务器访问它。经过作者的探索,发现利用SQL Server的链接服务器可以将地理上分散的Access数据库整合起来,使Access数据库具有跨Web服务器群的能力。这样,还可以将Access数据库与SQL Server,甚至Oracle等网络数据库连接起来,实现异构数据库的互联,从而执行分布式的查询、更新、命令和事务。

1.创建链接服务器以连接到本地Access数据库。

可以使用企业管理器或执行系统存储过程sp_addlinkedserver来创建链接服务器。使用系统存储过程比较快,格式为:
sp_addlinkedserver '链接服务器名','产品名',' Microsoft.jet.oledb.4.0 ',' access数据库路径和文件名'

指定Microsoft。Jet.OLEDB.4.0作为提供者名,Access数据库文件的完整路径名作为数据源。的。mdb数据库文件必须驻留在本地服务器上,并且路径必须是服务器上的有效路径。

例如,本示例创建了一个名为mytest的链接服务器,它运行E:\ My Documents \文件夹下名为DOS.mdb的Access数据库,然后在SQL查询分析器中执行该数据库:

SP _ AddLinkedServer' myTest ',' Access 2000 ',' Microsoft .' Jet.oledb.4.0 ',' E: \ My Documents \DOS.mdb '

其次,创建一个链接服务器登录映射

这也可以通过企业管理器或存储过程来完成。存储过程的格式是:

Sp_addlinkedsrvlogin '链接服务器',false,' SQLServer登录名',' admin ',NULL

为了访问非机密的Access数据库,尝试访问Access数据库的SQL Server登录应该有一个没有为用户Admin定义密码的登录映射。以下示例使本地用户sa能够访问名为mytest的链接服务器:

sp_addlinkedsrvlogin 'mytest ',false,' sa ',' admin ',NULL

若要访问机密Access数据库,需要使用注册表编辑器来配置注册表,以便可以使用正确的Access工作组信息文件。使用注册表编辑器将Access使用的工作组信息文件的完整路径名添加到该注册表项中:

HKEY _ LOCAL _ MACHINE software \ Microsoft \ Jet \ 4.0 \ Engines systemdb

配置注册表项后,使用sp_addlinkedsrvlogin创建从本地登录到访问登录的登录映射:

sp_addlinkedsrvlogin 'mytest ',false,' sa ','[AccessUser]','[AccessPwd]'

链接服务器和链接服务器登录映射已建立,可以在企业管理器中查看。

三。链接服务器的测试

您可以在SQL查询分析器中测试创建的链接服务器。因为Access数据库没有目录和架构名称,所以基于Access的链接服务器中的表可以在分布式查询中使用由四部分组成的名称[linked_server]来引用...[表格名称]。以下示例从名为mytest的链接服务器中检索articles表的所有行:

从我的测试中选择*...文章

或者:select * from openquery (mytest,' select * from.articles ')

4.用代码访问链接服务器的Access数据库

只有用代码访问链接服务器的Access数据库,链接服务器才能发挥其灵活性和实用性。可以用三中的测试链接服务器的代码构建一个Asp代码调用的存储过程,也可以直接用Asp代码调用链接服务器。下面是我通过测试的一个例子:

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 应用SQLServer链接服务器访问远程Access数据库

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情