[firebase-br] Re: Recuperação/Backup (utilizando a MDO)

Marlon marlon em multi-informatica.com.br
Ter Dez 14 14:04:27 -03 2004


Olá Luiz Henrique,
Eu tinha colocado uma pergunta sobre o MDORestoreService, dava um erro 
ao excluir um registro após ter restaurado o backup.¹

Comecei a utilizar o Firebird com o MDO, faz alguns meses(sou novato 
ainda com o Firebird). Por isto não sei te dizer se ele é bom em relação 
aos outros componentes. Na empresa onde trabalho optamos em utilizar o 
MDO por ser especifico para o Firebird, garantindo suas compatibilidades 
com as proximas versões do Firebird. O componente é bom e tem  tudo para 
crescer ainda mais, o TMDOBackup e o TMDORestoreService é fácil de usar 
e funcionam bem.

¹- . Respondendo a minha pergunta que tinha feito na lista: :-)
      O meu problema erá que eu conectava no banco sem ter realmente 
restaurado todo o backup.
Era assim o código:
     Restaurar.LoginPrompt := False;
     Restaurar.Params.Clear;
     Restaurar.Params.Add('user_name=' + EdUsuario.Text);
     Restaurar.Params.Add('password='  + EdSenha.Text);
     Restaurar.DatabaseName.Clear;
     Restaurar.DatabaseName.Add(EdDestRest.Text);
     Restaurar.ServerName := EdIp.Text;
     Restaurar.Active := True;
     Try
        Restaurar.Verbose     := True;
        Restaurar.Options     := [Replace,UseAllSpace,CreateNewDB];
        Restaurar.PageBuffers := SeBuffer.Value;
        Restaurar.PageSize    := SePage.Value;
        Restaurar.BackupFile.Clear;
        Restaurar.BackupFile.Add(EdOrigRest.Text);
        Try
           Restaurar.ServiceStart;
           MessageDlg('Backup restaurado com sucesso!', mtInformation, 
[mbOK], 0);
        Except
           MessageDlg('Erro ao restaurar o backup!', mtError, [mbOK], 0);
        End;
     Finally
        Restaurar.Active := False;
     End;

Para solucionar o meu problema tive que colocar está linha de comando² 
depois do Restaurar.ServiceStart para saber que realmente tinha 
restaurado todo o backup. Tinha pensado que ao chegar na linha 
MDORestoreService.ServiceStart ele só passava para a outra linha de 
comando após acabar de restaurar o backup.

Restaurar: 
²  
   While not MDORestoreService.Eof do
         MDORestoreService.GetNextLine;
Se quiser que apareça num memo o que está sendo restaurado coloque assim:
While not MDORestoreService.Eof do
    Memo.Line.Add(MDORestoreService.GetNextLine);

Gerar backup:
    While not MDOBackupService.Eof do
         MDOBackupService.GetNextLine;

Aos mais experientes: se tiver algum comando para saber se 
restaurou/gerou todo o backup porfavor me falem, porque a unica solução 
que achei foi esta acima.

Espero ter ajudado.
Marlon.

Luiz Henrique Severo d Oliveira escreveu:

>Aproveitando a carona...
>
>Do pessoal que utiliza a MDO, os que vocês tem a dizer sobre os componentes TMDOBackupService e TMDORestoreService? Eles funcionam na boa? Tem algum macete ou dica para poder utilizar?
>
>
>Obrigado
>Luiz Henrique Severo d Oliveira
>RPG Soluçoes
>www.rpgsolucoes.com.br
>




Mais detalhes sobre a lista de discussão lista