[firebase-br] utilizando o gbak

Sandro Souza escovadordebits em gmail.com
Seg Dez 29 12:39:12 -03 2008


Bom dia/tarde Cássio.

Acredito que sua aplicação já está executando o gbak com a opção "-v"
conforme nosso amigo Gustavo sugeriu.

Além disso, tente redirecionar a saída do gbak para um arquivo texto
qualquer, e em seguida, leia esse arquivo texto, excluindo-o em seguida, ou
seja, tente executar "gbak -v (outras opções) > C:\Temp\saida.txt", e logo
após terminar a execução do gbak, você pode ler o arquivo
"C:\Temp\saida.txt", copiando seu conteúdo para a sua aplicação.

Se for seguir por esse caminho, existem várias maneiras de sua aplicação
detectar quando o gbak encerrou sua execução, por exemplo:

1 - Assim que executar o gbak, periodicamente (a cada segundo, por exemplo)
tentar abrir o arquivo executável do gbak ("C:\Arquivos de
programas\Firebird\Firebird_2_5\bin\gbak.exe" por exemplo) no modo de
leitura e escrita com acesso exclusivo. Se você não conseguir, então o gbak
ainda estará sendo executado, se conseguir, ele terminou sua execução, e
sendo assim, você apenas fecha esse arquivo e processa o arquivo texto
gerado.

2 - Você pode criar um arquivo de lote ("backup.bat" por exemplo) que
contenha algumas linhas de texto, contendo os comandos para executar os
seguintes passos:

2.1 - Excluir o arquivo "C:\Temp\Saída.txt", caso já exista ("del
C:\Temp\Saída.txt" por exemplo).

2.2 - Executar o "gbak -v (outras opções) > C:\Temp\Saída.tmp".

2.3 - Renomear o arquivo "C:\Temp\Saída.tmp" para "C:\Temp\Saída.txt" ("ren
C:\Temp\Saída.tmp Saída.txt" por exemplo).

2.4 - Excluir o próprio arquivo de lote ("del backup.bat" por exemplo).

E aí seria seria apenas questão de aguardar que apareça o arquivo
"C:\Temp\Saída.txt" para processá-lo e deletá-lo em seguida.

São apenas sugestões, e é claro que devem existir meios mais eficientes de
fazer isso.

Se você desejar executar o gbak (ou qualquer outra aplicação) sem que sua
respectiva janela apareça, procure utilizar a função "ShellExecute" passando
a constante "sw_Hide" em seu último parâmetro.

Espero ter ajudado mais que atrapalhado.

2008/12/29 Cássio <cassio.hc em gmail.com>

> Blza.
> Mas o verbose aparece num prompt de comando. gostaria de saber se tem como
> eu transferir isso para uma caixa de texto da minha aplicação.
>
> vlw.
>
> Gustavo Moda escreveu:
>
>  verbose.
>>
>> gbak -v
>>
>> abracos
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista