打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询

  遇到了一个问题,从excel导入数据到sql2005,之前操作过很多次,这次遇到了一些新情况。

  使用的语句如下:

  select * from OpenRowSet
         ('Microsoft.Jet.OLEDB.4.0',
          'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls',
           [Sheet1$]
          )
 结果提示错误:因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。

  查了很多资料一般都是客户端和服务器端都是64位系统的情况。

 我这边的情况,客户端使用的是32位的xp系统,服务器sql2005是64位的系统,和很多查到的情况不一样。

 后来我在服务器上安装了ACE2010的驱动,64位的。

http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d

修改了代码

 select * from OpenRowSet
         ('Microsoft.ACE.OLEDB.12.0',
          'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls',
           [Sheet1$]
          )
但是还是出错,提示信息如下:

无法从链接服务器 "(null)" 的 OLE DB 访问接口"Microsoft.ACE.OLEDB.12.0"获取列信息。

 

后来看到一个文章说执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误。

我尝试在本地的32位系统上的数据库操作,一切正常

然后我又在服务器上上传了excel文件,在服务器上执行语句,一切正常。

然后又在本地执行相同的语句,注意这里的e盘的bb的excel是指的服务器上的e盘,正常。

晕啊晕,这里的地址是指的本地地址,也就是数据库服务器上的磁盘地址,这个以前真没太注意啊。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Win10(64位)未在本地计算机上注册Microsoft.Jet.OLEDB.4.0提供程序
未在本地计算机上注册“Microsoft.Jet.OLEDB.12.0”提供程序。
未在本地计算机上注册“Microsoft.Jet.OLEDB.12.0”提供程序
【VBA技巧】- 从Excel文件或Access数据库中获取指定列数据
Microsoft.ACE.OLEDB.12.0问题解决方法
使用OpenRowSet操作Excel
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服