none
着急:SQL Server2008是否可以分布式查询Access数据? RRS feed

答案

全部回复

  • 好像没人关注啊,我在做的一些测试。

    在服务器上,使用opendatasource('Microsoft.ace.OLEDB.12.0',,)访问服务器本地Access数据库ok,但是访问异地Access就报错

    【Msg 7303, Level 16, State 1, Line 1
    无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ace.OLEDB.12.0" 的数据源对象。】

    若是opendatasource('Microsoft.jet.OLEDB.4.0',,)访问本体和异地都不ok,报错:

    【Msg 7308, Level 16, State 1, Line 2
    因为 OLE DB 访问接口 'Microsoft.jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。】

    2012年7月26日 9:07
  • 创建链接服务器也不行吗?
    2012年7月26日 9:26
    版主
  • 不行!

    EXEC sp_addlinkedserver
    @server=N'MYACCESS',
    @srvproduct=N'Access',
    @provider=N'Microsoft.ACE.OLEDB.12.0',
    @datasrc=N'D:\AccessData\test.mdb'
    go
    EXEC sp_addlinkedsrvlogin
    @rmtsrvname=N'MYACCESS',
    @useself=N'True'
    GO

    命令成功

    但是select * from MYACCESS...Tasks 报错

    【无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ace.OLEDB.12.0" 的数据源对象。】

    备注:异地的数据的环境32位Win7,office2010

    2012年7月26日 10:04
  • Access是桌面数据库,只支持本地或者共享目录的访问方式,这个和SQL Server不一样的

    楼主的这个问题在于Access没有提供相应的功能,不是SQL Server的问题,在楼主的问题中,SQL Server仅相当于一个访问Access的应用程序而已

    2012年7月26日 13:08
  • Where's access file? On local disk d:\ of sql server? Does sql service account have read permission on that file?
    2012年7月26日 13:37
  • 您的意思是:Access数据库,不支持异地访问,只可以本地访问,是吗?

    还是需要做一些相关设置,就可以访问呢?

    我的目的是:SQL Server服务器做数据中心,可以访问多种异地数据源。

    谢谢!

    2012年7月27日 3:53
  • 分布式查询应该可以访问局域网中的Access数据库的吧?

    而且LZ建立链接服务器使用的是本地路径

    @datasrc=N'D:\AccessData\test.mdb'


    给我写信: QQ我:点击这里给我发消息

    2012年7月27日 3:55
  • If Access is on another machine, have to use unc name of the file in @datasrc like N'\\host_namee\D$\AccessData\test.mdb'. And have to start sql service with domain account.
    2012年7月27日 4:07
  • access文件没有在SQL server的本地服务器上,而是在异地。
    2012年7月27日 5:15
  • 我已经把@datasrc=N'D:\AccessData\test.mdb'

    修正为@datasrc=N'\\异地服务器\D:\AccessData\test.mdb'

    还是不ok,报错:

    【链接服务器 "EIDE0001" 的 OLE DB 访问接口 "Microsoft.ace.OLEDB.12.0" 报错。身份验证失败。
    Msg 7303, Level 16, State 1, Line 1
    无法初始化链接服务器 "EIDE0001" 的 OLE DB 访问接口 "Microsoft.ace.OLEDB.12.0" 的数据源对象】

    2012年7月27日 5:49
  • 1. have to use share name, d: is not valid share name. Replace with admin share d$ or create one.

    2. sql service account needs permission to read that file, local system can't read remote file.

    2012年7月27日 12:58
  • 的确sql服务必须要使用有远程访问权限的帐户来启动才行

    给我写信: QQ我:点击这里给我发消息

    2012年8月8日 1:47