Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO-Stress ... Datenbank zur Laufzeit austauschen (https://www.delphipraxis.net/13746-ado-stress-datenbank-zur-laufzeit-austauschen.html)

CF_Freak21 25. Dez 2003 20:31


ADO-Stress ... Datenbank zur Laufzeit austauschen
 
Hi Leute ich bräuchte (mal wieder :oops:) eure Hilfe:
Konkret geht es darum dass mein Prog via ADO auf eine Access-DB zugreift.
Ich habe auch eine kleine "Backup-Schaltung" integriert die die Datenbank zur Laufzeit
kopiert, danach komprimiert und repariert und dann in ein Zip-Archiv speichert.
Das haut auch alles soweit ganz ordentlich hin.
Nur kann ich auf diese Weise erstellte Backups nicht wieder einspielen.
Ich kann sie zwar (unter einem anderen Namen) ins Programmverz. entpacken, nur schaffe ich es nicht
die akutell laufende DB zu löschen (wegen dem von Access erzeugten *.ldb-File).
Ich habe festgestllt das diese Ldb-Datei zwar verschwindet wenn ich mein Prog beende,
aber nicht wenn ich zur Laufzeit nur die ADO-Connection deaktiviere.
Was muss ich machen, damit ich die laufende DB löschen kann und meine Backup-DB verwenden kann?

fgret 25. Dez 2003 22:18

Re: ADO-Stress ... Datenbank zur Laufzeit austauschen
 
hi

vielleicht ne dumme idee, aber hast du schon mal versucht dein backup zu öffnen und danach erst die vorher verwendete db zu löschen ? die müsste dann nämlich wieder ohne lock sein ( so ist es jedenfalls bei meiner application )

fgret
:gruebel:

CF_Freak21 25. Dez 2003 23:21

Re: ADO-Stress ... Datenbank zur Laufzeit austauschen
 
Versteh ehrlich gesagt nicht genau wie du das meinst?
Also mein Prog läuft so ab...

1. Präsentiere OpenDLg für Auswahl einer Zip-Datei die die gepackte *.mdb enthält.
2. Extrahiere die ausgewählte Zip-Datei ins Verz der Anwendung mit einem "Backup_" vorn am Orginalnamen dran.
Bis hier gehts, danach sollte folgendes passieren.
3. Kill die laufende DB (irgendwie) und bennenn die "Backup_"*.mdb um auf den Orginalnamen.
4. Reaktiviere evtl. vorher geschloessene Connection.

Mein Prob ist das wenn ich sag
myConn.Connected:=false; sich das keinesfalls irgendwie auf die ldb-Datei auswirkt...
Evtl liegts auch daran dass ich eine *.udl-Datei für die Verbindungseinstellungen verwende (ein Data-Link File)?

[edit=Sharky]Doppelposting entfernt und in den Mülleimer geworfen. :-) Mfg, Sharky[/edit]

KarinW 26. Dez 2003 07:39

Re: ADO-Stress ... Datenbank zur Laufzeit austauschen
 
Verwende anstatt
myConn.Connected:=false

einfach
myConn.close;

Dann wird die Datenbank tatsächlich geschlossen und nich nur auf disconnected gesetzt.
Wenn du nur Connected:= false nimmst, lässt Access das .ldb zum schnelleren aktivieren offen.

grüße Karin

CF_Freak21 28. Dez 2003 12:53

Re: ADO-Stress ... Datenbank zur Laufzeit austauschen
 
Hey danke für den Tip!
Hat hingehauen....

Bin wie gesagt noch absoluter Delphi-Neuling
und darum auf Hilfe angewiesen...
Is mir eh schon peinlich dauernd zu fragen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 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