Backup da base de dados com Delphi e FireDac
Autor: ClipaTec Informática | Publicado: 2016-10-06T12:08:00-03:00






Olá terrestres. Neste artigo, vamos montar um esquema de backup de uma base de dados FireBird.

Backup sempre foi uma preocupação tanto da parte do desenvolvedor, quanto da parte do usuário.

Claro que nem sempre o usuário se preocupa em fazer backup, mas sempre o sistema é o culpado, se um dia, o banco corromper, não é verdade?

Então, vamos aprender como implementar um recurso de backup, simples, usando o FireDac.

Existem diversas maneiras. Alguns preferem usar o aplicativo WinRar, para este função, no qual, simplesmente, gera um arquivo&nbsp;compactado com o banco de dados. Outros somente fazem uma cópia da base de dados para um determinado local. E outros, geram o arquivo de backup que os&nbsp;próprios SGBDs oferecem. No caso do FireBird, o famoso "FBK".

Neste exemplo, trabalharemos com a geração do arquivo "FBK" que o próprio FireBird oferece, usando alguns componentes da paleta&nbsp;FireDac.

Com base neste exemplo, você poderá incrementar mais recursos, como por exemplo, opção de compactar, agendamentos, etc.

Crie um novo projeto em Delphi e adicione os componentes: FDIBBackup, FDPhysFBDriverLink, FDGUIxWaitCursor, Memo (name = mmoProgresso) e dois Button (name btnIniciar, btnFechar).

Selecione o componente FDIBBackup e ligue na propriedade "DriverLink" o componente FDPhysFBDriverLink.

Tente montar um layout parecido com este:





Obs: o componente ImageList (imgs16x16) está sendo utilizado apenas como repositório das imagens que estão sendo usadas nos botões.

Agora, vamos para as implementações. Declare os seguintes métodos na seção "Private" do formulário:





Vamos implementar primeiro o método "HabilitarBotoes", segue a implementação:





A única coisa que fazemos neste método, é atribuir para a propriedade "Enabled" dos botões o parâmetro da função, que por padrão é "True" conforme especificamos na declaração do método.

Este método será útil quando for iniciado o processo do backup, desabilitaremos os botões, e só habilitaremos novamente, no final do processo, ou caso, der erro e o processo não for concluído.

Agora, vamos implementar o método "GerarBackup". Segue implementação:





Neste método, toda implementação ficará dentro de um bloco de tratamento (try...except), caso ocorrer algum erro durante o processo, simplesmente emitiremos uma mensagem para o usuário.

No início do método, desabilitamos os botões, conforme dito anteriormente.

Alimentamos as propriedades do componente FDIBBackup, que dispensa comentários, visto que, na imagem acima, já está explicando o que significa cada propriedade.

Após chamar o método "Backup" do componente, o processo verdadeiramente se inicia. Se ocorrer tudo bem, uma mensagem é exibida para o usuário, informando que deu tudo certo, e em seguida, volta habilitar os botões. Como por padrão definimos no método "HabilitarBotoes" que seu valor é "True", por este motivo, não passamos nenhum valor para o parâmetro neste ponto do método.

Se por acaso, ocorrer algum erro, o método entrará no bloco de exceção, onde habilitamos os botões e mandamos uma mensagem de erro para o usuário, inclusive, com a mensagem capturada pela classe de exceção do bloco "Try...except".

Simples, prático e objetivo. Desta forma, temos o nosso backup, pronto, implementado. Porém, seria interessante, acompanharmos o processo não?

É exatamente por isso que colocamos um "memo" no projeto. Ele mostrará cada processo realizado.

Para isso, selecione o "memo" e na propriedade "ScrollBars", selecione a opção "ssVertical".

Legal, agora, vá até o evento "OnProgress" do componente "FDIBBackup" e implemente-o da seguinte forma:





A única coisa que fazemos é adicionar no "memo", as linhas de mensagens retornadas pelo serviço de backup do banco. Desta forma, conseguiremos visualizar o processo que está sendo realizado.

Ufa, chegamos ao fim deste artigo, ficou um tanto massante, porém, não tem como ficar com dúvida né? Mas se tiver dúvida, deixe seu comentário que ajudaremos com todo prazer.

Muito bem, agora basta chamar o método no botão. Para isso, de um duplo clique sobre o botão "Iniciar" e chame o método "GerarBackup", e no botão "Fechar", chame o comando "Close", conforme mostra a imagem:





Muito bem gente, algumas dicas que você pode incrementar, é que antes de começão o processo, você pode adicionar uma linha ao "memo" informando que o processo de backup está iniciando, e no final, outra linha informando que o backup foi&nbsp;concluído&nbsp;com sucesso, ou com o erro. Isso poderia substituir as mensagens que exibimos. Também é interessante trabalhar em cima do nome do arquivo de backup, colocando data e hora por exemplo. Fica a critério. Vocês são livres para&nbsp;personalizar&nbsp;da maneira que lhe&nbsp;convém. Abraços e até o próximo.

Download

- Download do código fonte do projeto;



(Por ClipaTec Informática)