[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