QueryBackupProgress

From SunFlurry wiki
Jump to: navigation, search
  QueryBackupProgress (Работа с резервным копированием)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер
Исключения:Невозможно превратить в число, ошибка сервера.
Визуальность:Нет

Функция используется для получения информации об окончании или состоянии процесса резервного копирования, инициированого функцией InitiateBackupCreation. Для получения информации по процессу, запущенному именно функцией InitiateBackupCreation используется код (индекс) процесса копирования на сервере. Однако, сервер хранит только один старый результат процесса, поэтому, может получиться ситуация, когда код, передаваемый функции, не соответствует ни уже завершенному процессу копирования, ни активному в данный момент процессу (если таковой имеется). В этом случае, функция не сможет возвратить никакой информации, такое состояние может произойти, если функция вызвана после окончания процесса копирования, который был запущен после окончания процесса, информацию о котором пытается получить данная функция. Это состояние, даже если оно маловероятно, также необходимо предусмотреть.

Синтаксис

QueryBackupProgress(<Код процесса резервного копирования (INT)>,<Текущее сообщение процесса копирования или сообщение об ошибке (STRING)>,<Дата и время начала последнего процесса (DATE)>):<Код состояния процесса резервного копирования (INT)>

Аргументы

  • <Код процесса резервного копирования (INT)> - Аргумент задает индекс процесса копирования, инициированого функцией InitiateBackupCreation. Последняя функция возвращает значение этого аргумента (см. пример ниже).
  • <Текущее сообщение процесса копирования или сообщение об ошибке (STRING)> - (необязательный аргумент) (возможен аргумент-переменная (ByRef)) Аргумент задает переменную, в которую будет помещена информация о процессе копирования. Если процесс уже завершен, информация будет представлять собой сообщение об ошибке или сообщение об успешном завершении, иначе информация будет характеризовать текущую стадию процесса.
  • <Дата и время начала последнего процесса (DATE)> - (необязательный аргумент) (возможен аргумент-переменная (ByRef)) Аргумент задает переменную, в которую будет помещена дата начала процесса копирования.

Возвращаемое значение

Функция возвращает числовой код состояния процесса копирования. Возможны следующие значения кода:

  • 0 -- процесс копирования не найден (внутренняя ошибка или код процесса копирования неверен).
  • 1 -- процесс копирования активен в данный момент, переменная второго аргумента заполняется информацией по его состоянию.
  • 2 -- процесс копирования успешно завершен, переменная второго аргумента заполняется сообщением об успешном завершении процесса.
  • 3 -- процесс копирования завершен с ошибкой, переменная второго аргумента заполняется сообщением об ошибке.

Примеры

//Фрагмент выводит в лог различные состояния процесса резервного копирования "Создание копии по запросу"
//Цикл завершается в момент получения информации об ошибке или удачном окончании процесса.
iNum:=InitiateBackupCreation("Создание копии по запросу");
аСтр0:="";
аРез:=1;
While аРез=1 Do
  аСтр:="";
  аДата:=0;
  аРез:=QueryBackupProgress(iNum,аСтр,аДата);
  
  аТип:="";
  If аРез=0 Then
    аСтр:="Внутренняя ошибка!";
    аТип:="!";
  ElseIf аРез=2 Then
    аТип:="I";
  ElseIf аРез=3 Then
    аТип:="!";
  EndIf;
  
  If аСтр0<>аСтр Then
    Message(аСтр,аТип);
    аСтр0:=аСтр;
  EndIf;
  Sleep(50);
EndDo;