Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi CompactDatabase (https://www.delphipraxis.net/31259-compactdatabase.html)

Ralf Stehle 6. Okt 2004 19:09


CompactDatabase
 
Ich arbeite mit Access-Datenbanken und versuche fehlerhafte Datenbanken mit CompactDatabase zu reparieren. Zwar funktioniert dies zum Komprimieren einwandfrei, bei tatsächlich defekter *.mdb-Datei kommt aber die Fehlermeldung: Fehler bei der Authentifizierung.

Mit Access selbst kann ich die beschädigte Datenbank aber reparieren.

Was macht Access besser als die gleiche Routine in Delphi ? :?:



Hier der Code für CompactDatabase aus http://delphi.about.com/library/weekly/aa091801a.htm:

Delphi-Quellcode:
function DatabaseCompact(const sdbName: WideString) : boolean;
var
 JE         : TJetEngine; //Jet Engine
 sdbTemp    : WideString; //TEMP database
 sdbTempConn : WideString; //Connection string
const
 SProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;
             Data Source=';
begin
 Result:=False;
 sdbTemp := ExtractFileDir(sdbName) + 'TEMP' + ExtractFileName(sdbName);
 sdbTempConn := SProvider + sdbtemp;
 if FileExists(sdbTemp) then DeleteFile(sdbTemp);
 JE:= TJetEngine.Create(Application);
 try
  try
    JE.CompactDatabase(SProvider + sdbName, sdbTempConn);
    DeleteFile(sdbName);
    RenameFile(sdbTemp, sdbName);
  except
    on E:Exception do ShowMessage(E.Message);
  end;
 finally
   JE.FreeOnRelease;
   Result:=True;
 end;
end


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz