Hola a todos. (Nota: parece una pregunta sobre base de datos, pero no lo es, es sobre la funcion Shell)
Tengo una inquietud. Estoy haciendo un sencillo programita para hacer respaldo y restauracion de una base de datos (Firebird).
Comentario: Para el uso adecuado de respaldo y restauración de una BD Firebird a de usar el programa GBak que viene en la instalacion de Firebird. Este comando o programa permite hacer sin problemas el respaldo en caliente.
Y basta con solo crear dos botones, uno para hacer el respaldo y el otro para recuperar la bd a partir del archivo backup.
Hice esto:
En el boton Respaldo
Dim RetVal
RetVal = Shell("c:\Archivos de Programa\Firebird\Firebird_2_1\BIN\gbak -v -t -user YVANB -password miclave c:\0006.fdb c:\0006.fbk", 0)
y en el boton Restauracion:
Dim RetVal
RetVal = Shell("c:\Archivos de Programa\Firebird\Firebird_2_1\BIN\gbak -c -v -user YVANB -password miclave c:\0006.fbk c:\0006.fdb", 0)
Luego le pongo adornos. Mi duda viene aqui. Cuando mando la orden no me entero el "tiempo" que tarda en crearse o restaurarse el archivo, es decir, cuando entro a la linea RetVal = Shell.... pasa inmediatamente a la siguiente linea y RetVal ya tiene un valor que me indica que si se ejecuto GBak pero cuando veo a la par el explorador de windows el archivo se ha creado un tiempillo después, es decir, GBak se tomo un tiempito en crear el archivo y mi aplicación no se entero.
¿Hay alguna forma de saber que se completo la ejecucion del programa invocado con el Shell en VB6?
La verdad que con solo el Shell yo creo que no, solo se me ocurre hacer un artificio (como siempre).
Poner un timer y preguntar por cada ciclo si ya existe el archivo para que pueda mandar un mensaje al usuario de que el proceso se completo, mientras tanto le pondre un relojito de arena o un progressbar o un cartel de "Esperate".
Hago esto porque hay cada usuario!!!, de pronto manda la orden de backup y si se tratara de una BD de 400 megas va a tardar un tiempo en crearse el archivo y el atolondrado puede apagar la PC.
Tampoco me sirve mucho poner el valor del Shell de 0 a 1 (final del shell) porque no quiero marear al usuario con una ventana DOS.
Que opinan de la idea del timer??? o si tuvieran alguna otra mejor idea lo agradecería mucho me lo indiquen.
Abrazos