积极答复者
链接服务器问题

问题
-
本人在VMWare 6.0上装了两台Windows server 2003服务器,一台安装SQL Server 2005,命名为SQL1,一台安装了Access,命名为North,两台服务器位于一个虚拟局域网lan1中。拷贝access文件“c:\Practice Files\Northwind.mdb"
然后按一下步骤创建链接服务器,并执行查询:
EXECUTE sp_addlinkedserver 'North','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','C:\Practice Files\Northwind.mdb'EXECUTE sp_addlinkedsrvlogin 'North',TRUE,NULL
SELECT * FROM North...Customers;
结果得到报错信息:
链接服务器"North"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "'C:\Practice Files\Northwind.mdb'
不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "North" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
我又尝试着在数据库源文件路径前加上了Access数据库的服务器名称North或IP地址192.168.1.2
结果得到报错信息:磁盘错误,或网络错误
请问各位达人,问题出在哪里呢?
答案
-
EXECUTE sp_addlinkedserver 'North','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','C:\Practice Files\Northwind.mdb'
'C:\Practice Files\Northwind.mdb 必须是位于SQl server 数据库这台服务器上 而不是Acces的那台 Access 不支持这种通过ip方式访问的
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://blog.tanging.net- 已标记为答案 salihai8136 2009年10月19日 3:29
全部回复
-
EXECUTE sp_addlinkedserver 'North','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','C:\Practice Files\Northwind.mdb'
'C:\Practice Files\Northwind.mdb 必须是位于SQl server 数据库这台服务器上 而不是Acces的那台 Access 不支持这种通过ip方式访问的
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://blog.tanging.net- 已标记为答案 salihai8136 2009年10月19日 3:29
-
我简单在本地建立了一个共享目录,里面有个Access文件,然后用UNC的方式访问是可以读到Access里面表内容的,只是速度上有点..
下面是我的测试代码:
--创建链接服务器 USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'TESTACCESS', @srvproduct=N'testaccess', @provider=N'Microsoft.Jet.OLEDB.4.0', @datasrc=N'\\192.168.0.60\TestAccess\dnary.mdb' GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'collation compatible', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'data access', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'rpc', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'rpc out', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'connect timeout', @optvalue=N'0' GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'collation name', @optvalue=null GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'query timeout', @optvalue=N'0' GO EXEC master.dbo.sp_serveroption @server=N'TESTACCESS', @optname=N'use remote collation', @optvalue=N'true' GO USE [master] GO EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TESTACCESS', @locallogin = NULL , @useself = N'False' GO --测试查询Access数据库IP方式链接的表数据 select * from TESTACCESS...Syntaxes --查询结果能出来,不过速度上不是很理想,需要4s /* ID Name ----------- -------------------- 1 Boolean 2 Integer 3 Enumerator 4 InetAddr 5 String 6 OctetString 7 UTCTime 8 ProviderSpecific 9 UnsignedInteger (9 行受影响) */
-
更多远程访问Access数据库的方法,请参考下面网址:
http://www.feeten.cn/html/database/04/200901041526319011181.html -
共享Access数据库没多大实际意义的
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://blog.tanging.net -