最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-09 15:55:23
文档

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

应用SQLServer链接服务器访问远程Access数据库:Web 开发中,经常要用到 Access 数据库 。但是由于 Access 是一种文件型 数据库 ,所以无法跨 服务器 进行 访问 。经过笔者的探索,发现可以利用 SQL Server 的链接 服务器 ,把地理上分散的 Access 数据库 整合起来,使 Access 数据库 具有跨越
推荐度:
导读应用SQLServer链接服务器访问远程Access数据库:Web 开发中,经常要用到 Access 数据库 。但是由于 Access 是一种文件型 数据库 ,所以无法跨 服务器 进行 访问 。经过笔者的探索,发现可以利用 SQL Server 的链接 服务器 ,把地理上分散的 Access 数据库 整合起来,使 Access 数据库 具有跨越

Web 开发中,经常要用到 Access 数据库 。但是由于 Access 是一种文件型 数据库 ,所以无法跨 服务器 进行 访问 。经过笔者的探索,发现可以利用 SQL Server 的链接 服务器 ,把地理上分散的 Access 数据库 整合起来,使 Access 数据库 具有跨越 Web 服务器

Web 开发中,经常要用到 Access 数据库。但是由于 Access 是一种文件型数据库,所以无法跨服务器进行访问。经过笔者的探索,发现可以利用 SQL Server 的链接服务器,把地理上分散的 Access 数据库整合起来,使 Access 数据库具有跨越 Web 服务器群的能力。这样做,还可以使 Access 数据库与 SQL Server,甚至 Oracle 等网络数据库连接起来,实现异构数据库的互连,从而执行分布式的查询、更新、命令和事务。

一、创建链接服务器,连接本地 Access 数据库

创建链接服务器可以用“企业管理器”,也可以执行系统存储过程 sp_addlinkedserver 来完成。用系统存储过程相对快捷一些,格式为:
sp_addlinkedserver '链接服务器名', '产品名', 'Microsoft.Jet.OLEDB.4.0', 'Access数据库路径及文件名'

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

例如,本例创建一个名为 mytest 的链接服务器,对 E:/我的文档/ 文件夹下名为 DOS.mdb 的 Access 数据库进行操作,则在“SQL查询分析器”中执行:

sp_addlinkedserver 'mytest', 'Access 2000', 'Microsoft.Jet.OLEDB.4.0', 'E:/我的文档/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 创建从本地登录到 Access 登录的登录映射:

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

链接服务器和链接服务器登录映射建立完毕,可以在企业管理器里进行查看。

三、链接服务器的测试

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

Select * from mytest...articles

或:Select * from OpenQuery(mytest, 'Select * from .articles')

四、用代码访问链接服务器的 Access 数据库

只有实现用代码访问链接服务器的 Access 数据库,才使得链接服务器发挥了最大的灵活性和实用性。可以使用三中的测试链接服务器的代码建立存储过程,供 Asp 代码调用,也可以直接在 Asp 代码中调用链接服务器,以下是我通过测试的例子:

<%

Dim conn, sSQL, rs

conn="Provider=sqloledb; server=localhost; uid=sa; pwd=SQLSERVER;" '用户 sa 的密码为 SQLSERVER。可以省略数据库名

on error resume next

sSQL = "select * from mytest...articles"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sSQL, conn, 1, 1

rs.movefirst
response.write rs(0) & "
"

if err.number<>0 then
response.write "取数据错误:数据库连接出错,或存取数据表错误!"
else
response.write "OK!"
end if

%>

张庆 2002.10.1 3:58

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

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

应用SQLServer链接服务器访问远程Access数据库:Web 开发中,经常要用到 Access 数据库 。但是由于 Access 是一种文件型 数据库 ,所以无法跨 服务器 进行 访问 。经过笔者的探索,发现可以利用 SQL Server 的链接 服务器 ,把地理上分散的 Access 数据库 整合起来,使 Access 数据库 具有跨越
推荐度:
标签: 远程 链接 访问
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top