Ejecutar comando mysqldump desde VFP

782 views
Skip to first unread message

JJ

unread,
Nov 21, 2012, 4:20:03 PM11/21/12
to publice...@googlegroups.com
Hola Grupo:
 
Estoy tratando de ejecutar el siguiente comando:

oShell = createobject("WScript.Shell")

oShell.Run("cmd /c C:\Archivos de programa\mysql\MySQL Server 5.5\bin>mysqldump -u root -psql55 adm contrato >C:\RespaldoBD\contrato.sql",0,.t.)

El mismo no me da error, y me genera el archivo contrato.sql pero cuando lo busco en la carpeta RespaldoBD el mismo esta creado 0KB y cuando yo ejecuto este mismo comando desde la pantalla de DOS si se crea completo. Yo pienso que el problema puede ser que no este reconociendo la ruta. No se en realidad, pero el asunto es que si genera el contrato.sql

Alguien ha ejecutado comandos como este??? Que puede estar sucediendo???

 

Gracias de Antemano!!!!

Bendiciones

 

Jeanette

Walter R. Ojeda Valiente

unread,
Nov 21, 2012, 4:24:00 PM11/21/12
to publice...@googlegroups.com
¿Por qué no pruebas así:

oShell.Run("mysqldump -u root -psql55 adm contrato C:\RespaldoBD\contrato.sql", 0, .T.)

?

Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Wed, 21 Nov 2012 16:50:03 -0430
Subject: [vfp] Ejecutar comando mysqldump desde VFP
From: jeanette...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

JJ

unread,
Nov 21, 2012, 4:36:38 PM11/21/12
to publice...@googlegroups.com
Gracias Walter,
Te cuento que cuando lo hago asi, se queda colgado sin regresar a VFP y cuando le coloco 1 para ver la pantalla de DOS lo que me muestra es el directorio
 
C:\Archivos de programa\mysql\MySQL Server 5.5\bin
 
y queda esperando que se le coloque el comando y eso porque le coloque antes SET DEFAUL TO el directorio, porque sino mostraria cualquier otro.
 
