MDBファイルの最適化

AccessのMDBファイルは、使っていくうちにファイルサイズが肥大化するため最適化する必要がある。以下、Delphiプログラムで最適化を行う方法。

コンポーネントのインポートで、Microsoft Jet and Replication Objectsをインポートする。インポートしたら以下の方法で最適化できる。


uses JRO_TLB;  //インポートしたライブラリ

...

procedure CompMDB(const FileName: string);
var
  JE: IJetEngine;
  Path, OnlyFname, NewFile, OldFile: string;
begin
  Path := ExtractFileDir(FileName);
  OnlyFname := ChangeFileExt(ExtractFileName(FileName), '');
  NewFile := Path + '\' + OnlyFname + '_new.mdb';
  OldFile := Path + '\' + OnlyFname + '_old.mdb';
  JE := coJetEngine.Create;
  if FileExists(NewFile) then
    DeleteFile(NewFile);
  JE.CompactDatabase('Data Source=' + FileName,
                      'Data Source=' + NewFile);
  if FileExists(OldFile) then
    DeleteFile(OldFile);

  if FileExists(FileName) then
    DeleteFile(FileName);
  RenameFile(NewFile,FileName);
end;

タイプライブラリを使うにはいろいろな方法があるが、ここではインターフェイスを使った。

Tips

ブログ

リンク