Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/11/2009, 21:07
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
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)