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

Consulta en MySQL desde VB6 se comporta de forma lenta

Estas en el tema de Consulta en MySQL desde VB6 se comporta de forma lenta en el foro de Visual Basic clásico en Foros del Web. Tengo una tabla en MySQL a la cual le estoy haciendo un select y desde el PhpMyAdmin me dura menos de un segundo, pero desde ...
  #1 (permalink)  
Antiguo 21/10/2007, 18:46
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Consulta en MySQL desde VB6 se comporta de forma lenta

Tengo una tabla en MySQL a la cual le estoy haciendo un select y desde el PhpMyAdmin me dura menos de un segundo, pero desde VB6 me dura unos 3 segundos.

¿Qué puede ser?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 21/10/2007, 18:56
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

Si te funciona bien desde phpMyAdmin y lento en VB, debe ser el conector ODBC que estas haciendo o simplemente el mismo VB.

Disculpa, pero por lógica se ve que el problema no es el motor de BD.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 21/10/2007, 19:13
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

BrujoNic, claro que no es el motor de base de datos.

Quisiera saber si a alguien le ha pasado esto y que ha hecho para resolvero. Yo tengo instalado el MyODBC 3.51.
Acabo de ver el MyODBC 5.1. Veré si este resuelve el problema y les dejo saber.
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #4 (permalink)  
Antiguo 21/10/2007, 22:10
 
Fecha de Ingreso: octubre-2007
Mensajes: 54
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

Rsoft Si no es mucho pedir quisiera ver un ejemplo de como configuras el conector ODBC para conectarlo con VisulBasic 6.0
  #5 (permalink)  
Antiguo 21/10/2007, 22:13
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

He instalado la versión "MyODBC 5.1". Realmente ya me funciona super rápido, pero no logro encontrar un ConnectionString que me permita conectarme de forma remota. Solo funciona si la base de datos está local.

El ConnectionString que utilicé para realizar mis pruebas es: "Provider=MSDASQL.1;Persist Security Info=False;Data Source=dbContab". Este solo funciona de forma local, no puedo especificarle otro servidor.

Para tratar de conectarme a otro servidor intenté con este: "DRIVER={MySQL}; SERVER=localhost; DATABASE=dbContab; user=usuario; pwd=clave" , pero no funciona.

También intenté con: "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=dbContab;USER=Us uario;PASSWORD=Clave ;OPTION=8;", pero tampoco funciona.

¿Alguna idea?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #6 (permalink)  
Antiguo 22/10/2007, 04:36
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

Cita:
Iniciado por RsOfT Ver Mensaje
Para tratar de conectarme a otro servidor intenté con este: "DRIVER={MySQL}; SERVER=localhost; DATABASE=dbContab; user=usuario; pwd=clave" , pero no funciona.

También intenté con: "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=dbContab;USER=Us uario;PASSWORD=Clave ;OPTION=8;", pero tampoco funciona.

¿Alguna idea?

Seguramente no esta abiert el puerto de mysql en el servidor...

Te doy un ejemplo claro, los hostings pagos con soporte para MySQL solamente es local, es decir para tu web, no habilitan el puerto es por eso que no se puede realizar una conexion. (por ahi es eso)
  #7 (permalink)  
Antiguo 22/10/2007, 19:09
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

Cita:
Iniciado por culd
Seguramente no esta abiert el puerto de mysql en el servidor...

Te doy un ejemplo claro, los hostings pagos con soporte para MySQL solamente es local, es decir para tu web, no habilitan el puerto es por eso que no se puede realizar una conexion. (por ahi es eso)
Culd, no tengo hosting, lo que tengo es un una PC que utilizo de servidor de Base de Datos, y si tengo el pueto (3306) de MySQL habilitado. Además si no lo tuviera, no me funcionada con el driver 3.51.

Con el driver 3.51 me funciona todo bien en el ambiente cliente-servidor, pero las consultas son mucho más lentas.

Cita:
Iniciado por Fa61an
Rsoft Si no es mucho pedir quisiera ver un ejemplo de como configuras el conector ODBC para conectarlo con VisulBasic 6.0
Fa61an, lo único que hago es instalar el driver en la PC y crear un ODBC en el windows. Los datos en el registro grabados en el windows son los siguientes:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dbODBC]
"Driver"="C:\\WINDOWS\\system32\\myodbc5.dll"
"DATABASE"="dbcontab"
"OPTION"="8"
"PWD"="clave"
"SERVER"="servidor"
"UID"="usuario"

En la versión 3.51 solo cambia el nombre del DLL de "myodbc5.dll" a "myodbc3.dll".
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #8 (permalink)  
Antiguo 22/10/2007, 19:44
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

Acabo de darme cuenta que puedo seguir utilizando mi driver 3.51 con el que tengo bastante tiempo en uso.

Estoy haciendo un select con un sum a un campo asi:
Código:
Select Sum(Campo) as Db From tabla Where Cuenta = '11041'
De esa forma me dura 3 segundos, pero si agrego un Group By y añado el campo cuenta al select, todo funciona perfecto.

El select debe quedar asi:
Código:
Select Cuenta, Sum(Campo) as Db From tabla Where Cuenta = '11041' Group by Cuenta 
Debe ser un Bug del driver, pero ni modo. Ya todo me está funcionando a la perfección.
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--

Última edición por RsOfT; 22/10/2007 a las 21:16
  #9 (permalink)  
Antiguo 22/10/2007, 22:51
 
Fecha de Ingreso: octubre-2007
Mensajes: 54
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

Ok gracias revisare si me funciona
  #10 (permalink)  
Antiguo 23/10/2007, 17:49
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 19 años, 1 mes
Puntos: 2
Re: Consulta en MySQL desde VB6 se comporta de forma lenta

Por si acaso comento algo que te puede ocurrir:
Abrir la conexión tarda mucho, alrededor de eso, 3 segundos.
Si estas usando una funcion que conecta con el mysql cada vez que haces una llamada a la base de datos, sería muy lenta.
Código:
Set Cxn = New Connection
Cxn.CursorLocation = adUseClient
CxnFac = "Driver={MySQL ODBC 3.51 Driver};Server=IP_SERVER;Port=3306;Option=131072;Stmt=;Database=tubasededatos;Uid=user;Pwd=password;"
    Cxn.Open CxnFac
ese código es el que abre la conexion con la base de datos, si lo usas dentro de una funcion y la llamas, cada vez abrira una conexion, por lo que tardara.

Si usas esas variables como globales y abres la conexion solo una vez al abrir el programa, y en la funcion o como conectes a la base de datos solo ahces el recordset, las llamadas a la base de datos se hacen casi instantaneas.

No sé si lo harás así o no, pero por si acaso no lo haces te prevengo.

Un saludo.
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 16:08.