Criar Bat e Backup Automático MySQL

Nesta Quick Tips, irei mostra como podemos fazer duas coisas muito interessantes. A primeira é o backup automático com o Banco MySQL, e a segunda é montar um arquivo bat para isso.

Olá galera, nesta Quick Tips, irei mostra como podemos fazer duas coisas muito interessantes. A primeira é o backup automático com o Banco MySQL, e a segunda é montar um arquivo bat para isso.

Vamos criar uma unit, e salvar a mesma como uBackupMySQL, nela vamos implementar o código abaixo:

unit uBackupMySQL; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; Type TBackupMySQL = class private FUsuario: String; FSenha: String; FNomeArquivo: String; FNomeBancoDados: String; FPastaBackup : String; { private declarations } protected { protected declarations } public { public declarations } property Usuario : String read FUsuario write FUsuario; property Senha : String read FSenha write FSenha; property NomeArquivo : String read FNomeArquivo write FNomeArquivo; property NomeBancoDados : String read FNomeBancoDados write FNomeBancoDados; property PastaBackup : String read FPastaBackup write FPastaBackup; procedure ExecutarBackup; end; implementation { TBackupMySQL} procedure TBackupMySQL.ExecutarBackup; Var xArquivoBat : TStringList; begin Try xArquivoBat := TStringList.Create; xArquivoBat.Add('@echo off'); xArquivoBat.Add('@echo.'); xArquivoBat.Add('echo #################################################'); xArquivoBat.Add('echo #################################################'); xArquivoBat.Add('echo ### ###'); xArquivoBat.Add('echo ### ###'); xArquivoBat.Add('echo ### Backup automático ###'); xArquivoBat.Add('echo ### ###'); xArquivoBat.Add('echo ### ###'); xArquivoBat.Add('echo #################################################'); xArquivoBat.Add('echo #################################################'); xArquivoBat.Add('cd C:\Program Files\MySQL\MySQL Server 5.1\bin\'); xArquivoBat.Add('mysqldump.exe -u '+ FUsuario + ' -p'+FSenha +' --databases '+ FNomeBancoDados xArquivoBat.Add('pause'); xArquivoBat.SaveToFile('BackupMySQL.bat'); WinExec('BackupMySQL.bat', SW_NORMAL); Finally FreeAndNil(xArquivoBat); End; end; end.

Para testar o exemplo, podemos em qualquer outro formulário criar uma interface e passar os dados para as propriedades da classe. Veja um exemplo no clique de um TSpeedButton.

procedure TFrmBackupMySQL.SpeedButton1Click(Sender: TObject); Var BackupMySQL : TBackupMySQL; begin Try BackupMySQL := TBackupMySQL.Create; BackupMySQL.Usuario := EdtUsuario.Text; BackupMySQL.Senha := EdtSenha.Text; BackupMySQL.NomeArquivo := EdtNomeArquivo.Text; BackupMySQL.PastaBackup := EdtPastaDestino.Text; BackupMySQL.NomeBancoDados := EdtNomeBancoDados.Text; BackupMySQL.ExecutarBackup; Finally FreeAndNil(BackupMySQL); End; end;

Ao testarmos o exemplo, o mesmo irá criar um arquivo .bat junto com o exe, e executar o mesmo. Note que usei comandos para montar este arquivo do MS-DOS, como o comando pause por exemplo, que pausa o arquivo até que seja pressionado alguma tecla.

Artigos relacionados