Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maquinavirtual

[Resolvido] backup firebird gera erro (restaurar)

Recommended Posts

Preciso de ajuda na hora de restaurar o backup, gera erro dizendo que nao pode ser restaurado pois o banco esta em uso. A copia do backup ele esta fazendo corretamente.

Peguei este projeto de backup neste link:

 

http://uploaddearquivos.com.br/download/Backup.zip

 

Usando este codigo abaixo no meu projeto

procedure TFormPrincipal.FormClose(Sender: TObject;
  var Action: TCloseAction);
BEGIN //pergunta ao encerrar o aplicativo
  {begin
    messagebeep(16);
    if messagebox(formPrincipal.Handle,'Deseja realmente encerrar'#13'o programa? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then
     abort;
  end;}

  begin
    messagebeep(16);
    if messagebox(formPrincipal.Handle,'Deseja realizar uma Copia de'#13'Seguranca dos registros cadastrados? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then
     begin
       //FormPrincipal.Close;
       Application.Terminate;
     end
    else
     begin
       FormCopiaSeg := TFormCopiaSeg.create ( application );
       try
        FormCopiaSeg.ShowModal
        finally
        FormCopiaSeg.Release;
        FormCopiaSeg := nil;
       end;
       DTM.IBDagentel.Close;
       //FormPrincipal.Close;
     end;
    //else
     //Close;
  end;

END;

Ao fechar a aplicacao ele chama a formBackup ate ai esta tudo bem.

Quando vou restaurar o backup gera o erro:

 

EIBInterbaseerror could not drop database caminho do banco de dados (database might be in use)

Imagino eu que o banco deve estar sendo utilizado por isso gera o erro e nao deixa restaurar,

o que devo fazer? Aguardo resposta. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

maquinavirtual, você tem duas opções, fechar a conexão com o banco, para que seja substituído ao restaurar, ou trocar o nome do arquivo que vai ser gerado ao restaurar o backup

Compartilhar este post


Link para o post
Compartilhar em outros sites

maquinavirtual, você tem duas opções, fechar a conexão com o banco, para que seja substituído ao restaurar, ou trocar o nome do arquivo que vai ser gerado ao restaurar o backup

 

beleza amigo,

 

Mas como posso fechar o banco, porem criei este codigo:

 

procedure TFormPrincipal.FormClose(Sender: TObject;
  var Action: TCloseAction);
BEGIN //pergunta ao encerrar o aplicativo
  {begin
    messagebeep(16);
    if messagebox(formPrincipal.Handle,'Deseja realmente encerrar'#13'o programa? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then
     abort;
  end;}

  begin
    messagebeep(16);
    if messagebox(formPrincipal.Handle,'Deseja realizar uma Copia de'#13'Seguranca dos registros cadastrados? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then
     begin
       //FormPrincipal.Close;
       Application.Terminate;
     end
    else
     begin
       FormCopiaSeg := TFormCopiaSeg.create ( application );
       try
        FormCopiaSeg.ShowModal
        finally
        FormCopiaSeg.Release;
        FormCopiaSeg := nil;
       end;
       DTM.IBDagentel.Close;
       //aqui fecha o banco de dados
       //mas dessa maneira assim mesmo
       //gera o erro que me referi no
       //primeiro post (restauracao)    
     end;
    //else
     //Close;
  end;

END;

Aguardo uma ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TFormPrincipal.FormClose(Sender: TObject;

var Action: TCloseAction);

BEGIN //pergunta ao encerrar o aplicativo

{begin

messagebeep(16);

if messagebox(formPrincipal.Handle,'Deseja realmente encerrar'#13'o programa? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then

abort;

end;}

 

begin

messagebeep(16);

if messagebox(formPrincipal.Handle,'Deseja realizar uma Copia de'#13'Seguranca dos registros cadastrados? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then

begin

//FormPrincipal.Close;

Application.Terminate;

end

else

begin

FormCopiaSeg := TFormCopiaSeg.create ( application );

try

{

fechar ele antes de fazer o backup/restore ;)

isso se nessa tela você nao usa-lo

}

DTM.IBDagentel.Close;

FormCopiaSeg.ShowModal

finally

FormCopiaSeg.Release;

FormCopiaSeg := nil;

end;

DTM.IBDagentel.Close;

//aqui fecha o banco de dados

//mas dessa maneira assim mesmo

//gera o erro que me referi no

//primeiro post (restauracao)

end;

//else

//Close;

end;

 

END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TFormPrincipal.FormClose(Sender: TObject;
  var Action: TCloseAction);
BEGIN //pergunta ao encerrar o aplicativo
  {begin
    messagebeep(16);
    if messagebox(formPrincipal.Handle,'Deseja realmente encerrar'#13'o programa? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then
     abort;
  end;}

  begin
    messagebeep(16);
    if messagebox(formPrincipal.Handle,'Deseja realizar uma Copia de'#13'Seguranca dos registros cadastrados? ','AgenTel - Sair',mb_yesno+MB_ICONQUESTION)= idno then
     begin
       //FormPrincipal.Close;
       Application.Terminate;
     end
    else
     begin
       FormCopiaSeg := TFormCopiaSeg.create ( application );
       try
       {
          fechar ele antes de fazer o backup/restore ;)
          isso se nessa tela você nao usa-lo
        }
        DTM.IBDagentel.Close; 
        FormCopiaSeg.ShowModal
        finally
        FormCopiaSeg.Release;
        FormCopiaSeg := nil;
       end;
       DTM.IBDagentel.Close;
       //aqui fecha o banco de dados
       //mas dessa maneira assim mesmo
       //gera o erro que me referi no
       //primeiro post (restauracao)    
     end;
    //else
     //Close;
  end;

END;

Valeu amigo!!!

Funcionou direitinho!!!

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.