Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Conectar VB6 con MySQL

Estas en el tema de Conectar VB6 con MySQL en el foro de Visual Basic clásico en Foros del Web. Hola buenas noches, He visto este tipo de error en varias páginas, incluso en este foro (un poco variado pero sobre el mismo tema). Sin ...

  #1 (permalink)  
Antiguo 19/08/2009, 21:57
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Conectar VB6 con MySQL

Hola buenas noches,

He visto este tipo de error en varias páginas, incluso en este foro (un poco variado pero sobre el mismo tema). Sin embargo, no he visto una solución para el caso que les presento.

Tengo una forma hecha en VB6 la cual servirá para conectarme a una base de datos de MySQL. La base de datos ya la tengo hecha, ya tiene tablas creadas, ya hay un par de usuarios creados con todos los privilegios.

Tengo el Conector ODBC 3.51 y ya realicé la conexión a la base de datos de MySQL y en el test funcionó correctamente.

El código usado es:

Código:
Public BD As ADODB.Connection
Public RecSQL As ADODB.Recordset
En un botón para conectarme coloco:

Código:
Private Sub Command1_Click()
On Error GoTo Ver

Set BD = New ADODB.Connection
BD.ConnectionString = "driver={MySQL ODBC 3.51 Driver};" & _
"Server=" & Text1 & ";" & _
"Port=" & Text2 & ";" & _
"Database=" & Text3 & ";" & _
"User=" & Text4 & ";" & _
"Password=" & Text5 & ";" & _
"Option=3;"

BD.Open

MsgBox "Conexión establecida!!!", vbExclamation, "Conexión"

Exit Sub
Ver:
 MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"
 Err.Clear
End Sub
Aunado a ello, cuando trato de hacer la conexión pasa lo siguiente, me genera este error:

Cita:
No de error: -2147467259 | [MySQL] [ODBC 3.51 Driver] Can´t connect to MySQL server on '3306' (10060)
Se me hace algo raro, debido a que el puerto está funcionando bien, o por lo menos puedo conectarme a la base de datos de MySQL. Tengo instalada la versión 5.1.37 de MySQL, la más actual.

Al parecer el código debe funcionar bien, ya que en otros sitios he visto que si funciona, pero se me hace raro.

Bueno, espero y alguien tenga algún conocimiento sobre esto, saludos a todos.

Perón se me olvidaba comentar, uso las referencias Microsoft DAO 3.51 Object Library
y Microsoft ActiveX Data Objects 2.0 Library.

Última edición por Middrel; 19/08/2009 a las 21:59 Razón: Falto información
  #2 (permalink)  
Antiguo 20/08/2009, 06:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Conectar VB6 con MySQL

¿Qué datos colocas en Text1...Text5?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 20/08/2009, 07:22
 
Fecha de Ingreso: junio-2008
Ubicación: Punta Alta, Argentina
Mensajes: 82
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Conectar VB6 con MySQL

Si Text1 a Text5 son textbox te falto poner la propiedad text, es decir

"Server=" & Text1.text & ";" & _
"Port=" & Text2.text & ";" & _
"Database=" & Text3.text & ";" & _
"User=" & Text4.text & ";" & _
"Password=" & Text5.text & ";" & _
"Option=3;"
  #4 (permalink)  
Antiguo 20/08/2009, 07:35
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Conectar VB6 con MySQL

Hola, fesero. En realidad no es necesario, ya que la propiedad Text es la propiedad por defecto en caso de que no se especifique ninguno.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 20/08/2009, 13:03
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Conectar VB6 con MySQL

Coloca la informacion que pones en los textbox ahi esta el error, lee esto, quizas ahi esté tu error

saludos
  #6 (permalink)  
Antiguo 20/08/2009, 13:17
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Si haz puesto correctamente los nombres de la BD, Usuario y contraseña verifica el lado del servidor, debe tener los atributos necesarios para "%" en la BD. Puedes probar la conexion usando MySqlAdministrator.
  #7 (permalink)  
Antiguo 20/08/2009, 13:50
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Conectar VB6 con MySQL

Hola, disculpen la demora voy lleganfo a la oficina y voy viendo sus comentarios. Gracias.

Bueno, de hecho lo que coloco en los textbox es el nombre del puerto, del servidor, de la base de datos, del usuario y de la contraseña. Estoy usando los de fault para ver el funcionamiento (Servidor: localhost, Usuario: root, Contraseña: 123456, Puerto: 3306 y Base de Datos: franquicias) Algo sencillo solo para ver el funcionamiento.

