miércoles, 20 de enero de 2010

TMYSQL (backup-restore)

Amigos,

He adicionado el modulo de respaldos y restauración a la clase TMySQL, sin mas preámbulo aquí la manera de usarlo.

** BACKUP **

aSelect := { "barras", "productos", "usuarios" }
cFile := "incos.sql"
lDrop := .t.
lOver := .t.
MSGRun( "Generando respaldo, espere por favor...",, {|oDlgsql| nItem := oCon:backup( aSelect, cFile, lDrop, lOver, oDlgsql )} )

Aquí la descripción de los datos a pasar.

aSelect.- Arreglo unidimensional conteniendo la lista de tablas a respaldar.
cFile.- Nombre de archivo con extensión en donde se guardará el respaldo.
lDrop.- Valor lógico donde se define si se incluye la instrucción DROP TABLE y la creación de la tabla.
lOver.- Valor lógico donde indica si el archivo de respaldo se sobreescribe o no.
oDlgsql.- Objeto en este caso el del MSGRUN para visualizar el avance del respaldo.

Valores que retorna en este caso guardado en la variable nItem.

0.- Ejecutado correctamente.
1.- No hay contenedor seleccionado (base de datos)
2.- Si el archivo de respaldo existe
3.- No selecciono tablas para respaldar.

** RESTORE **

aSelect := { "barras" }
cFile := "incos.sql"
MSGRun( "Restaurando información, espere por favor...",, {|oDlgsql| nItem := oCon:restore( aSelect, cFile, oDlgsql )} )

Descripción de datos a pasar.

aSelect.- Arreglo unidimensional que contiene las tablas a restaurar. Cabe mencionar que se puede seleccionar que tablas restaurar.
cFile.- Nombre del archivo que contiene el respaldo.
oDlgsql.- Objeto en este caso el del MSGRUN para visualizar el avance del respaldo.

AQUI LA DESCARGA

Sería importante comentar su uso y si está funcionando todo bien. Acá hicimos pruebas, pero algo pudo pasarse.

Espero comentarios pues son inyecciones de ánimo.

Saludos

William Morales

6 comentarios:

  1. FELICIDADES!! Excelente trabajo
    un aporte que a muchos les va a favorecer
    saludos
    paco

    ResponderEliminar
  2. Paco,

    Gracias por tus palabras, comentarios como el tuyo son las vitaminas para seguir.

    Esperemos se animen más a comentar sobre el uso o cualquier duda que puedan tener.

    Saludos

    ResponderEliminar
  3. Los campos BLOB como los tratas?

    ResponderEliminar
  4. Anónimo,

    No entiendo, pero no trato mal a mis prójimos, mucho menos a los campos.

    jjajjajjajja

    Sin ánimo de ofender, al respaldar no hay distinción. Sólo identifico número, fechas y lo demás como texto.

    Uso campos tipo BLOB y TEXT.

    Saludos

    ResponderEliminar
  5. Hola William!

    Estaba viendo las rutinas para el backup y restore y se ve realmente muy sencillo, pero estoy viendo que en el arreglo unidimensional ponemos las tablas para el respaldo y las que queremos restaurar, tengo una pregunta, en caso de que queramos respaldar o restaurar todas las tablas de la base de datos, ¿Existe una forma que no se tengan que poner el nombre de todas las tablas? algo así como cuando haces un select y usas el * por ejemplo.

    Aah y en si queremos respaldar procedimientos y funciones aplicaría igual que las tablas con solo el hecho de escribir el nombre se respalda o en esos no aplica el respaldo?

    Saludos y Exito!

    ResponderEliminar
  6. Seria verificar la clase y checar que efectivamente tenga esa propiedad, sino es asi, la desarrollaremos y lo de los procedimientos almacenados no los tenemos contemplados, lo haremos a la brevedad.

    saludos

    ResponderEliminar