Tópico anterior Próximo tópico Novo tópico
VB / VBA
#496592 - 30/03/2021 16:13:39 | ||||
![]() FUTURA . Cadast. em:Maio/2004 ![]() |
Pessoal, geralmente os backups são configurados no server, mas tem alguns clientes pequenos, que usam o micro que é servidor e estação, e nestes, fazem o backup por um arquivo de lote, eu estou tentando colocar pra fazer direto no sistema, backup e compactação, mas não estou conseguindo fazer com que aguarde o arquivo de backup ser criado para executar o próximo passo, teria como ?
|
|||
#496593 - 30/03/2021 16:48:08 | ||||
![]() KERPLUNK RIO GRANDE DO SUL Cadast. em:Junho/2009 ![]() |
Você pode usar o Shell para isso:
Dim wsh As Object Set wsh = VBA.CreateObject('WScript.Shell') Dim waitOnReturn As Boolean: waitOnReturn = True Dim windowStyle As Integer: windowStyle = 1 wsh.Run 'C:\pasta\arquivo.bat', windowStyle, waitOnReturn Assim, o cursor só sai daquela última linha quando terminar o processo em lote. _______________________________________________________________________ Virei Oráculo! The end is nigh, be ready for the nukes! |
|||
#496594 - 30/03/2021 16:57:30 | ||||
![]() FUTURA . Cadast. em:Maio/2004 ![]() |
Entendi, eu na vdd não queria mais deixar esses arquivos .bat nos clientes, por isso pensei em fazer direto pelo sistema.
conexao.execute('backup database ............) aguardar finalizar, para dar sequência.. |
|||
#496595 - 30/03/2021 18:22:13 | ||||
![]() KERPLUNK RIO GRANDE DO SUL Cadast. em:Junho/2009 ![]() |
Seria melhor. Você pode inclusive fazer um programinha independente que faz isso.
_______________________________________________________________________ Virei Oráculo! The end is nigh, be ready for the nukes! |
|||
#496596 - 30/03/2021 18:47:11 | ||||
![]() FABRICIOWEB BELO HORIZONTE Cadast. em:Novembro/2011 ![]() |
folderBrowserDialog1.ShowDialog();
if (folderBrowserDialog1.SelectedPath != null) { System.IO.StreamWriter salvar = new System.IO.StreamWriter((@'mysql.bat')); salvar.WriteLine('@echo off'); salvar.WriteLine('for /f ' + (char)34 + 'tokens=1-4 delims=/ ' + (char)34 + ' %%a IN ('DATE /T') do (set MYDATE=%%a%%b%%c%%d)'); salvar.WriteLine('foR /f ' + (char)34 + 'tokens=1-2 delims=: ' + (char)34 + ' %%a in ('TIME /T') do (set MYTIME=%%ah%%bm)'); salvar.WriteLine('Set MYSQL_PATH=' + (char)34 + resultadolocal1 + (char)34); salvar.WriteLine('Set MYSQL_USER=' + UsuarioBanco); salvar.WriteLine('Set MYSQL_PASS=' + SenhaBanco); salvar.WriteLine('Set MYSQL_HOST=' + IpServidor); salvar.WriteLine('Set MYSQL_PORT=3306'); salvar.WriteLine('SET NOME_ARQUIVO=backupsistema.sql'); salvar.WriteLine('Set Arquivo=' + (char)34 + folderBrowserDialog1.SelectedPath + @'\%NOME_ARQUIVO%' + (char)34); salvar.WriteLine('Set Arquivo=' + (char)34 + folderBrowserDialog1.SelectedPath + @'\%NOME_ARQUIVO%' + (char)34); salvar.WriteLine('Set MYSQL_DATABASE=' + BancodeDados); salvar.WriteLine('@echo iniciando o backup...'); salvar.WriteLine('@echo.'); salvar.WriteLine(@'%MYSQL_PATH%\bin\mysqldump.exe -v -v -v --host=%MYSQL_HOST% --user=%MYSQL_USER% --password=%MYSQL_PASS% --port=%MYSQL_PORT% --protocol=tcp --force --allow-keywords --compress --add-drop-table --default-character-set=latin1 --hex-blob --result-file=%ARQUIVO% %MYSQL_DATABASE%'); salvar.WriteLine('@echo.'); salvar.WriteLine('@echo compactando o arquivo...'); salvar.WriteLine('@echo.'); salvar.WriteLine('@echo |TIME /T'); salvar.WriteLine('@echo.'); salvar.WriteLine('@echo.'); salvar.WriteLine('@echo Excluindo arquivo de apoio...'); salvar.WriteLine('@echo.'); salvar.WriteLine('@echo |TIME /T'); salvar.WriteLine('@echo.'); salvar.WriteLine('@echo finalizando o backup...'); salvar.WriteLine('@echo.'); salvar.WriteLine('del' + diretorio + @'mysql.bat'); salvar.Close(); var startInfo = new ProcessStartInfo('mysql.bat'); startInfo.WorkingDirectory = diretorio; Process proc = Process.Start(startInfo); } Eu crio direto do sistema assim |
|||
#496598 - 30/03/2021 19:01:47 | ||||
![]() FUTURA . Cadast. em:Maio/2004 ![]() |
Eu acrescentei o parâmetro checksum na string do backup, e agora esta aguardando, pois ele checa o arquivo ou paginas de dados , na sequência estou usando o verify, para ver a integridade do arquivo, se executo ele via prompt ou manager, ele retorna uma msg. Será que consigo pegar essa msg executando pelo sistema ?
conexao.execute('restore verifyonly from disk = '' & meuarquivo & ''') preciso pegar através de uma variável, qual foi a msg q o comando acima gerou. |
|||
Tópico anterior Próximo tópico Novo tópico