代码如下:
uses DAO2000var
    Engine:DBEngine;
    filedir:string;
    dbfile:string;
   
begin    dm.ADOCnn.Connected:=false;
    filedir:=GetCurrentDir()+'\whhotel.mdb';
    dbfile:=GetCurrentDir()+'\whhotel1.mdb';
    Engine:=CoDBEngine.Create;
    engine.CreateDatabase(dbfile,'',0);
    Engine.CompactDatabase(filedir,dbfile,'',0,'');
    deleteFile(filedir);
    RenameFile(dbfile,filedir);
运行程序,提示无效参数,并在engine.compactdatabase行停下

解决方案 »

  1.   

    uses comobj;procedure Tfrom.N1Click(Sender: TObject);
    var
      X: OleVariant;
      source,temp:string;
    begin
      source:=extractfilepath(application.exename)+'a.mdb';
      temp:=extractfilepath(application.exename)+'temp.mdb';
      adoconnection.Connected:=false;
      try
        X:= createoleobject('JRO.JetEngine');
        x.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+sourcefile+'','Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+tempfile+'');
        if fileExists(source) and FileExists(temp) then
        if deleteFile(source)then
          RenameFile(temp,source);
      except
        x.Release;
      end;
      adoconnection.Connected:=true;
    end;