最近写一程序, 用的是Delphi加ACCESS. 使用ADO对数据进行操作. 由于每次对数据库操作比较多. 但最后将数据库中数据全部删除后, 数据库所占用的控件仍然很大, 不知道有没有办法将数据的占用控件变成应该的大小. 大虾都来给点意见吧!

解决方案 »

  1.   

    用这个函数就可以了。Function CompactMDB(sOldMDB : String; sNewMDB : String) : Boolean; 
    const 
       sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;'; 
    var 
       oJetEng: JetEngine;  //在ADODB里
    begin 
       sOldMDB := sProvider + 'Data Source=' + sOldMDB; 
       sNewMDB := sProvider + 'Data Source=' + sNewMDB; 
       try 
         oJetEng := CoJetEngine.Create; 
         oJetEng.CompactDatabase(sOldMDB, sNewMDB); 
         oJetEng := Nil; 
         Result  := True; 
       except 
         oJetEng := Nil; 
         Result  := False; 
       end; 
     end;