Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Access DB Komprimieren gibt EOleException (https://www.delphipraxis.net/85476-access-db-komprimieren-gibt-eoleexception.html)

spanier 31. Jan 2007 11:55

Datenbank: Access • Version: 2003 • Zugriff über: ADO

Access DB Komprimieren gibt EOleException
 
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. :wall:


Kann mir bitte jemande helfen !!!

Vielen Dank

spanier 1. Feb 2007 22:22

Re: Access DB Komprimieren gibt EOleException
 
Kann mir denn keiner Helfen! Bitte! Bin für jede Idee dankbar

spanier 3. Feb 2007 12:22

Re: Access DB Komprimieren gibt EOleException
 
Nachtrag:

Ich habe mit Delphi 2005 das ganz probiert und es funktioniert dort auch nicht. Also liegt es nicht an Delphi sonder wohl an meiner DB. Aber ich habe keine Ahnung woran genau.

Hilfe !!!

mikhal 3. Feb 2007 12:31

Re: Access DB Komprimieren gibt EOleException
 
Hast du jede AdoConnection zu deiner Datenbank geschlossen?

Grüße
Mikhal

spanier 3. Feb 2007 12:39

Re: Access DB Komprimieren gibt EOleException
 
Ja habe ich. Es ist also keine *.ldb mehr im Datenbankverzeichnis vorhanden.

marabu 3. Feb 2007 13:22

Re: Access DB Komprimieren gibt EOleException
 
Herzlich willkommen in der Delphi-PRAXiS, spanier.

Wie bist du mit dem Fehler beim Importieren der JetEngine nach Delphi (6) umgegangen?

Hier findest du neben Erläuterungen auch noch ein Code-Beispiel: klick

Freundliche Grüße vom marabu

spanier 3. Feb 2007 13:50

Re: Access DB Komprimieren gibt EOleException
 
Dadurch das ich mit " JetEngine := CreateOleObject('JRO.JetEngine'); " arbeite, muss ich die TypeBibliothek nicht importieren.
Da ich kein Delphi 5 besitze um die alte Unit zu verwenden, dachte ich, ich umgehen den Compiler fehler somit.

Hab ich wohl falsch gedacht ?

Ich habe gelesen das wenn man die Delphi 5 Unit verwendet man von Hand die ADODB.pas Patch muss damit es unter Delphi 6 läuft.
Was aber bedeuted das man keine Laufzeitpackages verwenden kann oder doch ?

Dummerweiße sind Laufzeitpackages Vorraussetzung für mein Projekt und zweitens habe ich die Delphi 5 Unit leider nicht.

Könnte ich mir mit Delphi 2005 weiter helfen?

Danke für eure Hilfe.

Mfg

spanier

marabu 3. Feb 2007 14:01

Re: Access DB Komprimieren gibt EOleException
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

leider kann ich weder mit D6 noch mit Access testen. Ich hänge dir mal die Unit JRO_TLB an, damit du den verlinkten Code ausprobieren kannst.

Patchen musst du da nichts, das wäre die Alternative bei fehlendem D5 gewesen.

Freundliche Grüße

spanier 3. Feb 2007 16:00

Re: Access DB Komprimieren gibt EOleException
 
Hab die Unit importiert und installiert aber der Fehler bleibt der gleiche :wall:

Schade. Aber Danke für die Hilfe.

mfg

spanier

spanier 4. Feb 2007 12:15

Re: Access DB Komprimieren gibt EOleException
 
Jetzt hab ich als alternative versucht das ganze über ODBC zu machen aber da bekomme ich die Meldung
"Funktionen dieser Version sind in Datenbanken mit älterem Format nicht verfügbar."

Kann mir vielleicht dazu jemand was sagen ? Meine DB ist im Access2000 Format und der ODBC Treiber für Access Version: 4.00.6304


mfg

spanier


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.
Seite 1 von 2  1 2      

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