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
'用户 sa 的密码为 SRVER。可以省略数据库名
conn="Provider=sqloledb; server=localhost; uid=sa; pwd=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) & "<br>"
if err.number<>0 then
response.write "取数据错误:数据库连接出错,或存取数据表错误!"
else
response.write "OK!"
end if
%>
分享到:
相关推荐
在 SQLSERVER 中,我们需要创建一个链接服务器来访问远程的 Access 数据库。我们可以使用以下语句来创建链接服务器: exec sp_addlinkedserver 'sqltoaccess', 'Access', 'Microsoft.Jet.OLEDB.4.0', 'Z:\Northwind...
要使用MIDAS访问远程Access数据库,你需要遵循以下步骤: 1. **设置环境**:确保客户端和服务器端都安装了相应的MDAC组件,通常这是Windows操作系统的一部分。对于较旧的系统,可能需要手动下载并安装最新的MDAC...
### Access数据库远程读取迁移至SQLServer数据库 随着企业信息化程度的提高,不同类型的数据库管理系统在实际业务场景中被广泛应用。其中,Microsoft Access 和 SQL Server 分别作为轻量级和企业级数据库系统的代表...
当我们谈论“VB远程访问Access数据库”时,指的是使用VB编写的程序或者脚本,通过网络连接到远程服务器上的Access数据库进行数据交互。 首先,让我们深入了解一下如何实现这个功能。在VB中,我们可以使用ADO...
首先,链接服务器的概念是SQL Server的一种分布式查询机制,它为用户提供了一种方式来访问和操作远程数据,而无需实际合并或移动数据。通过创建链接服务器,你可以执行跨服务器的Transact-SQL语句,就像这些服务器上...
在本案例中,“WebService远程访问SQLServer数据库源码”是一个实现了利用WebService来远程操作SQL Server数据库的应用。这种方式通常用于跨平台、跨语言的系统集成,使得应用程序能够通过HTTP协议调用远程数据库...
在设置链接服务器访问Oracle之前,确保你已经安装了以下组件: 1. Oracle客户端软件:这包括Oracle的Net Services和ODAC(Oracle Data Access Components),它们提供了与Oracle服务器通信所需的基础。 2. Microsoft...
基于Webaccess平台的SQL Server数据库应用主要涉及到如何利用Webaccess作为软件平台,结合SQL Server数据库来处理和存储大量的实时数据。Webaccess是一种监控和数据采集系统,它允许用户通过网页界面来管理和控制...
ACCESS数据库和SQL_Server数据库是目前广泛使用的两种数据库管理系统,它们都由微软公司出品,但各有适用场景与优缺点。以下是针对这两种数据库应用的详细介绍和比较。 ACCESS数据库是由微软公司发布的关联式...
本教程主要探讨如何在Android应用中通过WebService访问SQLServer数据库,实现数据的增、删、查操作。以下是相关知识点的详细说明: 1. **Android平台与Web服务的交互**: Android系统提供了多种方式与远程服务器...
RDA(Remote Data Access)是一种数据访问技术,它允许PDA上的应用程序通过远程方式访问并操作PC端的SQL Server数据库。使用RDA,可以通过网络将数据从服务器传输到PDA设备上,使得移动用户能够访问和同步服务器上...
总结来说,"sqlserver2008链接ORACLE服务器驱动.rar"这个资源提供了实现SQL Server 2008与Oracle数据库连接的关键组件和指导,帮助用户在不同数据库系统间实现数据共享和交互,这对于多数据库环境的企业来说是非常有...
DAO模型能够通过ODBC直接连接到其他数据库,对Access数据库的访问进行了优化,操作简便。在VB开发环境中,DAO被封装成了Data控件,开发者通过设置控件的DatabaseName属性和RecordSource属性来连接数据库,并进行...
ADO通过ODBC(Open Database Connectivity)驱动程序与数据库进行通信,这意味着我们只需要正确配置ODBC数据源,就可以连接到任何支持ODBC的数据库,如远程ACCESS数据库。 要建立远程连接,首先在VB6.0环境中添加...
EXEC sp_addlinkedserver '远程服务器IP','SQL Server' --标注存储 EXEC sp_addlinkedserver @server = 'server', --链接服务器的本地名称。也允许使用实例名称,例如MYSERVERSQL1 @srvproduct = 'product_name' --...
本篇文章将详细探讨如何利用C#实现对远程Access数据库的存取。 首先,要远程访问Access数据库,你需要确保数据库服务器已正确配置并允许外部连接。通常,这涉及到设置ODBC数据源(如果使用JET引擎)或者部署ACE.OLE...
"用Delphi和SQL Server开发Client/Server结构的数据库应用程序.pdf" 本文将介绍用Delphi和SQL Server开发Client/Server结构的数据库应用程序的方法。Delphi是一个功能强大的开发工具,它可以与SQL Server集成,...
本文档将探讨在Microsoft SQL Server环境下访问Oracle数据库的不同方法和技术,包括使用OLE DB连接、链接服务器和分布式查询等。 首先,OLE DB(Object Linking and Embedding for Databases)是一个数据库访问技术...
同时,Access支持Web应用程序开发,可以通过SharePoint或其他Web服务器发布数据库,使得远程用户也能访问和操作数据库。 总之,Access数据库原理与应用涵盖了数据库设计、数据管理、用户交互等多个方面。掌握这些...
DAO/Jet是VB中访问Access数据库的接口对象,通过DAO访问SQL Server的过程包括准备SQL语句、通过Jet引擎优化查询、与ODBC驱动管理器通信、驱动管理器调用相应的驱动程序(SQLSRVR.DLL)向SQL Server提交SQL语句并返回...