quinta-feira, 3 de abril de 2014

Post - 2 | Desenvolvendo uma tela de Backup no Delphi



Olá galera, hoje ensinarei vocês a criarem uma tela para efetuar backups em seus bancos de dados. Todos sabem como é importantíssima essa função em todo e qualquer programa, pois é através dela que conseguimos copiar de modo correto e seguro todas as nossas informações.
Algumas pessoas utilizam o famoso Copiar + Colar - (Ctrl + C e Ctrl + V), mas vale lembrar que nesse processo alguns dados se perdem além de correr o risco de corromper alguns (senão todos) os dados do banco. Então vamos colocar a mão na massa.
Antes de iniciarmos, gostaria de informar que os códigos abaixo foram desenvolvidos com o Firebird. 
Inicie criando uma tela similar a que é mostrada abaixo:


No Form contem:
3 Labels
2 Edits
1 DirectoryListBox
2 Buttons
1 OpenDialog
1 IBBackupService 

Com os componentes já inseridos, vamos partir para a programação. No botão Pesquisar coloque:

OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName); //Pega o caminho da aplicação
  if OpenDialog1.Execute then //se opendialog for executado, então ele abre a janela para buscar o arquivo
     edit1.Text := OpenDialog1.FileName; //edit1 herda o caminho do opendialog


Em seguida coloque o código abaixo no botão Efetuar Backup:


   if edit1.Text = '' then //se edit1 estiver vazio aparece um erro de advertência.
   begin
       //mensagem q aparecerá se o edit1 estiver vazio.
       Application.MessageBox('Atenção, arquivo para efetuar backup não informado!','Atenção.:',MB_APPLMODAL + MB_OK + MB_ICONWARNING);
       Exit;
   end;
   if edit2.Text = '' then //se edit2 estiver vazio aparece um erro de advertência.
   begin
       //mensagem q aparecerá se o edit2 estiver vazio.
       Application.MessageBox('Atenção, nome do arquivo não foi informado!','Atenção.:',MB_APPLMODAL + MB_OK + MB_ICONWARNING);
       Exit;
   end;
   try
     Screen.Cursor := crHourGlass;
     with IBBackupService1 do
     begin
         ServerName := 'Local Server'; //nome do servidor do banco
         LoginPrompt := false; //desabilita o preenchimento de senha
         Params.Add('user_name=SYSDBA'); //nome do usuário do banco - Nesse caso estou utilizando o Firebird
         Params.add('password=masterkey'); //senha do banco de dados - Firebird
         Active := true;
         Verbose := true;
         DatabaseName := edit1.Text; //pega o texto que estará no edit1
         BackupFile.Add(DirectoryListBox1.Directory+'\'+edit2.Text); //separa com \ (barra) o diretório
         ServiceStart; //inicia o processo do backup
      end;
    finally
         showMessage('Backup efetuado com sucesso!'); //se ocorrer tudo bem a mensagem aparece
         Screen.Cursor := crDefault;
    end;
    Application.ProcessMessages;

Clique aqui para baixar o fonte
Pronto! Feito isso seu projeto estará efetuando o backup do seu banco de dados.
Qualquer dúvida contatem-me por e-mail: wesleymenezzes@gmail.com
Obrigado e não esqueçam de curtir e compartilhar nossos posts. Deus abençoe.

Um comentário:

  1. Este IBService realiza backup de banco mssql? Se não, conhece algum componente que faça isto?

    ResponderExcluir