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

Luiz Henrique lhsevero em rpgsolucoes.com.br
Ter Dez 14 18:42:55 -03 2004


Marlon,

Valeu pela explicação. Vou estudar melhor esses 2 componentes!!
Se eu descobrir como saber se restaurou/gerou todo o backup aviso. Se você
descobrir antes, avisa.  ;-)


Obrigado
Luiz Henrique Severo d Oliveira
RPG Soluções
www.rpgsolucoes.com.br


------------------------------

Message: 20
Date: Tue, 14 Dec 2004 14:04:27 -0200
From: Marlon <marlon em multi-informatica.com.br>
Subject: Re: [firebase-br] Re: Recuperação/Backup (utilizando a MDO)
To: FireBase <lista em firebase.com.br>
Message-ID: <41BF0F0B.4030102 em multi-informatica.com.br>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

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