Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2012, 16:25   #1
brednew
Пользователь
 
Регистрация: 10.09.2012
Сообщений: 24
По умолчанию IbBackupService и IBRestoreService

Сделал все как написано на одном из обучающих гайдов, но при начинании копирования вылазиет ошибка

код копирования БД

Код:
procedure TForm9.bStartBackupClick(Sender: TObject);
var s : String;
begin
s:= FormatDateTime('yyyy.mm.dd_hh.nn.ss', Now);
edit2.text:=s;
ibbs.DatabaseName:=edit1.Text;
Memo1.Clear;
IBBS.ServerName := 'gds_db';
IBBS.LoginPrompt:= False;
IBBS.Params.Add('user_name=sysdba');
IBBS.Params.Add('password=masterkey');
IBBS.Active := True;
IBBS.Verbose:= True;
IBBS.BackupFile.Clear;
IBBS.BackupFile.Add('F:\progs\Backup\' + s + '.ib');
IBBS.ServiceStart;
while not IBBS.Eof do
Memo1.Lines.Add(IBBS.GetNextLine);
IBBS.Active:= False;
Memo1.Lines.SaveToFile('C:\progs\Backup\' + s + '.log');
edit2.text:='F:\progs\Backup\' + s + '.ib'
end;
код восстановления БД из резервной

Код:
procedure TForm9.bStartRestoreClick(Sender: TObject);
var s : String;
begin
s:= FormatDateTime('yyyy.mm.dd_hh.nn.ss', Now);
Memo2.Clear;
IBBS.ServerName := 'gds_db';
//устанавливаем начальные параметры:
IBRestoreService1.Params.Add('user_name=sysdba');
IBRestoreService1.Params.Add('password=masterkey');
IBRestoreService1.LoginPrompt:=true;
IBRestoreService1.Active:= True;
//начинаем восстановление
try
IBRestoreService1.Verbose:= True; //вести лог
//очищаем свойство с именем БД, которая должна получиться:
IBRestoreService1.DatabaseName.Clear;
//устанавливаем новое имя:
IBRestoreService1.DatabaseName.Add('C:\progs\Restore\' + s + '.ib');
//очищаем свойство с именем резервной копии:
IBRestoreService1.BackupFile.Clear;
//устанавливаем новое имя из OpenDialog:
IBRestoreService1.BackupFile.Add(OpenDialog1.FileName);
//стартуем восстановление:
IBRestoreService1.ServiceStart;
//параллельно ведем лог, пока не наступит конец восстановления:
while not IBRestoreService1.Eof do
Memo2.Lines.Add(IBRestoreService1.GetNextLine);
finally
IBRestoreService1.Active:= False; //деактивируем компонент 
//запишем полученный лог в файл:
Memo2.Lines.SaveToFile('F:\progs\Restore\' + s + '.log');
//теперь очистим Editl и снова сделаем кнопку недоступной:
Edit3.Text:= '';
bStartRestore.Enabled:= False;
end;
brednew вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц