aprediz12 Posted August 8, 2011 Report Share Posted August 8, 2011 Oi gente, tenho o seguinte comando que eu executo direto no cmd do windows: mysqldump -u root -psenha -x -e -A > c:\Pasta1\backupTeste.sqlisso gera um backup do meu banco MySQL, só que eu queria uma forma de fazer isso via linha de comando diretamento no delphijá tentei algumas coisas tipo usar o WinExec, mas sem sucesso.se alguém puder da um help, ficarei muito grato.há, eu to usando Delphi 2010 com Windows 7Valeu! Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted August 8, 2011 Report Share Posted August 8, 2011 só que eu queria uma forma de fazer isso via linha de comando diretamento no delphijá tentei algumas coisas tipo usar o WinExec, mas sem sucesso.WinExec('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >c:\Pasta1\backupTeste.sql' ,SW_HIDE);minhasenha = senha do bancodados = nome do banco de dadosabraço Quote Link to comment Share on other sites More sharing options...
0 aprediz12 Posted August 9, 2011 Author Report Share Posted August 9, 2011 (edited) Deu certinho, valeu Jhonas, mas deixa eu abusar um pouco....sei que da pra fazer isso mas não sei como:criar o backup zipado, pode ser qualquer extensão.é que vou criar uma rotina pra fazer esse backup automatico num horario programado, todo dia será criado um arquivo, só que esse arquivo na extensão *.sql, tem 21 MB, e zipado (manualmente) ficou com 1.97 MBValeu... Edited August 9, 2011 by aprediz12 Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted August 9, 2011 Report Share Posted August 9, 2011 veja http://www.clubedainformatica.com.br/site/...oda-base-mysql/ou http://www.google.com.br/search?hl=pt-BR&a...l2645l2-5.4l9l0abraço Quote Link to comment Share on other sites More sharing options...
0 aprediz12 Posted August 10, 2011 Author Report Share Posted August 10, 2011 (edited) outra coisa que não deu certo,quero usar um TSaveDialog pra salvar esse arquivo de backup, e to usando um parametro mas ta dando errovar vFile : string; begin if SaveDialog1.execute then begin vFile := OpenDialog1.Filename; WinExec('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+vFile ,SW_HIDE); end; end; já tentei usar tipo: '...dados >'+pChar(vFile),SW_HIDE); tentei tambem: pAnsiChar... mas nem compila, da erro: Incopatible types: 'string' and 'PAnsiChar' tentei assim tambem, desse forma compila, executa mas não cria o arquivo: var comando : string; // variant; begin if SaveDialog1.execute then begin comando := 'cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+SaveDialog1.FileName; Winexec(PAnsiChar(comando),SW_HIDE); end; Edited August 10, 2011 by aprediz12 Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted August 11, 2011 Report Share Posted August 11, 2011 o correto é :procedure TForm1.Button1Click(Sender: TObject); var vFile : PAnsiChar; s : string; begin if SaveDialog1.execute then begin S := 'C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin'; // caminho para o MYSQL ( pasta bin ) ChDir(s); vFile := PAnsiChar('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+PAnsiChar(SaveDialog1.Filename)); WinExec(vFile ,SW_HIDE); end; end;OBS: se voce não colocar o caminho para o executavel ( mysqldump.exe ) não funcionaabraço Quote Link to comment Share on other sites More sharing options...
0 aprediz12 Posted August 11, 2011 Author Report Share Posted August 11, 2011 o correto é :procedure TForm1.Button1Click(Sender: TObject); var vFile : PAnsiChar; s : string; begin if SaveDialog1.execute then begin S := 'C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin'; // caminho para o MYSQL ( pasta bin ) ChDir(s); vFile := PAnsiChar('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados >'+PAnsiChar(SaveDialog1.Filename)); WinExec(vFile ,SW_HIDE); end; end;OBS: se voce não colocar o caminho para o executavel ( mysqldump.exe ) não funcionaabraçoOlá Jhonas valeu pela atenção, só que não funcionou...não deu erro, mas tambem não gerou o arquivo.obrigado. Quote Link to comment Share on other sites More sharing options...
0 aprediz12 Posted August 11, 2011 Author Report Share Posted August 11, 2011 (edited) resolvi dessa forma:var origem, destino : string; begin WinExec('cmd /c mysqldump -u root -p --password=minhasenha -c -e --databases dados > C:\dir_qualquer\bkp001.sql',SW_HIDE); origem := 'C:\dir_qualquer\bkp0001.sql'; if SaveDialog1.execute then begin destino := SaveDialog1.FileName; MoveFile(PChar(origem),PChar(destino)); end else DeleteFile('C:\dir_qualquer\bkp001.sql');o arquivo é gerado numa pasta que eu defini no caso (C:\dir_qualquer\)ae o arquivo é movida pra onde quizer atravez do SaveDialog.Valeu..... Edited August 11, 2011 by aprediz12 Quote Link to comment Share on other sites More sharing options...
Question
aprediz12
Oi gente, tenho o seguinte comando que eu executo direto no cmd do windows: mysqldump -u root -psenha -x -e -A > c:\Pasta1\backupTeste.sql
isso gera um backup do meu banco MySQL, só que eu queria uma forma de fazer isso via linha de comando diretamento no delphi
já tentei algumas coisas tipo usar o WinExec, mas sem sucesso.
se alguém puder da um help, ficarei muito grato.
há, eu to usando Delphi 2010 com Windows 7
Valeu!
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.