Ahora, tengo el administrador de MySQL instalado y funciona correctamente. De hecho entro a cada rato a cargar tablas, nuevas bases etc., por ese lado no hay ningún problema.
  #8 (permalink)  
Antiguo 20/08/2009, 14:10
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Si tienes el MySql Administrator selecciona User administration, luego el usuario y luego asignales todos los permisos al usuario con el que te vas a conectar. Usualmente "root" solo tiene acceso local. Y si lo administras a traves de PhpMyAdmin genera un usuario y brindale accesos a la BD. Tambien prueba con el Firewall de Windows desactivado. Si te estas conectando a un servidor LAMP o WAMP edita tambien el archivo
Cita:
my.cnf
en el servidor y comenta la linea bind_address
Cita:
# bind_address
y reinicia el apache

Última edición por nonpublic; 20/08/2009 a las 14:33
  #9 (permalink)  
Antiguo 20/08/2009, 14:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Cita:
Iniciado por nonpublic Ver Mensaje
Si tienes el MySql Administrator selecciona User administration, luego el usuario y luego asignales todos los permisos al usuario con el que te vas a conectar. Usualmente "root" solo tiene acceso local. Y si lo administras a traves de PhpMyAdmin genera un usuario y brindale accesos a la BD. Tambien prueba con el Firewall de Windows desactivado. Si te estas conectando a un servidor LAMP o WAMP edita tambien el archivo en el servidor y comenta la linea bind_address y reinicia el apache
Donde esta esa linea? en el archivo "my" de la carpeta de MySQL no aparece esa palabra.
  #10 (permalink)  
Antiguo 20/08/2009, 14:51
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Ahora si puedo poner links
http://www.forosdelweb.com/f86/conex...s-wamp-531779/
  #11 (permalink)  
Antiguo 20/08/2009, 15:15
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Conectar VB6 con MySQL

Hola, no uso el WAMP, ni Apache. Solo es una conexión local de MySQL. , aunque, a futuro es probable la implementación.

Por cierto, si cree otro usuario con todos los privilegios y aún así manda el mismo error.

Saludos
  #12 (permalink)  
Antiguo 20/08/2009, 15:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Cita:
Iniciado por nonpublic Ver Mensaje
No quiero ser hincha compañero pero no entendi lo que se explica en ese thread, yo no uso phpmyadmin ni ninguna otra aplicacion, solo tengo instalado MySQL 5.1 y las GUI Tools, como hago para conectarme desde otro host a dicha base de datos?
  #13 (permalink)  
Antiguo 20/08/2009, 15:37
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Si tu conexion es local debes estar poniendo mal algun dato.
Prueba tambien con las librerias:
Cita:
Microsoft ActiveX Data Objects 2.8 Library
Microsoft ActiveX Data Objects Recordset 2.8 Library.
y prueba con este codigo
Cita:
'variables de conexion
dbSrv = "SERVER=x.x.x.x;"
dbNmb = "DATABASE=midb;"
dbPwd = "PASSWORD=mipwd;"
dbUsr = "USER=miusr;"
dbPto = "PORT=3306;"
dbOpc = "OPTION=3;"
cnxString = "DRIVER={MySQL ODBC 5.1 Driver};" _
+ dbSrv + dbNmb + dbPto + dbUsr + dbPwd + dbOpc
On Error GoTo Error
'cn.Open
Set cn = rs.ActiveConnection
On Error GoTo Error
'cn.Open
Set cn = rs.ActiveConnection
Set rs = New ADODB.Recordset
rs.Open "SELECT DATE_FORMAT( now( ) , '%r') AS hora", cnxString, adOpenStatic, adLockOptimistic
MsgBox "Conexión establecida!!!" + rs.Fields(0), vbExclamation, "Conexión"
'cerramos la conexion
rs.Close
' Liberamos los objetos para limpiar la memoria.
Set rs = Nothing
Set cn = Nothing

Exit Sub
Error:
MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"
Err.Clear
P.D. Prueba la conexion de manera local y si funciona vamos a ver la parte remota luego
  #14 (permalink)  
Antiguo 20/08/2009, 15:45
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Conectar VB6 con MySQL

