Haciendo y Restaurando Backups de Mysql con Gambas

Bueno despues de muchas lunas vuelvo a escribir sobre Gambas lamento haber tenido abandonado el tema durante mucho tiempo y dedicarme a postear otras cosas pero espero retomar con fuerza y ayudar a quienes tengan alguna duda con este lenguaje de paso que tambien aprendemos juntos listo entonces hecha la aclaracion manos a la obra.
El asunto es bastante sencillo resulta que necesitamos hacer backups de nuestra base de datos y poder restaurarlos posteriormente en caso de que suceda algun problema asi que creamos una interfaz grafica como esta.

Bueno la interfaz es bastante intuitiva(eso espero XD) asi que vamos a ver una porcion de codigo, cuando le damos click al boton respaldar.

Dialog.Title = "Guardar archivo"
Dialog.Path = "."
'Filtro para tomar solamente extensiones sql
Dialog.Filter = ["*.sql", "Ficheros sql"]
'Variables.CFG_BD_PASS es una variable donde almaceno el password de la base de datos, desde un modulo Variables
pass = " --password=" & Variables.CFG_BD_PASS & " "
IF NOT Dialog.SaveFile() THEN
	ruta = Dialog.Path
ENDIF
	'redireccion es la ruta donde se va a guardar el backup le agregamos el simbolo > como operador de redireccionamiento redireccion = " > " & ruta
	'Usamos SHELL para correr el proceso en este caso mysqldump que es el que realmente hace todo el trabajo para mayor informacion sobre este comando remitirse  a la documentacion de Mysql
	proceso = SHELL "mysqldump -u " & Variables.CFG_BD_USUARIO & pass & Variables.CFG_BD_NAME & redireccion FOR READ

Con lo que obtendriamos la siguiente ventana.


Con lo que inmediatamente guardamos nuestro backup con el nombre que le querramos asignar.
Si queremos restaurarlo el procedimiento es analogo salvo el comando de mysql que es el que se usa para restaurar

Dialog.Title = "Elija una ubicacion"
Dialog.Path = "."
Dialog.Filter = ["*.sql", "Ficheros sql"]
pass = " --password=" & Variables.CFG_BD_PASS & " "
IF NOT Dialog.OpenFile() THEN
	ruta = Dialog.Path
ENDIF
	redireccion = " < " & ruta
	proceso = SHELL "mysql -u " & Variables.CFG_BD_USUARIO & pass & Variables.CFG_BD_NAME & redireccion FOR READ


Y listo eso es todo asi de simple como se habran dado cuenta quien realmente hace el trabajo es mysql lo unico que he hecho con gambas es la interfaz grafica, haciendo uso de la orden SHELL para ejecutar los comandos.
Saludos y hasta la proxima.

Anuncios