AJUDA PARA MELHORAR CÓDIGO (DELPHI).

Delphi

08/11/2017

Boa tarde pessoal. Quero melhor esse código!. Por gentileza alguém pode me ajudar ???

Resumo: esse código é para copiar o banco de dados que é em access e salvar em qualquer outro lugar!.


procedure TFrm_principal.btn_copiaClick(Sender: TObject);

var

Origem, Destino: string;

begin

if MESSAGEBOX(Application.Handle, 'Deseja Fazer o Backup do Banco de Dados?', 'Por favor, confirme:', MB_ICONQUESTION + MB_YESNOCANCEL + MB_DEFBUTTON2) = ID_YES then

Origem := 'C:\\PROTOCOLOEH\\BDprotocolo.mdb';

Destino := 'D:\\COPIAS\\BackupBDprotocolo.mdb'; // Aqui eu quero criar a possibilidade salvar em qualquer lugar (pen drive etc).

ShowMessage('Backup efetuado com sucesso.');

if not CopyFile(PChar(Origem), PChar(Destino), false) then

ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino);

end;

end.
Mailson Janoca

Mailson Janoca

Curtidas 0

Melhor post

Natanael Ferreira

Natanael Ferreira

08/11/2017

Você pode utilizar um SaveDialog para o usuário escolher o local e o nome do arquivo de destino.

Teste este código, nele você cria, usa e depois destroi o SaveDialog no final:

procedure TFrm_principal.btn_copiaClick(Sender: TObject);
var
  Origem, Destino: string;
  SaveDialogo: TSaveDialog;
begin
  SaveDialogo := TSaveDialog.Create(Application);
  try
    if MESSAGEBOX(Application.Handle, 'Deseja Fazer o Backup do Banco de Dados?',
      'Por favor, confirme:', MB_ICONQUESTION + MB_YESNOCANCEL + MB_DEFBUTTON2) = ID_YES then
    begin
      SaveDialogo.Filter := 'Microsoft Access|*.mdb';
      SaveDialogo.DefaultExt := '.mdb';

      if SaveDialogo.Execute then
      begin
        Origem := 'C:\\\\PROTOCOLOEH\\\\BDprotocolo.mdb';
        Destino := SaveDialogo.FileName;

        if CopyFile(PChar(Origem), PChar(Destino), false) then
          ShowMessage('Backup efetuado com sucesso.')
        else
          ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino);
      end;
    end;
  finally
    FreeAndNil(SaveDialogo);
  end;
end;
GOSTEI 2

Mais Respostas

Mailson Janoca

Mailson Janoca

08/11/2017

Irmão Natanael Ferreira, seu código está perfeito, problemas resolvidos!!!. Muito obrigado! Deus te abençoe grandemente.
GOSTEI 0
POSTAR