...Compact and Repair an Access Database?

Author: Dan Towers
Homepage: http://www.baysoft.co.uk

Category: Database

{
  Here is a function I have made to compact and repair an access database.
  Exclusive access to the DB is required!!
}

uses
  
ComObj;

function CompactAndRepair(DB: string): Boolean; {DB = Path to Access Database}
var 
  
v: OLEvariant;
begin
  
Result := True;
  try
    
v := CreateOLEObject('JRO.JetEngine');
    try
      
V.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB,
                        'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB+'x;Jet OLEDB:Engine Type=5');
      DeleteFile(DB);
      RenameFile(DB+'x',DB);
    finally
      
V := Unassigned;
    end;
  except
    
Result := False;
  end;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base