Ir para conteúdo

POWERED BY:

Arquivado

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

maquinavirtual

Receber data ao nome do arquivo

Recommended Posts

Estou usando firebird e delphi 7 componentes rxlib.

Possuo esta rotina para realizar backup que ao clicar no botao

ela gera um arquivo de backup com o nome CopiaSegAgentel.fdb

Gostaria que gerasse algo assim: CopiaSegAgenteldatadodia.fdb

 

procedure TFormCopiaSeg.BTNbackupClick(Sender: TObject);
begin
 if febanco.FileName = '' then
 begin
    //Showmessage('Indique onde esta seu Banco');
    messagebeep(16);
    messagebox(FormCopiaSeg.Handle,'Informe aonde esta'#13'localizado o Banco de Dados!','AgenTel - Copia de Seguranca',mb_Ok+MB_ICONQUESTION);
    febanco.SetFocus;
    Abort;
 end;
 if debackup.Text = '' then
 begin
    //Showmessage('Indique onde irá Gravar o Backup');
    messagebeep(16);
    messagebox(FormCopiaSeg.Handle,'Informe o local aonde'#13'ira gravar a Copia'#13'de Seguranca!','AgenTel - Copia de Seguranca',mb_Ok+MB_ICONQUESTION);
    deBackup.SetFocus;
    Abort;
 end;
  with IBBackupService1 do
  begin
    Params.Clear;
    BackupFile.Clear;
    ServerName := 'localhost';
    LoginPrompt := False;
    Params.Add('user_name=SYSDBA');
    Params.Add('password=masterkey');
    Active := True;
    try
      Verbose := True;
      Options := [NonTransportable, IgnoreLimbo];
      DatabaseName := feBanco.FileName;
      BackupFile.Add(deBackup.Text+'/'+'CopiaSegAgenTel.fdb');
      ServiceStart;
      While not Eof do
        mmBackup.Lines.Add(GetNextLine);
    finally
      Active := False;
    end;
  end;
    //ShowMessage('Backup Efetuado com Sucesso');
    messagebeep(16);
    messagebox(FormCopiaSeg.Handle,'Copia de Seguranca realizada com Sucesso!','AgenTel - Copia de Seguranca',mb_Ok+MB_ICONQUESTION);
end;

Esta e a linha a ser modificada.

BackupFile.Add(deBackup.Text+'/'+'CopiaSegAgenTel.fdb');

Aguardo resposta. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se é isso http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

declara uma variavel pra receber o nome

 

var
  nNome: string;
.
.
.
{
 YYYY = ano MM = mes DD = dia HH = hora MM = minuto SS = segundo
}
nNome := 'CopiaSegAgenTel_'+FormatDateTime('YYYYMMDDHHMMSS', now)+'.fdb';
BackupFile.Add(deBackup.Text+'/'+nNome);

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se é isso http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

declara uma variavel pra receber o nome

 

var
  nNome: string;
.
.
.
{
 YYYY = ano MM = mes DD = dia HH = hora MM = minuto SS = segundo
}
nNome := 'CopiaSegAgenTel_'+FormatDateTime('YYYYMMDDHHMMSS', now)+'.fdb';
BackupFile.Add(deBackup.Text+'/'+nNome);

Desta maneira que voce sugeriu ele realizou o backup corretamente porem salvou o registro gerado com o nome

de nNome.

Compartilhar este post


Link para o post
Compartilhar em outros sites

maquinavirtual, posta o seu código pra mim ver

 

Esta funcionando, porem salvo desta forma:

 

CopiadeSegurancaAgentel20100127171647.fdb

 

O codigo e este:

 

procedure TFormCopiaSeg.BTNbackupClick(Sender: TObject);
var
nNome:string;
begin
 if febanco.FileName = '' then
 begin
    //Showmessage('Indique onde esta seu Banco');
    messagebeep(16);
    messagebox(FormCopiaSeg.Handle,'Informe aonde esta'#13'localizado o Banco de Dados!','AgenTel - Copia de Seguranca',mb_Ok+MB_ICONQUESTION);
    febanco.SetFocus;
    Abort;
 end;
 if debackup.Text = '' then
 begin
    //Showmessage('Indique onde irá Gravar o Backup');
    messagebeep(16);
    messagebox(FormCopiaSeg.Handle,'Informe o local aonde'#13'ira gravar a Copia'#13'de Seguranca!','AgenTel - Copia de Seguranca',mb_Ok+MB_ICONQUESTION);
    deBackup.SetFocus;
    Abort;
 end;
  with IBBackupService1 do
  begin
    Params.Clear;
    BackupFile.Clear;
    ServerName := 'localhost';
    LoginPrompt := False;
    Params.Add('user_name=SYSDBA');
    Params.Add('password=masterkey');
    Active := True;
    try
      Verbose := True;
      Options := [NonTransportable, IgnoreLimbo];
      DatabaseName := feBanco.FileName;
      nNome := 'CopiaSegAgenTel_'+FormatDateTime('YYYYMMDDHHMMSS', now)+'.fdb';
      //BackupFile.Add(deBackup.Text+'/'+'CopiaSegurancaAgenTel.fdb');
      BackupFile.Add(deBackup.Text+'/'+nNome);
      ServiceStart;
      While not Eof do
        mmBackup.Lines.Add(GetNextLine);
    finally
      Active := False;
    end;
  end;
    //ShowMessage('Backup Efetuado com Sucesso');
    messagebeep(16);
    messagebox(FormCopiaSeg.Handle,'Copia de Seguranca realizada com Sucesso!','AgenTel - Copia de Seguranca',mb_Ok+MB_ICONQUESTION);
end;

Se possivel gostaria que salvasse na ordem

CopiaSegurancaAgentel27012010171647.fdb

nomedacopia.dia.mes.ano.hora.minuto.segundo

obs: Os . sao apenas para nao ficar misturado apenas para entendimentonao sendo necessario.

 

Aguardo resposta, obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

maquinavirtual, Para ter o nome dessa maneira basta alterar a ordem da formatação, olhe o que significa aquelas letras:

 YYYY = ano MM = mes DD = dia HH = hora MM = minuto SS = segundo

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.