Hallo zusammen,
hier wieder mal das leidige Thema
Access DB komprimieren via
ADO. Ich verwende
Access 2003 und Delphi 6 und möchte meine
DB komprimieren. Dazu habe ich folgenden Code aus dem Forum verwendet.
...
sTemp := ChangeFileExt(ADb, bak_ext);
JetEngine := CreateOleObject('JRO.JetEngine');
Application.ProcessMessages;
try
JetEngine.CompactDatabase(Format(stAccessDB, [ADb]), Format(stAccessDB, [sTemp]));
Sysutils.DeleteFile(ADb);
RenameFile(sTemp, ADb);
JetEngine := Unassigned;
MessageDlg('Die Datenbank wurde erfolgreich gepackt.', mtInformation,[mbOk], 0);
except
on E:
Exception do begin
JetEngine := Unassigned;
MessageDlg('
DB Komprimieren Fehler: '+#13#10+e.ClassName+' '+e.Message, mtError, [mbOk], 0);
end;
end;
....
Der Code scheint auch bei den Forum Usern zu funktionieren, aber bei mir gibt es eine EOleException mit der Meldung:
"Fehler bei einem aus mehreren Schritten bestehenden
OLE DB-Vorgang. Prüfen Sie die einzelnen
OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet."
Eigentlich bin ich der Meinung sowas tritt auf wenn man not NULL Felder nicht füllt oder irgendeine andere
DB Regel verletzt.
Das komische ist aber wenn ich das ganze im MS
Access manuell anstartet funktioniert es tadellos.
Kann mir bitte jemande helfen !!!
Vielen Dank