Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankbackup (Paradox) lokal auf dem Rechner (https://www.delphipraxis.net/38370-datenbankbackup-paradox-lokal-auf-dem-rechner.html)

chrissy 18. Jan 2005 12:54


Datenbankbackup (Paradox) lokal auf dem Rechner
 
hi,

Irgendwie habe ich nicht so ganz die Idee wie ich das realisieren soll...
hatte es mit

Delphi-Quellcode:
SQL.Add('BACKUP DATABASE "'+pfad+'\Daten\" TO DISK = "'+pfad+'\Backup\ddb_backup.bak" WITH INIT');
probiert, aber beim Ausführen bekomme ich folgende Fehlermeldung : 'SymbolString nicht gefunden! Symbolstring : Backup'

Woran liegt das?
Welche anderen Möglichkeiten gibt es, das Backup zu realisieren?

Gruß
Chrissy

VizeTE 18. Jan 2005 13:49

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
hallo,

die Fehlermeldung läßt ja schon vermuten, daß "Backup" nicht bekannt ist. Du verwendest mit Paradox ja Local-SQL und dieses kennt meines wissens nach nur eine beschränkte Anzahl an Befehlen.

Meine Idee wäre es selbst eine Tabelle anzulegen (das kann ja Dein Programm dynamisch erledigen) und dann mit der BatchMove-Komponent die Daten einfach in die neue Tabelle kopieren. Eventuell kann BatchMove sogar die neue Tabelle selbst anlegen. Bin ich mir jedoch nicht ganz sicher. Schau mal in der Hilfe nach.

Bye

urs.liska 18. Jan 2005 15:01

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
Eine Paradox-Datenbank besteht aus einer Vielzahl einzelner Dateien in einem einzigen Verzeichnis.

Für ein Backup kann man doch einfach alle Dateien auf Windows-Ebene kopieren (und bei Bedarf auch noch Zip-en).
Oder sehe ich da was falsch?

MfG
Urs

chrissy 18. Jan 2005 18:17

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
Danke...
Die Idee mit dem BatchMove werde ich mir mal genauer ansehen.

Das mit dem Zippen habe ich auch schon probiert, da bekam ich dann Fehlermeldungen, dass er die Tabellen nicht kennt, obwohl Name und Pfad meines erachtens korrekt waren.

Gruß
Chrissy

urs.liska 18. Jan 2005 18:32

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
Auf welche Weise hast Du das mit dem Zippen versucht?
Grundsätzlich müsste das schon gehen. Ich glaube (!), es sollte auch keine Probleme geben, dass die Datei gerade benutzt wird (bei Firebird darf man nicht über das OS auf die Datenbankdatei zugreifen, da nie sicher ist, was der Server gerade mit der Datei macht)

MfG
Urs

bernau 18. Jan 2005 19:04

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
Zitat:

Zitat von urs.liska
Ich glaube (!), es sollte auch keine Probleme geben, dass die Datei gerade benutzt wird

Geht nicht. Sobald eine Datenbankdatei (auch Paradox) im Zugriff ist, dann ist ein Zippen oder Backup nicht möglich.

Praktisch sind diese Dateien gesperrt. Fehler im Winzip oder im eigenen Packer-Programm etc.

Theoretisch ist folgendes zu beachten:

Stell dir vor, du hast eine 50 MB grosse Paradox-Datei. Das dauert schon etwas bis diese gezipt ist. wenn nun in der Zeit jemand einen Datensatz schreibt, würde er ggf. gesichert werden, wenn er am schluss der Datei geschrieben würde. Wenn dieser Datensatz aber am Anfang der Datei steht, wird dieser nicht mitgesichert. Hinzu kommt, daß die *.mb, *.px Datei später gesichert wird. Das bedeutet, daß in der Sicherung ein Datensatz nicht vorhanden ist, aber im Index (*.px) schon. Das gibt Datensalat.

Sogesehen kann man nur Datensatzweise die Daten auslesen und in eine SicherungsTabelle schreiben.

Ist nicht so einfach das Thema.



Gerd

chrissy 18. Jan 2005 20:17

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
@Gerd
Da die Datenbank nur lokal auf einem Rechner läuft, also auch kein anderer Zugriff hat, könnte ich doch theoretisch alle Tabellen Schließen und dann Zippen,...
Nur selbst das hat nicht funktioniert. ;)
(also: table.close, zippen, table.open)

Gruß
Chrissy

bernau 19. Jan 2005 07:47

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
Zitat:

Zitat von chrissy
Da die Datenbank nur lokal auf einem Rechner läuft, also auch kein anderer Zugriff hat, könnte ich doch theoretisch alle Tabellen Schließen und dann Zippen,

Das sollte allerdings gehen.

Womit willst du die Daten zippen? Mit einer eigenen Software, oder mit einem fertigen Programm (z.B. Winzip).

chrissy 19. Jan 2005 08:37

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
Ich hatte vor das mit der Unit LZip unter Delphi zu machen, hatte mir da eine CompressStream und DecompressStream prozedur geschrieben, die packen bzw. entpacken sollen, da ich keine Ahnung habe wie ich WinZip ansprechen soll und sozusagen von Delphi steuern soll

Gruß
Chrissy

bernau 19. Jan 2005 08:50

Re: Datenbankbackup (Paradox) lokal auf dem Rechner
 
Zitat:

Zitat von chrissy
Ich hatte vor das mit der Unit LZip unter Delphi zu machen, hatte mir da eine CompressStream und DecompressStream prozedur geschrieben, die packen bzw. entpacken sollen, da ich keine Ahnung habe wie ich WinZip ansprechen soll und sozusagen von Delphi steuern soll

WinZip kann nicht gesteuert werden. Winzip kannst erst mal nur Verwenden um zu sehen, ob die Paradox-Dateien gesperrt sind. Winzip würde dann eine Fehlermeldung bringen, wenn die DAteien in Benutzung sind. Wenn's keine Fehlermeldung gibt, dann kannst du den Fehler bei deiner LZIP-Programmierung suchen.

Hast du mal ein Codebeispiel, wie du LZip verwendest?


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