Asi tampoco funciona : (

Walter R. Ojeda Valiente

unread,
Nov 21, 2012, 4:50:01 PM11/21/12
to publice...@googlegroups.com
¿No te estarán faltando o sobrando espacios después de -u y de -p?

¿No te están sobrando parámetros?


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Wed, 21 Nov 2012 17:06:38 -0430
Subject: Re: [vfp] Ejecutar comando mysqldump desde VFP
From: jeanette...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

JJ

unread,
Nov 21, 2012, 4:50:54 PM11/21/12
to publice...@googlegroups.com
No, yo lo ejecuto por fuera de VFP y me funciona desde DOS

--
 
 
 

Walter R. Ojeda Valiente

unread,
Nov 21, 2012, 4:51:54 PM11/21/12
to publice...@googlegroups.com
¿Y estás segura de que escribes EXACTAMENTE lo mismo? ¿sin ninguna diferencia?


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Wed, 21 Nov 2012 17:20:54 -0430

Subject: Re: [vfp] Ejecutar comando mysqldump desde VFP
From: jeanette...@gmail.com
To: publice...@googlegroups.com

No, yo lo ejecuto por fuera de VFP y me funciona desde DOS

El 21 de noviembre de 2012 17:20, Walter R. Ojeda Valiente <wr...@hotmail.com> escribió:
¿No te estarán faltando o sobrando espacios después de -u y de -p?

¿No te están sobrando parámetros?


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Wed, 21 Nov 2012 17:06:38 -0430
Subject: Re: [vfp] Ejecutar comando mysqldump desde VFP
From: jeanette...@gmail.com
To: publice...@googlegroups.com

Gracias Walter,
Te cuento que cuando lo hago asi, se queda colgado sin regresar a VFP y cuando le coloco 1 para ver la pantalla de DOS lo que me muestra es el directorio
 
C:\Archivos de programa\mysql\MySQL Server 5.5\bin
 
y queda esperando que se le coloque el comando y eso porque le coloque antes SET DEFAUL TO el directorio, porque sino mostraria cualquier otro.
 
Asi tampoco funciona : (


El 21 de noviembre de 2012 16:54, Walter R. Ojeda Valiente <wr...@hotmail.com> escribió:
oShell.Run("mysqldump -u root -psql55 adm contrato C:\RespaldoBD\contrato.sql", 0, .T.)


--
 
 
 

--
 
 
 


--
 
 
 

JJ

unread,
Nov 21, 2012, 4:55:24 PM11/21/12
to publice...@googlegroups.com
si lo copio y lo pego, fijate que despues del directorio

C:\Archivos de programa\mysql\MySQL Server 5.5\bin

que es donde se queda yo le pego el resto:

mysqldump -u root -psql55 adm contrato >C:\RespaldoBD\contrato.sql

y me funciona perfecto me crea el archivo contrato.sql con 5859 KB

 



--
 
 
 

JJ

unread,
Nov 21, 2012, 4:56:28 PM11/21/12
to publice...@googlegroups.com
algo esta pasando que se queda en el directorio pero no ejecuta correcto el mysqldump

JJ

unread,
Nov 21, 2012, 4:59:54 PM11/21/12
to publice...@googlegroups.com
hay un comando del DOS que es el Append lo voy a revisar..... vamos a ver... ya por hoy me tengo que ir... continuare mañana... ya cierran la oficina.
gracias!!

JJ

unread,
Nov 22, 2012, 8:19:41 AM11/22/12
to publice...@googlegroups.com
Buenos Dias, probe con el Append y tampoco funciona, porfa si alguien sabe como hacerlo, le agradezco toda su ayuda.
 
Saludos!!
 
Jeanette

 

Víctor Hugo Espínola Domínguez

unread,
Nov 22, 2012, 8:32:44 AM11/22/12
to publicesvfoxpro
Hola Jeanette

oShell.Run("cmd /c C:\Archivos de programa\mysql\MySQL Server 5.5\bin>mysqldump -u root -psql55 adm contrato >C:\RespaldoBD\contrato.sql",0,.t.)

Saludos.
Víctor.

JJ

unread,
Nov 22, 2012, 8:33:21 AM11/22/12
to publice...@googlegroups.com
si asi esta, pero no funciona


 
--
 
 
 

Jairo Miranda

unread,
Nov 22, 2012, 8:34:18 AM11/22/12
to publice...@googlegroups.com

Existe un odbc para fox  que permite hacer conexiones con  datos de mysql . este permite hacer una conexión desde visual fox a los datos de mysql  y trabajas todo en fox .

 

Creo que es mysql_odbc.msi

 

Espero te sirva

JM

--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 22, 2012, 8:36:48 AM11/22/12
to publicesvfoxpro
Hola Jeanette

Debería ser:

oShell.Run("cmd /c C:\Archivos de programa\mysql\MySQL Server 5.5\bin\mysqldump -u root -psql55 adm contrato >C:\RespaldoBD\contrato.sql",0,.t.)


Saludos.
Víctor.

JJ

unread,
Nov 22, 2012, 8:39:13 AM11/22/12
to publice...@googlegroups.com
El problema no es la instruccion como tal, porque yo la corro desde fuera desde DOS y me funciona perfecto, pero cuando la corro desde VFP no hace nada se queda en el directorio  C:\Archivos de programa\mysql\MySQL Server 5.5\bin

--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 22, 2012, 8:45:42 AM11/22/12
to publicesvfoxpro
Hola Jeanette

>si asi esta, pero no funciona

En base a esta respuesta yo interpreto que tu comando VFP es:

oShell.Run("cmd /c C:\Archivos de programa\mysql\MySQL Server 5.5\bin>mysqldump -u root -psql55 adm contrato >C:\RespaldoBD\contrato.sql",0,.t.)

El símbolo ">" que está entre "bin" y "mysqldump" debe ser "\".

Saludos.
Víctor.

JJ

unread,
Nov 22, 2012, 8:48:40 AM11/22/12
to publice...@googlegroups.com
Hola Victor Hugo, acabo de probarlo tambien y se queda igual en el directorio:
 
C:\Archivos de programa\mysql\MySQL Server 5.5\bin
si hacer nada mas
--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 22, 2012, 8:51:03 AM11/22/12
to publicesvfoxpro
Hola Jeanette

Muéstranos el comando completo.

Saludos.
Víctor.



--
 
 
 

Mauricio R. Molinero

unread,
Nov 22, 2012, 8:52:57 AM11/22/12
to publice...@googlegroups.com
estoy probando el codigo de Jeannete y pasa lo mismo.

El comando RUN /N funciona bien.

Debe ser tema de permisos de WSH.

Googleo un poco mas y vuelvo :)

Saludos!

Mauricio R. Molinero,

JJ

unread,
Nov 22, 2012, 8:53:57 AM11/22/12
to publice...@googlegroups.com
Hola Mauricio pero lo puedo hacer tambien con el comando RUN /N ???????????


 

Mauricio R. Molinero,

--
 
 
 

Programas ToP

unread,
Nov 22, 2012, 8:54:27 AM11/22/12
to publice...@googlegroups.com
Hola,
Nosotros lo hacemos así:

LOCAL CADENA
CADENA = '\TOP\COA\MYSQLDUMP -hxxx.xx.xx.xxx -uUSUARIO -pCLAVE -B ' + RELACION + ' > "' + ALLTRIM(THISFORM.I_RUTA.Value) + STRTRAN(THISFORM.I_NOMBRE.Value,":","-") + '"'
*
**** LA CADENA A EJECUTAR POR RUN NO PUEDE EXCEDER LOS 220 CARACTERES
*
IF LEN(ALLTRIM(CADENA)) > 220
    MESSAGEBOX ('ATENCION: LA RUTA ESPECIFICADA ES DEMASIADO LARGA. UBIQUE LA CARPETA RECEPTORA DIRECTAMENTE EN LA RAIZ DE UN DISCO DURO, DELE UN NOMBRE CORTO Y VUELVA A INTENTARLO',0+16,'AVISO DE ERROR')
    RETURN .F.
ENDIF
*
**** EJECUCION DEL BACKUP
*
RUN &CADENA /N

Notas:
RELACION es una variable que contiene las BD que el usuario desea respaldar con un backup y que elige de una relación
THISFORM.I_RUTA.Value es la ruta donde desea dejar alojado el archivo de backup
THISFORM.I_NOMBRE.Value es el nombre del archivo de backup que es un nombre mas una fecha mas una hora.

A nosotros nos funciona perfectamente con MySQL 5.x
Es importante que el mysqldump corresponda a los bits del MySQL, si es de 32 el mysqldump debe ser de 32 y si es de 64 debe ser el del 64

Espero que te sirva
Saludos cordiales

Manuel Tovar Ruiz
Barranquilla - COLOMBIA

Antes de imprimir este correo piensa en la contribución que puedes hacer al medio ambiente.
Please consider your environmental responsibility and commitment before printing.
--
 
 
 

JJ

unread,
Nov 22, 2012, 8:55:50 AM11/22/12
to publice...@googlegroups.com
Define SW_SHOW_MAXIMIZED 3
oShell = createobject("WScript.Shell")
oShell.Run("cmd /c C:\Archivos de programa\mysql\MySQL Server 5.5\bin>mysqldump -u root -psql55 adm contrato >C:\RespaldoBD\contrato.sql",0,.t.)


 

JJ

unread,
Nov 22, 2012, 8:58:19 AM11/22/12
to publice...@googlegroups.com
Gracias Manuel lo voy a probar, pero te cuento que  me queda la espinita del Shell porque deberia funcionar y no solo quedarse en el directorio justo antes de la instruccion mysqldump
 
Gracias!!!

--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 22, 2012, 9:10:50 AM11/22/12
to publicesvfoxpro
Hola Jeanette

>cmd /c C:\Archivos de programa\mysql\MySQL Server 5.5\bin>mysqldump

Esa porción de comando le dice al DOS que ejecute un programa cuyo nombre es "bin"(.exe,.com,.bat) y que se encuentra en el directorio "C:\Archivos de programa\mysql\MySQL Server 5.5\".

El error está en el uso del símbolo ">" que en la ventana de comandos del DOS significa: estoy esperando que escribas algún comando.
Pero cuando tú lo escribes significa: El resultado del comando que está a la izquierda guárdalo en el archivo cuyo nombre está a continuación.

El mencionado símbolo es lo que en la jerga se denomina PROMPT y lo puedes cambiar con el comando PROMPT.

Saludos.
Víctor.

Mauricio R. Molinero

unread,
Nov 22, 2012, 9:16:24 AM11/22/12
to publice...@googlegroups.com
Esto funciona!

lcEx = '"C:\Archivos de programa\mysql\MySQL Server 5.5\bin\mysqldump.exe" "-uroot" "-p123456" "MyDB" "-rc:\test.sql"'
oShell = createobject("WScript.Shell")
oShell.Run(lcEx,0,.t.)

Saludos!

Mauricio R. Molinero,

JJ

unread,
Nov 22, 2012, 9:29:13 AM11/22/12
to publice...@googlegroups.com
Gracias ya pruebo ambas cosas....
 
Probe el codigo que mando Manuel Tovar y si funciona aunque no esta generando bien el sql, pero eso ya debe ser otra cosa.
 
Ya les cuento!!
 


 

Saludos!

Mauricio R. Molinero,

--
 
 
 

JJ

unread,
Nov 22, 2012, 9:33:32 AM11/22/12
to publice...@googlegroups.com
siiiiiiiiiiiiiiiii Mauriciooooooooooooo FUNCIOOOOOONAAAAAAAA.......!!!! QUE EMOCIONNNNNN!!! POR FINNNNN!!! GRACIIIIIAAASSSS!!!
 
Gracias todos por siempre estar dispuestos a ayudar!!
 
MUUUUAAAAA!!!
 
: )

ZeRoberto

unread,
Nov 23, 2012, 2:37:38 PM11/23/12
to publice...@googlegroups.com
Funciona bien pero el problema si esta instalado en otro servidor , como saber la carpeta donde esta instalado el MySQL.
 
 
Saludos


Saludos!

Mauricio R. Molinero,

--
 
 
 

Mauricio R. Molinero

unread,
Nov 23, 2012, 2:44:06 PM11/23/12
to publice...@googlegroups.com
Yo ejecuto antes esta instruccion y pregunto si existe el Dir. Sobre todo para saber si esta en el server, o que version usa por si hay 2 instalados (\MySQL 5.x)

SHOW VARIABLES LIKE 'basedir'

Saludos!

Mauricio R. Molinero,
Reply all
Reply to author
Forward
0 new messages