none
sql访问Microsoft.Jet.OLEDB.4.0数据源,执行出错 RRS feed

  • 问题

  • 请教一个问题,我在sql访问Microsoft.Jet.OLEDB.4.0数据源,执行出错,不知如何解决。感谢!!

    环境:
    win xp
    sql server express
    sql server management studio express

    在sql server management studio express中执行以下sql出错:
    (excel 数据导入到sql server)
    SELECT *
    INTO _PCX_PostCode
    FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
          'Data Source="D:\My Documents\PCXSiteTestAll\AjaxTest\pc-book_20080131.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'
           )...pcbook20080131

    OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "找不到可安装的 ISAM。".
    消息 7303,级别 16,状态 1,第 1 行
    Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

    *excel 文件:pc-book_20080131.xls ,只有一个表:pcbook20080131,看不出什么问题
    改成只是select查询也一样

    改成从access 导入也不行:
    SELECT *
    INTO _PCX_PostCode
    FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
          'Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\My Documents\PCXSiteTestAll\AjaxTest\pc-book_20080131.mdb";Persist Security Info=False'
           )...pcbook20080131 AS derivedtbl_1

    OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "不能使用 '';文件已在使用中。".
    消息 7303,级别 16,状态 1,第 1 行
    Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".



    2008年8月7日 4:11

答案

  • 写法有点问题,最后部分

     

     

    SELECT *
    FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\aa.xls','select * from [sheet1$]')


    SELECT   *
    FROM   OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',  
                'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]


     

    2008年8月7日 4:57
  • --excel語法
    select a,b,c
    from openrowset('Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;User id=admin;Password=;IMEX=1;
    DATABASE=C:\temp.xls', temp$)

    SELECT * FROM OpenDataSource
    ( 'Microsoft.Jet.OLEDB.4.0','Data Source="C:\Item.xls";User ID=admin;Password=;Extended properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...[Items$]


    --Access語法

    SELECT CustomerID, CompanyName FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb'; 'admin';'',Customers)


    2008年8月7日 5:09
    版主

全部回复

  • 写法有点问题,最后部分

     

     

    SELECT *
    FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\aa.xls','select * from [sheet1$]')


    SELECT   *
    FROM   OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',  
                'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]


     

    2008年8月7日 4:57
  •  

    调用时,必须先关闭你的excel
    2008年8月7日 4:59
  • --excel語法
    select a,b,c
    from openrowset('Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;User id=admin;Password=;IMEX=1;
    DATABASE=C:\temp.xls', temp$)

    SELECT * FROM OpenDataSource
    ( 'Microsoft.Jet.OLEDB.4.0','Data Source="C:\Item.xls";User ID=admin;Password=;Extended properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...[Items$]


    --Access語法

    SELECT CustomerID, CompanyName FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb'; 'admin';'',Customers)


    2008年8月7日 5:09
    版主
  • 已经解决。
    感谢各楼提供的解答!
    2008年8月7日 5:47