![]() |
Datenbank: Access • Zugriff über: ADOquery,datasource
Access datenbank komprimieren und reparieren
hallo zusammen
ich arbeite an einem Datenbankprogramm,die unter delphi programmiert werden soll. ich möchte dass beim programmstartm ,dass meinen accessdatenbank komprimiert und repariert wird (sieht so ähnlich aus,wie man es manuell unter Microcsoft Office macht).ich habe gehört,dass dafür eine DLL gibt,die man einfach in dem programm bindet. kann mir jemand sage wo ich dieser DLL finde und wie ich sie in dem Programm einbinde? im voraus vielen Danke MFG |
Re: Access datenbank komprimieren und reparieren
Hallo,
direkt von einer DLL ist mir jetzt nichts bekannt, von der Jet-Engine mal abgesehen. Ich benutze zum Komprimieren und Reparieren JETCOMP.EXE. Das ist von Microsoft, benutzt aber wohl noch nicht mal die Jet-Engine und kriegt angeblich Datenbanken wieder zusammengeschuster wo selbst die JetEngine streikt. Du kannst es dir glaube ich auch bei Microsoft runter laden, ich habe aber gerade den Link nicht parat. Google einfach mal danach. |
Re: Access datenbank komprimieren und reparieren
Vielleicht hilft das weiter...
Delphi-Quellcode:
Nachtrag: sDBName ist der komplette Filename der MDB-Datei!
const
bak_ext = '.$$$'; stAccessDB = 'Provider=Microsoft.Jet.OLEDB.4.0;'+ 'Data Source=%s'; var JetEngine: Variant; sTemp: string; bOffen: Boolean; begin Screen.Cursor := crSQLWait; sTemp := ChangeFileExt(sDbName, bak_ext); DeleteFile(sTemp); bOffen := ADOConnection1.Connected; if bOffen then ADOConnection1.Connected := False; try JetEngine := CreateOleObject('JRO.JetEngine'); try Application.ProcessMessages; JetEngine.CompactDatabase( Format(stAccessDB, [sDBName]), Format(stAccessDB, [sTemp])); DeleteFile(sDBName); RenameFile(sTemp, sDBName); JetEngine := Unassigned; Screen.Cursor := crDefault; except // else Screen.Cursor := crDefault; JetEngine := Unassigned; MessageDlg(Format('FEHLRER!%sDie Datenbank wurde nicht gepackt!', [#13#10]), mtInformation, [mbOk], 0); end; finally if bOffen then ADOConnection1.Connected := True; end; end; Grüße Mikhal [edit]Rechtschreibfehler korrigiert[/edit] [edit]Nachtrag[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 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