Thema: Backup mdb

Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Backup mdb

  Alt 2. Apr 2012, 21:52
ich schließe mich Perlsau an, bei der Gelegenheit böte sich ein Kompress/Repair mit an
Delphi-Quellcode:
procedure CompressRepairMDB(DBFile : TFileName; APassword : String);
const
  tmpDBName = 'compress.mdb';
var
  JROJetEngine : TJetEngine;
  srcConn,
  destConn : String;
begin
  JROJetEngine := TJetEngine.Create(nil);
  try
    srcConn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBFile;
    destConn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sPath + tmpDBName;

    if APassWord <> 'then begin
      srcConn := srcConn + ';Jet OLEDB:Database Password="' + APassWord+ '"';
      destConn := destConn + ';Jet OLEDB:Database Password="' + APassWord+ '"';
    end;

    // Datenbank reparieren & komprimieren
    JROJetEngine.CompactDatabase(srcConn, destConn);

    if FileExists(sPath + tmpDBName) then
      begin
      // Ausgangsdatenbank löschen oder auch nicht (gegf. umbenennen)
      DeleteFile(PChar(DBFile));
      // Komprimierte DB anstelle der AusgangsDB kopieren
      CopyFile(PChar(sPath + tmpDBName), PChar(DBFile), false);
      // Komprimierte DB löschen oder als Backup aufbewaren
      DeleteFile(PChar(sPath + tmpDBName));
    end;
  finally
    JROJetEngine.Disconnect;
    JROJetEngine.Free;
  end;
end;
mit Typbibliothek Microsoft Jet and Replication Objects 2.x
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat