zoukankan      html  css  js  c++  java
  • 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盘,正常。

    转自:http://www.cnblogs.com/tippoint/archive/2012/05/09/2491496.html 

    个人学习收藏

    专注iOS、Android、Java、Golang开发等涉及开发管理相关。 技术博客:http://xiaopin.cnblogs.com
  • 相关阅读:
    蚂蚁和木杆问题
    计算二进制中1的个数(转)
    strlen源码剖析(转)
    bashrc
    smb.conf配置文件(Centos)
    配置VNC+PuTTY+SSH Tunnel访问Linux
    标题: BASH最常见的激活模式
    KMP算法
    字符串中单词逆序
    Java中堆内存和栈内存详解
  • 原文地址:https://www.cnblogs.com/xiaopin/p/2847765.html
Copyright © 2011-2022 走看看