AGUARDAR FINALIZAR COMANDO DE BACKUP

 Tópico anterior Próximo tópico Novo tópico

AGUARDAR FINALIZAR COMANDO DE BACKUP

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#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


Membro da equipe
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 Orculo!
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


Membro da equipe
Seria melhor. Você pode inclusive fazer um programinha independente que faz isso.

_______________________________________________________________________
Virei Orculo!
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


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário