Конференция "Базы" » BackUp/Restore базы данных FireBird из моей программы. [D7, IB6.x]
 
  • Rhododendrom (21.12.09 11:46) [0]
    Использую базу данных FireBird. Хочу сделать BackUp, а затем Restore. Вроде как в Delphi есть компонент IBBackupService на вкладке InterBase Admin. Тамже же есть и IBRestoreService.
    Подскажите как запустить процедуру BackUp, а затем Restore.
  • Sergey13 © (21.12.09 12:07) [1]
    На ibase.ru вроде были описания работы с IBX.

    > как запустить процедуру BackUp, а затем Restore

    Вот так прямо сразу друг за другом? А зачем?
  • Rhododendrom (21.12.09 12:33) [2]
    Зачем мне BackUp, если я потом не смогу сделать Restore?
    Я хотел описание как пользоваться компонентами.
    За ссылку спасибо, почитаю, может найду что ищу.
  • Sergey13 © (21.12.09 12:50) [3]
    > [2] Rhododendrom   (21.12.09 12:33)
    > Зачем мне BackUp, если я потом не смогу сделать Restore?

    Я к тому, что делать СРАЗУ подряд автоматом B&R - верный путь в могилу. Ресторить надо отдельно, желательно на другой машине. Потому что случаются мертвые бекапы.
  • mr.il (22.12.09 06:16) [4]
    > Я к тому, что делать СРАЗУ подряд автоматом B&R - верный путь в могилу
    Чтобы от этого застраховаться, я переименовываю базу, этим одновременно проверяю не подключен ли к базе кто то.
  • Sergey13 © (22.12.09 09:18) [5]
    > [4] mr.il   (22.12.09 06:16)

    А какой смысл постоянно подсовывать бекап? Место что ли освобождать?
  • Rhododendrom (23.12.09 09:30) [6]
    На ibase.ru нашёл демонстрацию, которая показывает как работать с палитрой Interbase Admin. В результате ковыряния получено следующее:
    1. На форму помещаем компонент "IBBackupService" и "IBRestoreService" с палитры "InterBase Admin".
    2. Настраиваем компоненты отключая "Login Promt"
    3. Поидее в моих процедурах надо ещё передавать имя компонента, но было лень:

    procedure BackUp(DataBase, BakcUpName, UserName, Password:string);
    begin
    try
     Screen.Cursor := crHourGlass;
     with IBBackupService1 do begin
      Params.Clear;
      Params.Add('user_name='+UserName);
      Params.Add('password='+Password);
      Attach();
      Active:=true;
      DatabaseName:=DataBase;
      BackupFile.Add(BakcUpName);
      ServiceStart;
      while IsServiceRunning do Application.ProcessMessages;
     end;
    finally
     if IBBackupService1.Active then IBBackupService1.Detach;
     Screen.Cursor := crDefault;
    end;
    end;



    procedure Restore(DataBase, BackUpName, UserName, Paasord:string);
    begin
    try
     Screen.Cursor := crHourGlass;
     with IBRestoreService1 do begin
      Params.Clear;
      Params.Add('user_name='+UserName);
      Params.Add('password='+Paasord);
      Attach();
      if Active=true then begin
       BackupFile.Add(BackUpName);
       DatabaseName.Add(DataBase);
       ServiceStart;
       while IsServiceRunning do Application.ProcessMessages;
      end;
     end;
    finally
     if IBRestoreService1.Active then IBBackupService1.Detach;
     Screen.Cursor := crDefault;
    end;
    end;

  • Rhododendrom (23.12.09 09:33) [7]
    ой, в функции восстановления ошибка, вот правильная:
    procedure Restore(DataBase, BackUpName, UserName, Paasord:string);
    begin
    try
     Screen.Cursor := crHourGlass;
     with IBRestoreService1 do begin
      Params.Clear;
      Params.Add('user_name='+UserName);
      Params.Add('password='+Paasord);
      Attach();
      if Active=true then begin
       BackupFile.Add(BackUpName);
       DatabaseName.Add(DataBase);
       ServiceStart;
       while IsServiceRunning do Application.ProcessMessages;
      end;
     end;
    finally
     if IBRestoreService1.Active then IBRestoreService1.Detach;
     Screen.Cursor := crDefault;
    end;
    end;

 
Конференция "Базы" » BackUp/Restore базы данных FireBird из моей программы. [D7, IB6.x]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]