我用的Win2000+Delphi+ACCESS, 我的程序中有以下代码:
var 
dao:OLEVariant;
ExePath:string;
begin
ExePath:=ExtractFileDir(application.ExeName);
adoconnection1.Close;
dao:=CreateOleObject('DAO.DBEngine.36');
dao.CompactDatabase(ExePath+'\jf.mdb',ExePath+'\temp_jf.mdb');
DeleteFile(ExePath+'\jf.mdb');
RenameFile(ExePath+'\temp_jf.mdb',ExePath+'\jf.mdb');
adoconnection1.Open;
end;
程序在我机器上跑没有问题,当我把程序拷贝到一个Win2000系统但未装ACCESS2000的电脑上时,错误提示为'没有找到jf.mdb',我怀疑可能是没有装ACCESS2000从而导致库文件后缀名差异的原因。不知道是否如此?如果不装ACCESS2000,该怎么改程序?

解决方案 »

  1.   

    应该不是ACCESS的问题,如果是,最多可能是没有读取它的数据引擎 如果是 dao:=CreateOleObject('DAO.DBEngine.36');这句代码就应该出错另外: ExePath的值的末尾是有反斜杠的,无需在加你可以跟踪一下代码是哪一句出错
      

  2.   

    不用装access也能读出来的,不过你这种连接方式我没用过
      

  3.   

    不是ACCESS的问题,Win2000 系统自带Madc组件跟踪一下看路径是否正确