2016-12-09 4 views
0

In meiner Anwendung verwende ich Firebird + ZEOSDBO-7.1.4.Delphi Firebird

Um eine Sicherung der DB zu machen, benutzte ich ShellAPI:

FileName := 'C:\MyDATABASE.fbk' ;      
ShellExecute(0, 'open',       
    PChar('nbackup.exe'),        
    PChar('-U SYSDBA -P masterkey -B 0 MyDATABASE.fdb '+ FileName) ,   
    nil, SW_HIDE) ;  

Es geht gut, aber ich möchte eine der DB wiederherstellen tun.

Wie die DB mit ShellApi bitte wiederherstellen? Danke

+0

[nbackup Dokumentation] (http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/nbackup.html) –

Antwort

2

Sie haben eine "vollständige Sicherung" (Parameter -B 0) mit dem nbackup Werkzeug erstellt. Zum Wiederherstellen von ihm verwenden Sie Befehlszeile

nbackup -R <database> [<backupfile>] 

So ersetzen Sie einfach den relevanten Parameter Ihres ShellExecute Anruf. Beachten Sie, dass:

Wenn die angegebene Datenbankdatei bereits vorhanden ist, schlägt die Wiederherstellung und Sie erhalten eine Fehlermeldung

Bitte lesen Sie mehr darüber, wie die nbackup Werkzeug aus dem documentation zu verwenden.

+0

ich mit dem folgenden Code getestet, aber nichts passiert noch die Syntax korrekt ist: 'ShellExecute (Handle, 'Öffnen', PChar ('gbak.exe'), PChar ('- c -v -user SYSDBA -password Hauptschlüssel' + '' + 'DATABASE1.fbk' + '' + ('DATABASE2. fdb ')), Null, SW_SHOWNORMAL); ' –

+1

Yore mit' gbak' hier während Sie in Ihrer Frage verwenden Sie 'nbackup'! Sie können sie nicht mischen, wenn Sie nbackup zum Erstellen der Sicherung verwendet haben, müssen Sie nbackup verwenden, um von dieser Sicherung wiederherzustellen. – ain

+0

Ich habe den gleichen Code mit nbackup.exe versucht, aber es hat nicht funktioniert. Ich bekomme keine Fehlermeldung, aber die DB wird nicht wiederhergestellt. –