Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Mysql + vb6 + mysqldump

Estas en el tema de Mysql + vb6 + mysqldump en el foro de Bases de Datos General en Foros del Web. hola gente y maestros de la magia de la programacion, hoy les hago una consulta despues de estar una semana tratando de hacer un backup ...
  #1 (permalink)  
Antiguo 18/11/2009, 23:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Sonrisa Mysql + vb6 + mysqldump

hola gente y maestros de la magia de la programacion, hoy les hago una consulta despues de estar una semana tratando de hacer un backup con vb6 + mysql. no pude hacer el bendito backup. asi q queria habrir el tema para q entre todos hagamos un codigo en comun, q a la gente le sirva ya q yo no lo pude hacer. he leido por ahi del mysqldump ta todo bien con el ejecutale este, pero como lo hago desde visual basic 6.

tengo estos codigo q lei por ahi:
backup
mysqldump --opt --password=**** --user=**** data_base>copia_base.sql
Restaurar

mysql --password=** --user=**** data_base<copia_base.sql

la duda se plantea cuando lo llamo del vb6 ya que tengo un boton en el cual al hacer le evento click deberia hacer el backup pero no lo hace.
bueno amigos el tema queda abierto y bueno haber si podes hacer un codigo para hacer el bendito backup y restaurar. Gracias
  #2 (permalink)  
Antiguo 19/11/2009, 05:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mysql + vb6 + mysqldump

Mira, el código puesto está bien escrito, por lo que el problema no está allí. En todo caso deberías consultar en el foro de Visual Basic cómo hacer para invocar un proceso DOS de este tipo, ya que no debes olvidarte que el mysqldump es en realidad un ejecutable de consola y no de entorno gráfico.
Yo lo uso sin problemas, pero lo hago desde VB.Net 2003, por lo que hay suficientes diferencias como para que no te resulte muy funcional. SI quieres, te lo paso.

Hay, si, un detalle que debes considerar: Si no está incluido en el PATH del sistema la ruta de acceso al mysqldump, entonces deberás incluirla en el comando que envías, o simplemente el sistema no lo encontrará.
Eso es algo que puede estar pasando, porque el instalador de MySQL no incluye la ruta en el PATH a menos que se lo indiques expresamente. Si esto es lo que está pasando, entonces la línea deberíacontener algo como esto:
Cita:
C:\Archivos de programa\MySQL\MySQL Server 5.0\bin\mysqldump.exe --opt --password=**** --user=**** data_base>copia_base.sql
en un caso, y:
Cita:
C:\Archivos de programa\MySQL\MySQL Server 5.0\bin\mysql.exe --password=** --user=**** data_base<copia_base.sql
en el otro (suponiendo que el archivo .sql esté en el mismo sitio C:\Archivos de programa\MySQL\MySQL Server 5.0\bin\. Si está en otra parte, deberás incluir la ruta al archivo también).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/11/2009, 19:55
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Mysql + vb6 + mysqldump

hola amigo gnzsoloyo gracias por tu respuesta y si me interesa la aplicacion q tengas hecha asi la paso a vb6 gracias
  #4 (permalink)  
Antiguo 19/11/2009, 21:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mysql + vb6 + mysqldump

Código vb.net:
Ver original
  1. Imports MySql.Data.Common
  2. Imports MySql.Data.MySqlClient
  3. Imports System.IO
  4.  
  5.  
  6. Public Class BaseDeDatos
  7.  
  8.     ' Genera un backup para el estado actual de la base de datos.
  9.     Public Function GenerarBackup(ByVal directorio As String) As Boolean
  10.         ' -----------------------------------------------------------
  11.         Dim NombreBackup As String = "Backup_" & DateTime.Now.ToString("yyyyMMddhhmmss")
  12.         Dim Comando As String
  13.         Comando = """" & Application.StartupPath & "\mysqldump.exe" & """" & " -u" & UserName & " -p" & PasWord & " --host=" & IpHost & " --routines=TRUE --opt  --single-transaction fulmar > " & """" & oWorkDisk & "Backups\" & NombreBackup & ".sql"""
  14.         Try
  15.             Dim myProcess As New Process
  16.             myProcess.StartInfo.FileName = "cmd.exe"
  17.             myProcess.StartInfo.UseShellExecute = False
  18.             myProcess.StartInfo.WorkingDirectory = oWorkDisk
  19.             myProcess.StartInfo.RedirectStandardInput = True
  20.             myProcess.StartInfo.RedirectStandardOutput = True
  21.             myProcess.StartInfo.CreateNoWindow = True
  22.             myProcess.Start()
  23.             Dim myStreamWriter As StreamWriter = myProcess.StandardInput
  24.             Dim mystreamreader As StreamReader = myProcess.StandardOutput
  25.             myStreamWriter.WriteLine(Comando)
  26.             myStreamWriter.Close()
  27.             myProcess.Wait For Exit()
  28.             myProcess.Close()
  29.         Catch ex As MySqlException
  30.             oLogWriter.Escribir("Excepción MySQL en GenerarBackup()" & vbNewLine & ex.Message & vbNewLine & ex.StackTrace.ToString)
  31.             Return False
  32.         Catch ex As Exception
  33.             SinDatos = True
  34.             oLogWriter.Escribir("Excepción en GenerarBackup()" & vbNewLine & ex.Message & vbNewLine & ex.StackTrace.ToString)
  35.             Return False
  36.         End Try
  37.         Return True
  38.     End Function
  39.  
  40. End Class

Variables declaradas en el Módulo:
Código vb.net:
Ver original
  1. Friend oWorkDisk As String = Environment.GetLogicalDrives(0)
  2. Friend IpHost, UserName, PasWord As String

Este método requiere que en el PATH del sistema esté presente la rut aal /bin de MySQL.

Nota: Tuve que poner en una línea, por separado Wait For Exit porque aparentemente es alguna frase reservada en el funcionamiento de los posts y me la suprime. Obviamente va sin espacios.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 19/11/2009, 21:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Mysql + vb6 + mysqldump

Gracias amigo voy haber como me las ingenio para pasarlo a vb6 :apla uso: y los aplausos para vos
  #6 (permalink)  
Antiguo 19/11/2009, 21:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mysql + vb6 + mysqldump

Me olvidé de aclararte un detalle: oLogWriter es una instancia de un objeto de una clase mía denominada Log que lo que hace es volcar a un archivo de logs todos los errores que se van capturando en las excepciones.
Además, verás que recibe un parámetro que nunca usa. Eso es porque antes tenía definido que se especificara el directorio de volcado, pero en el modelo actual de la aplicación el esquema de carpetas es fijo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:13.