ClipaTec Informática

Receba novidades por e-mail. Digite seu e-mail abaixo e clique no botão "Cadastrar"

Delivered by FeedBurner

19 de outubro de 2016

Restore da base de dados com Delphi e FireDac

delphi firedac restore

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:

delphi firedac restore

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:

delphi firedac restore

Pressione as teclas "Shift+Ctrl+C" para iniciarmos a implementação dos métodos. O método "HabilitarBotoes" será implementado da seguinte maneira:

delphi firedac restore

Ele será responsável por habilitar e desabilitar os botões conforme necessitamos.
Agora, implemente o método "GerarRestore" da seguinte maneira:

delphi firedac restore

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:

delphi firedac restore

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":

delphi firedac restore

Agora, no botão "Fechar", chame o comando "Close":

delphi firedac restore

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)

4 comments:

  1. Não funciona em firebird 3? encontrei o seguinte erro
    [FB]Expected backup version 1..10. Found 10
    unknown ISC error 336330835

    ResponderExcluir
    Respostas
    1. Se você estiver usando um caminho local, tente adicionar "localhost" antes ou o IP "127.0.0.1"

      Excluir
  2. não funciona para firebird 3? encontrei o seguinte erro
    [FB]Expected backup version 1..10. Found 10
    unknown ISC error 336330835

    ResponderExcluir
    Respostas
    1. 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

Visite nossa página de Política de comentarios antes de comentar para ter certeza de que seu comentário não será excluído! Lembre-se, assim que aprovarmos o teu comentário ele será publicado, por isso, não deixe de sempre visitar nosso blog e conferir nossa resposta ao seu comentário, abraço!