![]() |
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 ![]()
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