`
NistCK
  • 浏览: 38561 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

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

阅读更多

    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数据库

    在 SQLSERVER 中,我们需要创建一个链接服务器来访问远程的 Access 数据库。我们可以使用以下语句来创建链接服务器: exec sp_addlinkedserver 'sqltoaccess', 'Access', 'Microsoft.Jet.OLEDB.4.0', 'Z:\Northwind...

    使用MIDAS访问远程Access数据库

    要使用MIDAS访问远程Access数据库,你需要遵循以下步骤: 1. **设置环境**:确保客户端和服务器端都安装了相应的MDAC组件,通常这是Windows操作系统的一部分。对于较旧的系统,可能需要手动下载并安装最新的MDAC...

    Access数据库远程读取乔迁至SQLServer数据库

    ### Access数据库远程读取迁移至SQLServer数据库 随着企业信息化程度的提高,不同类型的数据库管理系统在实际业务场景中被广泛应用。其中,Microsoft Access 和 SQL Server 分别作为轻量级和企业级数据库系统的代表...

    VB 远程访问Access数据库源代码

    当我们谈论“VB远程访问Access数据库”时,指的是使用VB编写的程序或者脚本,通过网络连接到远程服务器上的Access数据库进行数据交互。 首先,让我们深入了解一下如何实现这个功能。在VB中,我们可以使用ADO...

    创建链接服务器(oracle,sql server,access,excel)

    首先,链接服务器的概念是SQL Server的一种分布式查询机制,它为用户提供了一种方式来访问和操作远程数据,而无需实际合并或移动数据。通过创建链接服务器,你可以执行跨服务器的Transact-SQL语句,就像这些服务器上...

    WebService远程访问SQLServer数据库源码

    在本案例中,“WebService远程访问SQLServer数据库源码”是一个实现了利用WebService来远程操作SQL Server数据库的应用。这种方式通常用于跨平台、跨语言的系统集成,使得应用程序能够通过HTTP协议调用远程数据库...

    SQL Server 如何通过链接服务器访问 Oracle

    在设置链接服务器访问Oracle之前,确保你已经安装了以下组件: 1. Oracle客户端软件:这包括Oracle的Net Services和ODAC(Oracle Data Access Components),它们提供了与Oracle服务器通信所需的基础。 2. Microsoft...

    Webaccess平台的SQLserver数据库

    基于Webaccess平台的SQL Server数据库应用主要涉及到如何利用Webaccess作为软件平台,结合SQL Server数据库来处理和存储大量的实时数据。Webaccess是一种监控和数据采集系统,它允许用户通过网页界面来管理和控制...

    ACCESS数据库和SQL_Server数据库的应用比较.pdf

    ACCESS数据库和SQL_Server数据库是目前广泛使用的两种数据库管理系统,它们都由微软公司出品,但各有适用场景与优缺点。以下是针对这两种数据库应用的详细介绍和比较。 ACCESS数据库是由微软公司发布的关联式...

    Android通过WebService访问SQLServer

    本教程主要探讨如何在Android应用中通过WebService访问SQLServer数据库,实现数据的增、删、查操作。以下是相关知识点的详细说明: 1. **Android平台与Web服务的交互**: Android系统提供了多种方式与远程服务器...

    用RDA连接SQL Server CE数据库.pdf

    RDA(Remote Data Access)是一种数据访问技术,它允许PDA上的应用程序通过远程方式访问并操作PC端的SQL Server数据库。使用RDA,可以通过网络将数据从服务器传输到PDA设备上,使得移动用户能够访问和同步服务器上...

    sqlserver2008链接ORACLE服务器驱动.rar

    总结来说,"sqlserver2008链接ORACLE服务器驱动.rar"这个资源提供了实现SQL Server 2008与Oracle数据库连接的关键组件和指导,帮助用户在不同数据库系统间实现数据共享和交互,这对于多数据库环境的企业来说是非常有...

    VB应用程序连接SQL Server数据库方法的探讨.pdf

    DAO模型能够通过ODBC直接连接到其他数据库,对Access数据库的访问进行了优化,操作简便。在VB开发环境中,DAO被封装成了Data控件,开发者通过设置控件的DatabaseName属性和RecordSource属性来连接数据库,并进行...

    VB连远程ACCESS

    ADO通过ODBC(Open Database Connectivity)驱动程序与数据库进行通信,这意味着我们只需要正确配置ODBC数据源,就可以连接到任何支持ODBC的数据库,如远程ACCESS数据库。 要建立远程连接,首先在VB6.0环境中添加...

    SQL Server 远程连接服务器详细配置(sp_addlinkedserver)

    EXEC sp_addlinkedserver '远程服务器IP','SQL Server' --标注存储 EXEC sp_addlinkedserver @server = 'server', --链接服务器的本地名称。也允许使用实例名称,例如MYSERVERSQL1 @srvproduct = 'product_name' --...

    利用C#远程存取Access数据库

    本篇文章将详细探讨如何利用C#实现对远程Access数据库的存取。 首先,要远程访问Access数据库,你需要确保数据库服务器已正确配置并允许外部连接。通常,这涉及到设置ODBC数据源(如果使用JET引擎)或者部署ACE.OLE...

    用Delphi和SQL Server开发Client/Server结构的数据库应用程序.pdf

    "用Delphi和SQL Server开发Client/Server结构的数据库应用程序.pdf" 本文将介绍用Delphi和SQL Server开发Client/Server结构的数据库应用程序的方法。Delphi是一个功能强大的开发工具,它可以与SQL Server集成,...

    在SQL Server下访问Oracle数据库的方法.pdf

    本文档将探讨在Microsoft SQL Server环境下访问Oracle数据库的不同方法和技术,包括使用OLE DB连接、链接服务器和分布式查询等。 首先,OLE DB(Object Linking and Embedding for Databases)是一个数据库访问技术...

    Access数据库原理与应用

    同时,Access支持Web应用程序开发,可以通过SharePoint或其他Web服务器发布数据库,使得远程用户也能访问和操作数据库。 总之,Access数据库原理与应用涵盖了数据库设计、数据管理、用户交互等多个方面。掌握这些...

    VB访问SQL Server数据库技术的探索.pdf

    DAO/Jet是VB中访问Access数据库的接口对象,通过DAO访问SQL Server的过程包括准备SQL语句、通过Jet引擎优化查询、与ODBC驱动管理器通信、驱动管理器调用相应的驱动程序(SQLSRVR.DLL)向SQL Server提交SQL语句并返回...

Global site tag (gtag.js) - Google Analytics