FoxPro/Visual FoxPro - Backup automatico de BD MySql desde VFP

 
Vista:
Imágen de perfil de Ever Antonio
Val: 20
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup automatico de BD MySql desde VFP

Publicado por Ever Antonio (24 intervenciones) el 20/10/2017 15:06:20
Estimados Colegas.
Necesito hacer copia de seguridad automatica de "Base de Datos" MySql desde Vfp, por ahi si pueden darme una mano con alguna rutina para hacer.
1 - Copiar BD.
2 - Restaurar BD.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Backup automatico de BD MySql desde VFP

Publicado por elhabraque (58 intervenciones) el 21/10/2017 14:52:24
Yo utilizo la siguiente instrucción MySQL dentro de un bucle en FoxPro que va recorreindo las tablas:

TEXT TO lxSQLInstruccion TEXTMERGE NOSHOW PRETEXT 2+4+8
SELECT <<lxCampos>> FROM <<lxTabla>>
INTO OUTFILE '<<lxFichero_A_Copiar>>'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY ''
ENDTEXT

SQLEXEC(lxConexion_Base_MySQL, lxSQLInstruccion)

donde lxCampos es la lista de campos de cada tablas (obviamente); puedes utilizar el asterisco, pero prefiero controlar el orden de campos porque pueda haberlos cambiado o porque esto me permite copiar y restaurar datos entre bases con diferente estructura por añadir nuevos campos.

Para restaurar las tablas, en otro bucle primero borro todas las tablas:

TEXT TO lxSQLInstruccion TEXTMERGE NOSHOW PRETEXT 2+4+8
TRUNCATE TABLE <<lxTabla>>
ENDTEXT

SQLEXEC(lxConexion_Base_MySQL, lxSQLInstruccion)

Y luego cargo los nuevos datos:

TEXT TO lxSQLInstruccion TEXTMERGE NOSHOW PRETEXT 2+4+8
LOAD DATA LOCAL INFILE '<<lxFichero_A_Recuperar>>'
IGNORE
INTO TABLE <<lxTabla>>
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY ''
(<<lxCampos>>)
ENDTEXT

SQLEXEC(lxConexion_Base_MySQL, lxSQLInstruccion)

Asegúrate de tener todos los permisos para las acciones a realizar y para usar archivos fuera del servidor local (para eso le aseguro que la carpeta destino donde guardar o recuperar los datos estén en un recurso compartido de forma que todos los equipos puedan acceder a ellos).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar