Olá clipatequeiros. Há uns dias atrás publicamos um artigo onde montamos um aplicativo básico de backup, usando componentes da paleta "FireDac" e banco "FireBird".
Recebemos alguns feedbacks pedindo para criarmos um artigo ensinando o restore do banco. Então, resolvemos atender a estes pedidos e aqui estamos.
A restauração da base de dados é muito simples, da mesma forma que o backup também é. Neste exemplo vamos pegar o arquivo de backup gerado "fbk" e restaurá-lo para um arquivo "fdb", isto é, o banco montado em si com todas os dados.
Então, crie um novo projeto em Delphi e adicione os componentes FDIBRestore, FDPhysFBDriverLink, FDGUIxWaitCursor, Memo (name = mmoProgresso) e dois Button (name btnIniciar, btnFechar).
Selecione o componente FDIBRestore e ligue na propriedade "DriverLink" o componente FDPhysFBDriverLink.
Monte um layout parecido com este na imagem abaixo:
Repare que é idêntico ao layout que montamos no aplicativo de backup. Apenas algumas alterações foram feitas.
Vamos declarar nossos métodos, para isso, vá até a seção "Private" do formulário e declare:
Pressione as teclas "Shift+Ctrl+C" para iniciarmos a implementação dos métodos. O método "HabilitarBotoes" será implementado da seguinte maneira:
Ele será responsável por habilitar e desabilitar os botões conforme necessitamos.
Agora, implemente o método "GerarRestore" da seguinte maneira:
Note que toda implementação está dentro de um bloco de tratamento (try...except), para tratarmos os possíveis erros. Claro que por este exemplo ser algo simples o tratamento será apenas imprimir uma mensagem para o usuário, para informá-lo.
Não vamos detalhar as explicações das implementações, porque é exatamente igual nosso tutorial sobre o backup, apenas foi alterado algumas linhas de código. Caso tenha dúvida, leia nosso artigo sobre backup com FireDac, ou deixe seu comentário que ajudaremos.
Na imagem está bem explicado cada linha, no final do artigo você encontra para download o fonte deste projeto.
Ao chamar o método "Restore", o processo de restauração da base de dados será iniciado, da mesma forma que fizemos com o backup, é legal acompanharmos todo esse processo, então vamos implementar o evento do componente "FDIBRestore".
Antes, selecione o componente "memo" e altere a propriedade "ScrollBars" para "ssVertical".
Agora sim, vá até o evento "OnProgress" do componente "FDIBRestore" e faça a seguinte implementação:
OK, agora conseguiremos visualizar todo o processo realizado pelo banco de dados FireBird.
Finalizando, vamos chamar os métodos nos botões, então, de um duplo clique sobre o botão "Iniciar" e chame o método "GerarRestore":
Agora, no botão "Fechar", chame o comando "Close":
Muito bem, chagamos ao fim de mais um artigo, se você quiser, pode estudar a possibilidade de colocar uma barra de progresso, caso não queira o processo no "memo".
Não é legal usar os dois, porque ficaria um tanto redundante. Desta forma que fizemos, mostrando no "memo", a dica que damos é no início do processo, adicionar uma linha ao "memo" informando que o processo de restore está sendo iniciando, e no final, outra linha informando que o restore foi concluído. Alguma dúvida? Posta ai. Um forte abraço e até o próximo.
Download
(Por ClipaTec Informática)
Não funciona em firebird 3? encontrei o seguinte erro
ResponderExcluir[FB]Expected backup version 1..10. Found 10
unknown ISC error 336330835
Se você estiver usando um caminho local, tente adicionar "localhost" antes ou o IP "127.0.0.1"
Excluirnão funciona para firebird 3? encontrei o seguinte erro
ResponderExcluir[FB]Expected backup version 1..10. Found 10
unknown ISC error 336330835
Não testamos ainda com esta versão do Firebird. A partir da versão 3 houve algumas mudanças no SGBD, mas faremos testes e criaremos um artigo novo com Firebird 3. Abraço
Excluir