如何通过OPENROWSET函数向SQL Server导入带工作组(mdw)保护的Access数据库数据(转)...
注:找这个解决方法很辛苦,有些笨拙,但还好,可以解决问题。适用于SQL Server 2000
原文出自:如何在链接服务器中使用 SQL Server 7.0 分布式查询来访问受保护的 Access 数据库(http://support.microsoft.com/?kbid=246255)
Microsoft SQL Server 7.0 版提供了通过使用 OLE DB 提供程序对不同数据库执行查询的功能。可以使用以下方式查询数据库:
- OpenQuery 或 OpenRowset Transact-SQL 函数。
- 或 -
- 具有四部分名称(包括链接服务器名称)的查询。
要将链接服务器设置为访问受保护的 Microsoft Access 数据库,请使用下列步骤:
- 使用注册表编辑器将注册表配置为使用正确的 Microsoft Access 工作组信息文件(.mdw 文件),然后向以下注册表项中添加工作组信息文件的完整路径名:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB
接下来,将其值设置为该文件的路径和名称,例如:
C:\...\MySystem.mdw- 要打开注册表编辑器,请定位到“开始”按钮,然后单击“运行”。在“运行”对话框中,键入 Regedit,然后按“确定”。
- 在注册表编辑器中,定位到以下项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\
- 单击右键,然后依次选择“新建”、“字符串值”。
- 键入 SystemDb,然后按 Enter。
- 双击左窗格中的“SystemDb”项。
- 在“数值数据”文本框中,键入 .mdw 文件的完整路径。
- 关闭注册表编辑器。
- 执行 sp_addlinkedserver 存储过程创建链接服务器。指定 Microsoft.Jet.OLEDB.4.0 作为 provider_name,并指定 Microsoft Access .mdb 数据库文件的完整路径名作为 data_source。data_source 将在服务器而不是客户端上进行计算,因此该路径在服务器上必须有效。
- 执行 sp_addlinkedsrvlogin 存储过程创建从本地登录到 Microsoft Access 登录的登录映射。
查询受保护的 Microsoft Access 数据库的步骤
- 修改步骤 1(请参见“更多信息”部分)中显示的注册表项并添加 .mdw 文件的位置。
- 启动 Microsoft Visual Basic 6.0 并选择一个标准 EXE 项目。默认情况下会创建 Form1。
- 在“项目”菜单上,选择“引用”,然后将其中一个引用设置为“Microsoft ActiveX Data Objects 2.1 库”(或更高版本)。
- 在 Form1 上放置两个命令按钮和一个 DataGrid 控件(分别名为 Command1、Command2 和 DataGrid1)。
- 将以下代码粘贴到 Form1 的“声明”部分中:
注意:在运行此代码之前,必须将 User ID=<User ID> 和 password=<Strong Password> 更改为正确的值。请确保该用户 ID 具有在数据库中执行此操作所需的适当权限。
Dim adorst As New ADODB.Recordset Dim adoconn As New ADODB.ConnectionPrivate Sub Command1_Click()Dim strConn As Stringadoconn.Open "Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=master;User Id=<User ID>;Password=<Strong Password>;"adoconn.Execute "EXEC sp_addlinkedserver 'SecuredJetLS', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'c:\.....\MyDatabase.mdb'"adoconn.Execute "EXEC sp_addlinkedsrvlogin 'SecuredJetLS', FALSE, NULL, 'UserName', 'Password'"adoconn.CloseMsgBox "Successful Setup"End SubPrivate Sub Command2_Click()Dim SQL As String' Using OpenQuery syntax. SQL = " Select a.* from OPENQUERY(SecuredJetLS, 'Select * from MyTable') a"' Using OpenRowset syntax.' SQL = "SELECT * From OpenRowset('Microsoft.Jet.OLEDB.4.0','c:\....\MyDatabase.mdb'; 'UserName';'Password', MyTable)"' Using four-part name syntax.' SQL = "Select * from SecuredJetLS...MyTable"adoconn.CursorLocation = adUseClientadoconn.Open "Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=master;User Id=<User ID>;Password=<Strong Password>;"adorst.Open SQL, adoconn, adOpenStatic, adLockReadOnlySet DataGrid1.DataSource = adorstEnd SubPrivate Sub Form_Load()Command1.Caption = "Setup Linked Server"Command2.Caption = "Query Linked Server" End SubPrivate Sub Form_Unload(Cancel As Integer)adorst.CloseSet adorst = Nothingadoconn.CloseSet adoconn = Nothing End Sub
- 运行该项目。
- 单击“设置链接服务器”。如果将连接字符串中的 sp_addlinkedserver 和sp_addlinkedsrvlogin 修改为正确的参数,则可以成功创建链接服务器。
- 单击“查询链接服务器”。如果将连接字符串和查询文本修改为正确的参数,将使用您的数据填充 DataGrid 控件。
如何通过OPENROWSET函数向SQL Server导入带工作组(mdw)保护的Access数据库数据(转)...相关推荐
- SQL server 导入excel表格
导入教程: 打开SQL Server Management Studio,按图中的路径进入导入数据界面. 导入的时候需要将EXCEL的文件准备好,不能打开.点击下一步. 数据源:选择"Mic ...
- 将数据从 SQL Server 导入 Azure Storage Table
点击上方蓝字关注"汪宇杰博客" 导语 最近有个需求要将数据存储从 SQL Server 数据库切换到 Azure Storage 中的 Table.然而不管是 SSMS 还是 Az ...
- 学习SQL:使用日期和时间函数创建SQL Server报表
In the previous two articles of this series, we've discussed how to create a report and how to use b ...
- sql server 导入excel数据表
sql server 导入excel数据表 之前谈到过在sql server中对用户的购买记录做过关联分析,数据来源是来自sql server数据库,但有的时候,数据源来自于其他文件,比如excel文 ...
- 服务器腾讯通文件数据源导入,连接到 Excel 数据源(SQL Server 导入和导出向导)...
连接到 Excel 数据源(SQL Server 导入和导出向导) 04/02/2018 本文内容 适用于: SQL Server(所有支持的版本) Azure 数据工厂中的 SSIS Integra ...
- access文件链接mysql,连接到 Access 数据源(SQL Server 导入和导出向导)
2017/06/20 适用对象: SQL Server,包含 Linux 版 Azure SQL 数据库 Azure Synapse Analytics (SQL DW) 并行数据仓库 本主题介绍如何 ...
- 关于SQL server导入.mdf文件显示附加数据库时出错。有关详细信息,请单击“消息”列中的超链接
关于SQL server导入.mdf文件显示附加数据库时出错.有关详细信息,请单击"消息"列中的超链接 问题原因 看了一下,应该是从别人那边拷过来的数据库文件没有本地操作系统的权限 ...
- Microsoft SQL Server 2005 提供了一些工具来监控数据库
--WL 09-07-03 /*Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务 ...
- SQL Server 2008 - 第2章 创建、管理 数据库
第2章 创建数据库 数据库是用来存储数据的空间,它作为存储结构的最高层次是其他一切数据库操作的基础.用户可以通过创建数据库来存储不同类别或者形式的数据. 因此,在本章用户将详细地学习针对数据库的基本 ...
最新文章
- UAC 实现原理及绕过方法
- PHPUnit 3.4.10 在windows上配置
- how is opportunity detail page display first item by default
- java 字段构造函数_依赖注入–字段vs构造函数vs方法
- 上周热点回顾(7.9-7.15)
- scrapy-redis源码解析
- 登录cookie html,cookie注册
- 如何将spyder打包成exe_exe程序打包成安装文件,自己的程序制作成一键安装程序...
- 【PAT Advanced Level】1011. World Cup Betting (20)
- vsftp不同帐号的目录和权限
- aws cloud map_Amazon EC2 – AWS Elastic Compute Cloud
- 用ultraiso安装linux系统教程,使用UltraISO刻录光盘教程
- msm8953 uart配置
- 腾讯地图位置服务器,腾讯地图推出地形图服务
- 对于时间管理初识--时间管理入门
- 微服务Feign调用后开启Schedule报错No thread-bound request found: Are you referring to request attributes outsid
- 非常好的产品研发管理文章,后面问题回答的很精彩(转)
- luooj P1655手套
- SQL grouping
- javaFx屏幕截图工具