Visual Basic para Aplicaciones - AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 09/05/2018 22:33:36
Buenas tardes busco un programador para realizar unas mejoras a mi sistema basado en visual basic 6 sp6 y mysql.

Consiste en un sistema de venta de loterias el cual ya esta funcionando online con la base de datos en un VPS.

Los detalles a mejorar son los siguientes

1. Cuando se interrumpe la conexion a Internet y el cliente esta realizando o llenando el formulario de la jugada, arroja el error:

"Error -2147467259 MySQL server has gone away". Lo que deseo es que al restablecerse el servicio de internet, los clientes no pierdan la informacion de los formularios y el programa no se cierre y contiunue ejecutandose sin novedad.

2. Y la peticion de cada jugada realiza comparaciones con un limite para no exceder el monto de venta por cada apuesta, y como se realiza remotamente lo hace muy lento.

Entre otros detalles por ahora menos relevantes.
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
Imágen de perfil de gilman
Val: 138
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por gilman (47 intervenciones) el 10/05/2018 17:56:44
Esto debería ir en VB, pero bueno...

Debes poner control de errores en cada sitio donde se pueda producir el error, cuando se produzca el error entonces debes actuar en consecuencia, esperando a que la conexión vuelva para volver a intentarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 10/05/2018 21:46:08
Agradecido padre pero realmente todo el desarrollo de mi programa fue dando las indicaciones hasta que me quede sin programador y quedan algunos detalles por ajustar, he leido pero soy muy novato, me gustaria que alguien viera el funcionamiento y me ayudara a ajustar el codigo para tratar de solucionar los detalles
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
Imágen de perfil de gilman
Val: 138
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por gilman (47 intervenciones) el 11/05/2018 09:29:06
Es que sin tener el código es muy dificil ser mas concreto de lo que he sido en el comentario anterior.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 11/05/2018 12:39:55
Buen día amigo te puedo facilitar el código para que veas el funcionamiento y los detalles que deseo mejorar
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
Imágen de perfil de gilman
Val: 138
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por gilman (47 intervenciones) el 11/05/2018 14:54:19
Ponlo como adjunto y vere que se puede hacer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 11/05/2018 18:43:57
AL EJECUTAR TE PEDIRA LOS DATOS DEL SERVIDOR ME ESCRIBE POR PRIVADO PARA ENVIARTELOS
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
Imágen de perfil de gilman
Val: 138
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por gilman (47 intervenciones) el 12/05/2018 09:59:52
No es necesario que me des los datos de acceso al servidor, y por otro lado no serviría de nada, ya que el proyecto requiere el uso de varios controles personalizados que no dispongo, por lo que no puedo ejecutar el código.
En cuanto al problema de la desconexión de la base de datos, lo que he visto es que en el código no hay ningún tipo de control de errores, por lo que al producirse ese, o cualquier otro, error el programa se detendrá dando la información correspondiente, una posible solución es implementar el control de errores para que la aplicación no se detenga.
Una posible solución es, en el módulo principal, u otro, poner el siguiente procedimiento:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Sub ControlErrores(ByVal Number As Long, ByVal Description As String, ByVal Source As String)
    Dim Answer As VbMsgBoxResult
    Dim Connected As Boolean
 
    If Description = "Error -2147467259 MySQL server has gone away" Then
        respuesta = vbNo
        Do
            respuesta = MsgBox("Problemas con la Conexin a la Base de Datos...Verifique la conexion" & _
                "¿Desea volver a conectarse?", vbYesNo + vbDefaultButton1, "Información al Usuario")
            'En la siguiente sentencia deberían sustituirse los parámetros por los valores correctos.
            Connected = ConectaBD(cDirIp, cBD, cUser, cPass)
        Loop Until respuesta = vbNo Or Connected
        If Not Connected Then
            MsgBox "Imposible recuperar la conexión a la base de datos", vbCritical, "Información al Usuario"
            End
        Else
            MsgBox "Conexión satisfactoria a la Base de datos", vbInformation, "Información al usuario"
        End If
 
    Else
        'resto de errores
        MsgBox "Error " & Err.Number & " (" & Description & ")  " & Source, vbCritical, "Error"
    End If
