Whats new? | Login
Cadastre-se | Atendimento | RSS
 
Live chat by Netwatts
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos
Você está em: / canal .net [artigos]
   + .net:   artigos   |   vídeos   |    cursos   |    mais
 
 
Outras seções:
Home 
Entenda o site 
Revistas 
Canais 
Cursos 
Palestras 
Suporte 
Fórum 
Oportunidades 
 Todos os links 

 
  Ir para o Canal .net  
+Canais:
Canal Delphi 
Canal Java 
Canal .net 
Canal Banco de dados 
Canal Mobile 
Canal Ruby on Rails 
Canal PHP 
Canal ASP 
Canal WebDesign 
Canal Engenharia de Software 
Canal Linux 
Canal Scripting 
Canal Outros 
  Todo conteúdo DevMedia 

 
  ver cursos de .net  
+Cursos:
Cursos de Java 
Cursos de .net 
Cursos de Banco de dados 
Cursos de Delphi 
Cursos de Engenharia de Software 
Cursos de Ruby on Rails 
Cursos de ASP 
Cursos de WebDesign 
Cursos de PHP 
Cursos de PalmOS 
Cursos de Linux 
Cursos de Scripting 
  Formações completas 
  Todos os cursos 

 
Canal de conteúdo .net
Revista .net Magazine
Suporte .net
Formacoes completas .net
Palestras de .net
E-books de .net
Downloads de .net
 

+Revistas:
ClubeDelphi 
.net Magazine 
Java Magazine 
webMobile Magazine 
SQL Magazine 
Engenharia de Software Magazine 
  Edições anteriores impressas 
  Todas as revistas 


Este post foi publicado diretamente pelo autor e não foi revisado pela DevMedia.
[Fechar]
Este post está disponível somente para quem possui Créditos DevMedia. (Ele não está associado a nenhuma publicação DevMedia).


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 0,00 (assinante) ou R$ 0,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 0,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia


Sistema completo para Backup/Restore com Firebird - Parte II

Sistema completo para Backup/Restore com Firebird

Parte II - Restore

