Mybackuap и ProgressBar

Обсуждение возникших проблем, предложений и ошибок MyDAC компонентов
Закрыто
alexmir
Сообщения: 1
Зарегистрирован: Ср 30 ноя 2011 16:26

Mybackuap и ProgressBar

Сообщение alexmir » Ср 30 ноя 2011 16:32

Доброго всем дня! Подскажите как используя Mybackuap вывести ProgressBar для отображения хода резервирования базы данных? Заранее всем спасибо.

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Сообщение AndreyZ » Чт 01 дек 2011 13:12

Здравствуйте,

Компонент TMyBackup использует выражение SELECT INTO OUTFILE для режима bmText и BACKUP TABLE для режима bmBinary. Отображение прогресса резервирования базы данных в данном случае невозможно.

tim21701
Сообщения: 1
Зарегистрирован: Сб 07 янв 2012 12:37

Re: Mybackuap и ProgressBar

Сообщение tim21701 » Сб 07 янв 2012 18:07

Код: Выделить всё

procedure TForm1.MyDump1BackupProgress(Sender: TObject; ObjectName: String;
  ObjectNum, ObjectCount, Percent: Integer);
begin
   Label1.Caption := 'Категория: ' + ObjectName;
   Label2.Caption := 'Таблица ' + IntToStr(ObjectNum + 1) + ' из ' + IntToStr(ObjectCount);
   ProgressBar1.Position := Percent;
end;
Вот Результат:
Изображение

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Сообщение AndreyZ » Пн 09 янв 2012 10:19

Используя компонент TMyDump можно показать прогресс выгрузки таблиц. Для компонента TMyBackup это невозможно.

imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Re: Mybackuap и ProgressBar

Сообщение imobile » Ср 04 апр 2012 13:43

tim21701 писал(а):

Код: Выделить всё

procedure TForm1.MyDump1BackupProgress(Sender: TObject; ObjectName: String;
  ObjectNum, ObjectCount, Percent: Integer);
begin
   Label1.Caption := 'Категория: ' + ObjectName;
   Label2.Caption := 'Таблица ' + IntToStr(ObjectNum + 1) + ' из ' + IntToStr(ObjectCount);
   ProgressBar1.Position := Percent;
end;
Вот Результат:
Изображение
переписал под builder xe прогрес отображается нормально, а лейблы не изменяются, пока весь процесс не закончится :(

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Сообщение AndreyZ » Ср 04 апр 2012 14:36

Попробуйте использовать следующий код:

Код: Выделить всё

void __fastcall TForm1::MyDump1BackupProgress(TObject *Sender, UnicodeString ObjectName,
		  int ObjectNum, int ObjectCount, int Percent)
{
  UnicodeString ts1, ts2;
  ts1 = "Категория: " + ObjectName;
  ts2 = "Таблица " + IntToStr(ObjectNum + 1) + " из " + IntToStr(ObjectCount);
  if (Label1->Caption != ts1) {
	Label1->Caption = ts1;
	Label1->Refresh();
  }
  if (Label2->Caption != ts2) {
	Label2->Caption = ts2;
	Label2->Refresh();
  }
  ProgressBar1->Position = Percent;
}

imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Сообщение imobile » Ср 04 апр 2012 15:04

Спасибо, все работает.

Закрыто