End Sub
Y cuando se produzca un error llamar a dicho procedimiento, así el usuario podrá decidir que hacer en su caso, por ejemplo en el formulario frmAccesoArq el código del evento btnAceptar_Click quedaría:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Private Sub btnAceptar_Click()
    Dim tblusuarios As New ADODB.Recordset 'Tabla usuarios en Modo Local
    Static Contador As Integer
    Dim sw As Boolean
 
    On Error GoTo btnAceptar_Click_Error
 
    sw = False
    If BD.State <> 1 Then
        sw = True
 
    End If
 
 
    tblusuarios.Open "SELECT * FROM usuarios_agencias WHERE LOGIN='admin' AND PASS='" & Trim(edtPass.Text) & "'", BD, adOpenKeyset, adLockOptimistic
 
    If tblusuarios.EOF Then
        MsgBox "Password Incorrecto...", vbInformation, "Información al Usuario"
        Contador = Contador + 1
        If Contador = 3 Then
            MsgBox "Lo Siento no le quedan Intentos Disponibles ", vbInformation, "Información al Usuario"
 
            swAcceso = False
            Contador = 0
            Unload Me
 
        End If
        tblusuarios.Close
        'BD.Close
        '   edtPass.SetFocus
 
    Else
        swAcceso = True
        tblusuarios.Close
        ' If sw = True Then
        '    BD.Close
        ' End If
        Set tblusuarios = Nothing
        Set frmAccesoMod = Nothing
        Unload Me
 
    End If
 
    On Error GoTo 0
    Exit Sub
 
btnAceptar_Click_Error:
 
    ControlErrores Err.Number, Err.Description, Err.Source
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 12/05/2018 12:29:51
Buenos días padre el módulo o formulario dónde está un control de errores es el frmPassword y luego el formulario secundario que se utiliza principalmente es el frmVentas que es donde causa el error al perderse la conexión a internet, te voy a enviar el archivo ejecutable
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
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 12/05/2018 15:02:36
ADJUNTO EJECUTABLE
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
Imágen de perfil de gilman
Val: 138
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por gilman (47 intervenciones) el 13/05/2018 09:12:36
El ejecutable no sirve de nada, seguirán faltando los ocx.
He revisado el código y no hay practicamente control de errores, por otra parte, en el frmVentas no hay ningún acceso a datos, así que no se va a producir nunca el error en ese formulario, todos los accesos a BD se producen en otros formularios.
Lo que tienes que hacer es añadir el código en uno de los módulos, lo vuelvo a adjuntar porque había un error en el nombre de una variable.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Sub ControlErrores(ByVal Number As Long, ByVal Description As String, ByVal Source As String)
 
    Dim Answer As VbMsgBoxResult
    Dim Connected As Boolean
 
    If Description = "Error -2147467259 MySQL server has gone away" Then
        respuesta = vbNo
        Do
            Answer = MsgBox("Problemas con la Conexin a la Base de Datos...Verifique la conexion" & _
                "¿Desea volver a conectarse?", vbYesNo + vbDefaultButton1, "Información al Usuario")
            'En la siguiente sentencia deberían sustituirse los parámetros por los valores correctos.
            Connected = ConectaBD(cDirIp, cBD, cUser, cPass)
        Loop Until Answer = vbNo Or Connected
        If Not Connected Then
            MsgBox "Imposible recuperar la conexión a la base de datos", vbCritical, "Información al Usuario"
            End
        Else
            MsgBox "Conexión satisfactoria a la Base de datos", vbInformation, "Información al usuario"
        End If
    Else
        'resto de errores
        MsgBox "Error " & Err.Number & " (" & Description & ")  " & Source, vbCritical, "Error"
    End If
 
End Sub

Y luego en cada evento que acceda a la BD:
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Evento()
    On Error GoTo ControlarErrores
 
    'aquí iría el código del evento...
 
    On Error GoTo 0
    Exit Sub
 
ControlarErrores:
 
    ControlErrores Err.Number, Err.Description, Err.Source
 
End Sub
Con eso se solucionaría el problema, ya que sería el usuario el que decidiría si que hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 13/05/2018 20:43:38
Buen dia amigo disculpa tenes razon aqui desde mi sitio web el instalador con los ocx, http://www.puntox.com.ve/descargas.php, el primer link INSTALADOR_X, NO SE SI ME PERMITAN COLOCAR URLS
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
Imágen de perfil de RODOLFO
Val: 17
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

AYUDA: COMO RECONECTO VB6 A MYSQL SIN PERDER LA INFORMACION DE LOS FORMULAR

Publicado por RODOLFO (8 intervenciones) el 13/05/2018 22:59:30
Buenas tardes amigo excelente, ya el aplicativo no se cierra, he colocado el control de errores en cada evento, pero no me sale el mensaje para reconectar y al cargar cada vez arroja el mensaje "Error ( ) 0" al procesar cada peticion y no veo que sallga la ventana de peticion para reconexion, disculpa tanta molestia

y tambien este
---------------------------
Error
---------------------------
Error -2147467259 ([MySQL][ODBC 3.51 Driver][mysqld-5.0.37-community-nt]Lost connection to MySQL server during query) Microsoft OLE DB Provider for ODBC Drivers
---------------------------
Aceptar
---------------------------
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