Datenbank: ACCESS • Version: 200 • Zugriff über: ADOX
Access über ADOX Komprimieren
Hi
Ich habe in einem meiner (älteren) Projekte mit hilfe dieser Anleitung eine Datenbank angelegt. Das Ding wird nur leider etwas Groß. Wenn ich die Datei mit Access (2003) öffne kann ich sie ja "Komprimieren & reparieren" und genau das wollte ich nun mit meinem Programm machen. Nur leider habe ich es bis jetzt, selbst mit der Suche, nicht geschaft dies zu bewerkstelligen. :coder2: :wall: Aber da könnt ihr mir doch bestimmt weiterhelfen oder? :) Kleiner Auszug ...
Delphi-Quellcode:
Bin auch evtl. für neue/andere Wege eine *.mbd Datei zu erstellen offen ... aber n einfacher Compact Befehl (wie z.B. bei ABS-DB) währ mir natürlich lieber ^^
sDataSource := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + vDatabaseFileName + ';';
ADOXCatalog.Create1(sDataSource); cCreateAdresse := 'CREATE TABLE Messwerte(' + cCRLF + 'ID counter,' + cCRLF + 'Datum_Zeit Datetime,' + cCRLF + 'Versuchsname String,' ... ... ADOQuery.SQL.Text := cCreateAdresse; // Zu erstellende Spalten übergeben ADOQuery.ExecSQL; // Execute / Ausführen |
Re: Access über ADOX Komprimieren
Auszug aus einem alten Delphi-Projekt:
Delphi-Quellcode:
Grüße Mikhalconst 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; |
Re: Access über ADOX Komprimieren
HA! COOL! Klappt! /HUG :corky: :dp:
Das Ganze verhält sich zwar n bissl komisch, aber das liegt bestimmt amm Access/Jet. Access 95 DB's mit 1000 Datensätzen werden kleiner, als Access 2000 DB's mit 1000 Datensätzen obwohl das Resultat in beiden Fällen eine Access 2000'er DB ist. :gruebel: :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz