Backup no FB/IB
Uma das ferramentas mais importantes em um sistema comercial, sem dúvida nenhuma, é a realização do backup/restore da base de dados, não só por questões de segurança como também de performance. E para o FB/IB existem ótimas ferramentas free e comerciais que realizam essa tarefa. O que irei mostrar neste artigo é como criar, no Delphi, uma aplicação simples que realize o backup/restore de uma base de dados.
Utilizaremos os componentes da paleta InterBase Admin, mais precisamente os componentes IBBackupService e IBRestoreService. Crie uma aplicação Delphi e adicione os seguintes componentes (além dos mencionados anteriormente): um PageControl, quatro BitBtns, quatro Labels, quatro Edits, um ImageList e um OpenDialog. Distribua os componentes no formulário conforme as Figuras 1 e 2.
Figura 1. Aba do backup do banco de dados
Figura 2. Aba do restore do banco de dados
No OpenDialog altere a propriedade Filter, conforme a Figura 3.
Figura 3. Alterando a propriedade Filter do OpenDialog
Dê um duplo clique no IBBackupService1 e configure-o conforme a Figura 4.
Figura 4. Configurando o IBBackupService
Vamos codificar a aba Backup primeiramente, adicionando no botão (...) que localiza o banco, o seguinte código:
if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;
Caso seja escolhido um arquivo na caixa de diálogo (método Execute), o Edit será preenchido com o arquivo escolhido. No botão Backup digite o seguinte código:
with IBBackupService1 do
begin
Attach;
DatabaseName := Edit1.Text;
BackupFile.Add(Edit2.Text);
Active := True;
ServiceStart;
ShowMessage('Backup realizado com sucesso');
end;
O código é bem simples, atribuímos na propriedade Database o arquivo escolhido, indicamos o arquivo de backup (BackupFile.Add), ativamos o componente e iniciamos o serviço para realizar o backup. Rode a aplicação, localize um arquivo e indique no Edit qual o local do arquivo de backup (arquivo GBK). Veja na Figura 5 a aplicação em execução.
Figura 5. Aplicação realizando o backup do banco de dados
A técnica para o restore é praticamente a mesma. O botão para localizar o arquivo de backup deve ter o mesmo código do botão que localizar o banco (apenas alterando o Edit que receberá o nome do arquivo de backup). No botão Restore temos o seguinte código:
with IBRestoreService1 do
begin
Attach;
Options := [Replace];
DatabaseName.Add(Edit4.Text);
BackupFile.Add(Edit3.Text);
Active := True;
ServiceStart;
ShowMessage('Restore realizado com sucesso');
end;
A diferença maior em relação ao código anterior é a opção para sobrescrever o arquivo do banco (Replace). Rode a aplicação (não esqueça de configurar o IBRestoreService1, semelhante ao IBBackupService1), localize o arquivo de backup (não esqueça de alterar a opção Tipo de arquivo, na caixa de diálogo), indique o local onde a base de dados será restaurada e pronto seu backup está restaurado (Figura 6).
Figura 6. Aplicação realizando o restore do banco de dados
Já possuímos um projeto que realiza backup/restore. Poderíamos adicionar horários pré-estabelecidos para o backup/restore ser realizado (tipo um agendador). Quem quiser incrementar o projeto, mande suas sugestões para lucianopimenta@clubedelphi.net, que estarei disponibilizando os melhores projetos nessa coluna. Quem tiver outras idéias também pode enviar.
A aplicação completa pode ser baixada em: //www.devmedia.com.br/sqlmagazine/Downloads/