Na primeira parte deste artigo (http://www.devmedia.com.br/articles/viewcomp.asp?comp=4885), você viu como usar o componente TIBBackupService para criar uma aplicação com a opção de fazer o backup internamente sem a necessidade de usar um segundo programa para isso.

O que eu mostrarei agora, é como executar o restore do backup que a sua aplicação criou. O componente a ser usado agora é TIBRestoreService que também é nativo do Delphi 7 e pode ser encontrado na paleta interbase admin. A codificação não muda muito, veja.

 

procedure TFRestaurarBackup.BTRestaurarBackupClick(Sender: TObject);
begin
  try
    if not OpenDialog1.Execute then//se não selecionar o arquivo de backup
      Exit;                        //cancela o procedimento
    Memo1.Clear;
    BTRestaurarBackup.Enabled:=False;
    Memo1.Lines.Add('Preparando para restaurar o backup...');
    Memo1.Lines.Add('');

    with IBRestoreService1 do
    begin
      DMBanco.IBDB.Connected:=False;//desconecta da base
      DatabaseName.Clear;
      DatabaseName.Add(FPrincipal.EBase.Text);//caminho da base
      ServerName:=FPrincipal.EServ.Text;//nome do servidor
      BackupFile.Clear;
      BackupFile.Add(OpenDialog1.FileName);//caminho do arquivo de backup
      Protocol:=TCP;//protocolo de conexão
      Params.Clear;
      Params.Add('user_name=SYSDBA');//nome de usuário
      Params.Add('password=masterkey');//senha do usuário

      Options:=[];
      Options:=[CreateNewDB];

      {o bloco de if abaixo esta adicionando as opções de restauração de acordo com o que o usuário escolheu. Após esta listagem você encontra um link para um outro artigo onde você encontra mais informações sobre essas e outras opções de restauração}
      if CBDesativarIndices.Checked then
        Options:=Options+[DeactivateIndexes];
      if CBSemShadow.Checked then
        Options:=Options+[NoShadow];
      if CBSemValidar.Checked then
        Options:=Options+[NoValidityCheck];
      if CBUmaTabela.Checked then
        Options:=Options+[OneRelationAtATime];
      if CBSubstituir.Checked then
        Options:=Options+[Replace];

      {a propriedade verbose do TIBRestoreService especifica
      se durante o processo de restauração será retornado para a
      aplicação o detalhamento da execução}
      Verbose:=CBDetalhes.Checked;

      Memo1.Lines.Add('  Desativar indices: '+BoolToStr(CBDesativarIndices.Checked));
      Memo1.Lines.Add('  Restaurar arquivo espelho: '+BoolToStr(not CBSemShadow.Checked));
      Memo1.Lines.Add('  Validar regras de integridade: '+BoolToStr(not CBSemValidar.Checked));
      Memo1.Lines.Add('  Restaurar uma tabela por vez: '+BoolToStr(CBUmaTabela.Checked));
      Memo1.Lines.Add('  Nome do servidor: '+ServerName);
      Memo1.Lines.Add('');
      Active:=True;//ativa o servico de restauração, mais ainda nao inicia.
      Memo1.Lines.Add('');
      Memo1.Lines.Add('/***INICIO***\');
      Application.ProcessMessages;
      Memo1.Lines.Add('');

      try
        ServiceStart;//inicia o restore
        while not Eof do
        begin

          {assim como no backup, conforme a restauração vai sendo executada os detalhes da execução podem ser lidos através da função GetNextLine}
          Memo1.Lines.Add(GetNextLine);
        end;
      finally
      end;
      Active:=False;//desativa o serviço de restore
      Memo1.Lines.Add('');
      Memo1.Lines.Add('/****FIM****\');
   
end;
    Memo1.Lines.Add(''); Memo1.Lines.Add('');
    Memo1.Lines.Add('Backup restaurado com sucesso.');
    DMBanco.IBDB.Connected:=True;//conecta o sistema na base de dados
    BTRestaurarBackup.Enabled:=True;
  except
    on E: Exception do
    begin
      Memo1.Lines.Add('Ocorreu um erro inesperado. O restore não foi concluído.');
      Memo1.Lines.Add('Informações da exceção:');
      Memo1.Lines.Add('  '+E.Message);
      DMBanco.IBDB.Connected:=True;//conecta o sistema na base de dados

      BTRestaurarBackup.Enabled:=True;
    end;

  end;

end;

Listagem 1 – Restaurando o backup da base de dados

Você pode obter mais informações sobre o que são todas as opções de restauração utilizadas neste artigo e também as opções de backup, neste artigo: http://www.devmedia.com.br/articles/viewcomp.asp?comp=4877.

No arquivo de download você vai encontrar o exemplo completo incluindo o backup, feito na primeira parte do artigo.

Você viu que não há segredos para a execução de backup/restore. A codificação é simples e você ainda pode dar mais garantia de segurança para o seu cliente.





STAVARENGO, RAFAEL
Cinco anos de experiência com Delphi. Na 3º série do ensino superior. Portifólio: http://www.rafaelstavarengo.110mb.com/
Ver space do autor


Estatísticas deste post:
Visualizações:  1387
Favoritado:  2 vez(es)
 
Conteúdo:
Didática:
Utilidade:
2 0
Feedbacks: 2

  Central de Serviços:
Inclua seu próprio artigo! (ajuda)
Participe! Inclua um comentário
Adicionar este post a Favoritos
Marcar este post como lido/assistido
Inclua uma anotação pessoal (ajuda)
RSS Feeds
Versão para impressão



Participe! Inclua um comentário
[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


[Fechar]

Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
2009 - Todos os Direitos Reservados a DevMedia Group