La parte local me funciona hace tiempo, lo que no logro es conectarme remotamente, por donde empiezo?
  #15 (permalink)  
Antiguo 20/08/2009, 15:48
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Sorry, me confundi con el comentario que hizo Middrel

Probaste lo que decia en el link? lo tuyo es solo asignar permisos y agregar al Firewall de windows una excepcion para que escuche en el puerto 3306
  #16 (permalink)  
Antiguo 20/08/2009, 16:45
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Conectar VB6 con MySQL

Hola nonpublic, probé el código que proporcionas en tu respuesta y me aparece el siguiente error: N° de error 424 | Se requiere un objeto.
  #17 (permalink)  
Antiguo 20/08/2009, 17:05
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Cita:
Iniciado por Middrel Ver Mensaje
Hola nonpublic, probé el código que proporcionas en tu respuesta y me aparece el siguiente error: N° de error 424 | Se requiere un objeto.
Revisa que tengas todas las referencias mencionadas anteriormente y logicamente reemplaza los campos necesarios tanto en la consulta como en los datos de conexion. Tambien verifica que tengas instalado MySQL ODBC 5.1 Driver
  #18 (permalink)  
Antiguo 20/08/2009, 18:21
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Conectar VB6 con MySQL

Cita:
Iniciado por ema21del9 Ver Mensaje
La parte local me funciona hace tiempo, lo que no logro es conectarme remotamente, por donde empiezo?
Para conectarte remotamente debes hacerlo atravez de las IP`s
Código:
DRIVER={MySQL ODBC 5.1 Driver}; SERVER=192.168.1.40;DATABASE=db_ventas;USER=root;PASSWORD=123456;OPTION=3
Ademas debes tener todos los permisos habilitados para el usuario o almenos los principales.
En phpmyadmin se puede manejar mejor los permisos de los usuarios que en los GUI Tools de mysql
+

saludos
  #19 (permalink)  
Antiguo 20/08/2009, 19:49
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Conectar VB6 con MySQL

LAs referencias ya están correctas, pero tengo duda con el Conector ODBC... Me mencionas el 5.1, yo tengo el 3.51, entonces intento con este otro conector?

Bueno, lo haré y veré que sucede.

Saludos
  #20 (permalink)  
Antiguo 20/08/2009, 20:13
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Ujum, descarga la ultima version del ODBC connector y no olvides hacerle la referencia en el codigo a la misma version
Cita:
"DRIVER={MySQL ODBC X.x Driver};"
  #21 (permalink)  
Antiguo 21/08/2009, 11:25
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Conectar VB6 con MySQL

Mmmmmnnop... ya probé con el conector ODBC 5.1 y sigue exactamente el mismo error, que podrá ser?
  #22 (permalink)  
Antiguo 21/08/2009, 12:13
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Prueba estas cosas:

1- Verifica que estas librerias esten presentes en las referencias del proyecto
Cita:
Microsoft ActiveX Data Objects 2.8 Library
Microsoft ActiveX Data Objects Recordset 2.8 Library.
2.- Verifica que en el firewall de windows (ya que tienes instalada la version para windows sin web) tengas una excepcion para el puerto que mencionas en el codigo. Si no la tienes creala. Ojo que si cambiaste el puerto de escucha al momento de la instalacion, tienes que considerar ese cambio.

Cita:
dbPto = "PORT=3306;"
3.- Verifica que la cadena de conexion haga referencia al driver que tienes instalado
Cita:
cnxString = "DRIVER={MySQL ODBC 5.1 Driver};" _
+ dbSrv + dbNmb + dbPto + dbUsr + dbPwd + dbOpc
4.- Verifica que los datos que estes pasando a tu cadena de conexion sean correctos
Cita:
dbSrv = "SERVER=x.x.x.x;" ' Pon el ip asignado al equipo que corre el MySql Server
dbNmb = "DATABASE=midb;" 'Pon el nombre exacto de la BD
dbPwd = "PASSWORD=mipwd;" ' Pon el PWD case sensitive
dbUsr = "USER=miusr;"
' Pon el usuario que tiene acceso GLOBAL a tu BD.

Si todo esto es correcto deberia funcionar. En caso contrario reinstala tu servidor Mysql.
  #23 (permalink)  
Antiguo 21/08/2009, 14:33
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Conectar VB6 con MySQL

Haber tio revisando el inicio del post tu error dice

error: -2147467259 | [MySQL] [ODBC 3.51 Driver] Can´t connect to MySQL server on '3306' (10060)

Es decir que no se puede conectar al servidor llamado 3306, ahi me parece que esta el error, tienes una confusion en los textbox, estas poniendo el puerto en lugar del nombre del servidor y viceversa

Te sugiero que pruebes directamente sin utilziar textbox de esta manera para ver si ahi esta tu famoso error
Código:
DRIVER={MySQL ODBC 5.1 Driver}; SERVER=192.168.1.40;DATABASE=db_ventas;USER=root;PASSWORD=;OPTION=3
....Nuevamente te sugiero, "prueba directamente la conexion sin utilizar textbox"

La version del conector no influye en nada puedes utilizar cualquiera el 3 o 5

saludos
  #24 (permalink)  
Antiguo 22/08/2009, 20:58
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Conectar VB6 con MySQL

Hola franko1809... Ya hice esa parte, de colocar los valores en lugar de los textbox... sin embargo lo que me comentas sobre ver si no tengo alguna confusión en los valores que coloco en los textbox no lo he verificado... lo hago y les comento, pero será hasta el día lunes, el fin de semana no dispongo de mi equipo

Saludos y probaré lo último que me han comentado.
  #25 (permalink)  
Antiguo 25/08/2009, 08:08
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Gente probe todo lo propuesto en este topico pero me dice que no me puedo conectar a 201.235.57.27 con el siguiente error:



Por si acaso aca dejo una imagen de los permisos el codigo de conexion:

Código VB:
Ver original
  1. Sub funcion_conectar()
  2. 'Definimos las variables de conexion:
  3. servidor = "201.235.57.27"
  4. puerto = 3306
  5. base_de_datos = "hdm_tech"
  6. usuario = "hdm_tech"
  7. contraseña = "********"
  8.  
  9. 'Creamos la cadena de conexión:
  10. Set BD = New ADODB.Connection
  11. BD.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};" & _
  12. "Server=" & servidor & ";" & _
  13. "Port=" & puerto & ";" & _
  14. "Database=" & base_de_datos & ";" & _
  15. "User=" & usuario & ";" & _
  16. "Password=" & contraseña & ";" & _
  17. "Option=3;"
  18.  
  19. 'Establecemos la conexión:
  20. BD.Open
  21. End Sub


Última edición por ema21del9; 25/08/2009 a las 09:06
  #26 (permalink)  
Antiguo 25/08/2009, 13:10
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Conectar VB6 con MySQL

Parece que tienes todo en orden, lo unico que se me ocurre es que estas utilizando la ip de tu conexion a internet 201.235.57.27, deberias utilizar la IP de tu red local interna vete a:

inicio/ejecutar/escribes CMD/ipconfig/pulsas enter y obtendras tu ip local

saludos
  #27 (permalink)  
Antiguo 25/08/2009, 13:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Cita:
Iniciado por franko1809 Ver Mensaje
Parece que tienes todo en orden, lo unico que se me ocurre es que estas utilizando la ip de tu conexion a internet 201.235.57.27, deberias utilizar la IP de tu red local interna vete a:

inicio/ejecutar/escribes CMD/ipconfig/pulsas enter y obtendras tu ip local

saludos
Mira esto es lo que me tira, que deberia usar de aca:

  #28 (permalink)  
Antiguo 25/08/2009, 13:44
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Conectar VB6 con MySQL

Como ha crecido esto!!

Hola franko1809, al parecer ya funciona bien mi conexión, tenías razón había una
confusión entre los textbox

Saludos y muchas gracias al apoyo de todos.

Ema21del9, tu IP es 192.168.1.102.

Saludos a todos.
  #29 (permalink)  
Antiguo 25/08/2009, 14:13
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Conectar VB6 con MySQL

Ya esta gente lo logre, muchas gracias.

Ahora bien, me queda una duda, en el caso que este intentando entrar de un host externo, osea desde la WAN, ahi si usaria el ip indicado arriba?
  #30 (permalink)  
Antiguo 25/08/2009, 22:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 15 años
Puntos: 7
Respuesta: Conectar VB6 con MySQL

Para hacer una conexion WAN me parece que es otro tema y la conexion es diferente por ahi escuche que se debe utilizar el programa hamachi?, abre otro tema para intentar resolverlo, saludos

Tanto alboroto y era un confusion en los textbox
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 06:14.