环境:winser2003+sql2000+sp4命令:select * From OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'dBase IV;HDR=NO;IMEX=2;DATABASE=E:\Etcom_Bill\','select * from dx_200901_02.dbf') 结果提示:
服务器: 消息 7399,级别 16,状态 1,行 1 OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。 [OLE/DB provider returned message: Microsoft Jet 数据库引擎找不到对象'dx_200901_02.dbf'。请确定对象是否存在,并正确地写出它的名称和路径。] OLE DB 错误跟踪[OLE/DB Provider 'MICROSOFT.JET.OLEDB.4.0' IColumnsInfo::GetColumnsInfo returned 0x80004005: ]。 我也仔细检查了文件路径,没有问题
麻烦诸位帮忙看看,这是什么原因?如果 我换台机器,同样的环境,运行这个没有问题。

解决方案 »

  1.   

    select * From 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'dBase IV;HDR=NO;IMEX=2;DATABASE=E:\Etcom_Bill\','select * from 指服务器名.数据库名.所有者.对象名.dx_200901_02.dbf') 
      

  2.   

    或者说你没注册OLEDB4.0的DLL 找个装了OFFICE的找到个OLEDB4.0.DLL的两个文件注册下就可以了,或者不怕麻烦就装个OFFICE就应该解决了
      

  3.   

    --/* dBase IV文件 
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0' 
    ,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]') 
    --*/ --/* dBase III文件 
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0' 
    ,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]') 
    --*/ --/* FoxPro 数据库 
    select * from openrowset('MSDASQL', 
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\', 
    'select * from [aa.DBF]') 
    --*/ /**************导入DBF文件****************/ 
    select * from openrowset('MSDASQL', 
    'Driver=Microsoft Visual FoxPro Driver; 
    SourceDB=e:\VFP98\data; 
    SourceType=DBF', 
    'select * from customer where country != "USA" order by country') 
    go 
    /***************** 导出到DBF ***************/ 
    如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句 insert into openrowset('MSDASQL', 
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\', 
    'select * from [aa.DBF]') 
    select * from 表 说明: 
    SourceDB=c:\  指定foxpro表所在的文件夹 
    aa.DBF        指定foxpro表的文件名. /*************导出到Access********************/ 
    insert into openrowset('Microsoft.Jet.OLEDB.4.0', 
      'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表 /*************导入Access********************/ 
    insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', 
      'x:\A.mdb';'admin';'',A表) 文件名为参数 
    declare @fname varchar(20) 
    set @fname = 'd:\test.mdb' 
    exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'', 
       '''+@fname+''';''admin'';'''', topics) as a ') SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
     'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User 
    ID=Admin;Password=;')...产品 参考下
      

  4.   

    难道是你没安装office
    或者没有注册OLEDB4.0.DLL文件
      

  5.   

    Office 刚刚重新安装过……   不过一堆的DBF文件中,有一个DBF文件可以用这个语句查询到,其他的全部不行?   各位看看是什么原因感谢