Einzelnen Beitrag anzeigen

Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Access über ADOX Komprimieren

  Alt 25. Aug 2006, 19:38
Auszug aus einem alten Delphi-Projekt:

Delphi-Quellcode:
  
const
  bak_ext = '.$$$';
  stAccessDB = 'Provider=Microsoft.Jet.OLEDB.4.0;'+
                      'Data Source=%s';
var
  JetEngine: Variant;
  sTemp: String; // Dateiname für temporäre Datei
  sDBName: String; // Dateiname der Datenbank
  ...

begin
  ...

  sTemp := ChangeFileExt(sDbName, bak_ext);
  JetEngine := CreateOleObject('JRO.JetEngine');
  Application.ProcessMessages;
  Screen.Cursor := crSQLWait;
  try
    JetEngine.CompactDatabase(
        Format(stAccessDB, [sDBName]),
        Format(stAccessDB, [sTemp]));
    DeleteFile(sDBName);
    RenameFile(sTemp, sDBName);
    JetEngine := Unassigned;
    Screen.Cursor := crDefault;
    MessageDlg('Die Datenbank wurde erfolgreich gepackt!', mtInformation,
   [mbOk], 0);
  except
    //
  else
    Screen.Cursor := crDefault;
    JetEngine := Unassigned;
    MessageDlg(Format('FEHLRER!%sDie Datenbank wurde nicht gepackt!',
      [#13#10]), mtInformation,   [mbOk], 0);
  end;
  ...

end;
Grüße Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat