Hallo,
Zugriffskomponenten : FIBplus.
ich mache aus einem Programm heraus ein Backup. Nun will ich natürlich davon auch ein retore machen. Der Code sieht momentan so aus :
with RestoreService do begin
ReadTransaction.Commit;
ReadTransaction.active := false;
Database.Close;
Database.CloseDataSets;
Database.Connected := false;
Options := [UseAllSpace]; // DB-Seiten zu 100 % füllen (Standard 80 %)
if ckbReplace.Checked then begin
Options := Options + [Replace];
CopyFile (PChar (DBgdb),PChar (DBgdbBAK),false);
end; // noch eigene Sicherung zusätzlich anlegen
BufferSize := 3000;
PageSize := 4096;
ServerName := 'localhost';
LoginPrompt := False;
Params.Add('user_name='+User);
Params.Add('password='+Password);
Active := false;
try
Verbose := True;
BackupFile.Clear;
BackupFile.Text := DBgbk;
DatabaseName.Text := DBgdb;
ServiceStart;
finally
Active := False;
EingDM.Database.Open;
EingDM.ReadTransaction.StartTransaction;
ShowMessage ('Rücksicherung beendet !');
// Detach;
Close;
end;
end;
end;
In verschiedenen Konstellationen kommt nun entweder : "DB is not open" oder "DB might be in use" Deshalb stellt sich erstens die Frage was jetzt sein muß : DB geöffnet oder nicht ? Ich gehe eher von letzterem aus. Sieht vielleicht jemand einen Fehler ?
Zugriffskomponenten : FIBplus.
ich mache aus einem Programm heraus ein Backup. Nun will ich natürlich davon auch ein retore machen. Der Code sieht momentan so aus :
with RestoreService do begin
ReadTransaction.Commit;
ReadTransaction.active := false;
Database.Close;
Database.CloseDataSets;
Database.Connected := false;
Options := [UseAllSpace]; // DB-Seiten zu 100 % füllen (Standard 80 %)
if ckbReplace.Checked then begin
Options := Options + [Replace];
CopyFile (PChar (DBgdb),PChar (DBgdbBAK),false);
end; // noch eigene Sicherung zusätzlich anlegen
BufferSize := 3000;
PageSize := 4096;
ServerName := 'localhost';
LoginPrompt := False;
Params.Add('user_name='+User);
Params.Add('password='+Password);
Active := false;
try
Verbose := True;
BackupFile.Clear;
BackupFile.Text := DBgbk;
DatabaseName.Text := DBgdb;
ServiceStart;
finally
Active := False;
EingDM.Database.Open;
EingDM.ReadTransaction.StartTransaction;
ShowMessage ('Rücksicherung beendet !');
// Detach;
Close;
end;
end;
end;
In verschiedenen Konstellationen kommt nun entweder : "DB is not open" oder "DB might be in use" Deshalb stellt sich erstens die Frage was jetzt sein muß : DB geöffnet oder nicht ? Ich gehe eher von letzterem aus. Sieht vielleicht jemand einen Fehler ?
Comment