Conectar a BD MYSQL

161 views
Skip to first unread message

Ruben Antunes

unread,
Feb 29, 2016, 11:57:06 AM2/29/16
to mundovis...@googlegroups.com

Buenos días: después de tanto tiempo me veo en la obligación de pedir ayuda nuevamente. Sin saber porqué de un día a otro, usando la rutina que debajo pongo, no me puedo conectar a la base de datos. Pero si entro por el browser esta todo bien, por lo que descarto que sea un problema con el servicio que estoy utilizando. Si me pueden guiar en la solución lo agradecería, ya que desde mas de una semana que no puedo hacer que se conecte a la base de datos desde mi aplicación.

 

Gracias…

Ruben Antunes

 

Este es el conector odbc que utilizo:

mysql-connector-odbc-5.1.6-win32 ODBC para MySQL.msi

 

_Screen.u_database=’ sgeargen_union’

_Screen.u_host=’ 201.235.xxx.x’

_Screen.u_Port=’3306’

_Screen.u_user=’ sgeargen_ruben’

_Screen.u_pass=’mipassword’

_Screen.u_tipo=’1’        &&MYSQL

 

lnHandle=HConnect(_Screen.u_database,_Screen.u_host,_Screen.u_Port,_Screen.u_user,_Screen.u_pass,_Screen.u_tipo)

* Si hay conexión lnHandle debe ser mayor a 0

IF lnHandle>0

ELSE

                =HDisconnect()

                Thisform.Timer2.Enabled=.T.

                Thisform.lblUsuarioNoAceptado.Caption='... Acceso BD Denegado ...'

                Thisform.Timer1.Enabled=.F.

                Thisform.lblConexion.Caption='Esperando Conexión !!!'

                Thisform.txtDNS.SetFocus

                Thisform.txtDNS.GotFocus

ENDIF

 

 

*/-RUTINA HCONNECT

*************************

*RUTINAS BD

************

* HConnect()

* Abrir Conexión con Servidor SQL

* Parametros:

*             - lcDatabase : Base de Datos

*****

FUNCTION HConnect

LPARAMETERS lcDatabase,u_host,_Port,u_user,u_pass,u_tipo

IF PCOUNT()#6

                MESSAGEBOX("NO SE PUEDE CONECTAR AL SERVIDOR SQL...",16 + 4096)

                DODEFAULT()

                RETURN(.F.)

ENDIF

 

IF !_Screen.ControlODBC

                _Screen.ControlODBC=.T.

                _DriverODBCInstalado=DriversInstalados('MySQL ODBC 5.1 Driver')

                IF !_DriverODBCInstalado

                               =AplicarAlerta()

                               =InstalarODBC()

                               lnHandle=0

                               eMessageTitle = 'MENSAJE DEL SISTEMA'

                               eMessageText = CHR(13)+'No se ha detecta el DRIVER ODBC Mysql 5.1'+CHR(13)+;

                                               'que permite la conexión a la Base de Datos.'+CHR(13)+;

                                               'El Sistema intentará INSTALAR los archivos necesarios'+CHR(13)+;

                                               'de manera automática, pero de persistir el error'+CHR(13)+;

                                               'ejecutar desde los Iconos de Acceso al Sistema'+CHR(13)+;

                                               'la Opción: Drivers ODBC MYSQL.'+CHR(13)+CHR(13)+;

                                               'Esta última Instalación agrega los archivos faltantes'+CHR(13)+;

                                               'para el buen funcionamiento de la Aplicación.'+CHR(13)+CHR(13)+;

                                               'Caso contrario contacte al Administrador del Sistema...'+CHR(13)

                               nDialogType = 0 + 64 + 0 + 4096

                               nAnswer = MESSAGEBOX(eMessageText, nDialogType, eMessageTitle,7000)

                               RETURN lnHandle

                ENDIF

ENDIF

 

u_motor = "mysql"

u_string = ""

 

* Generar Cadena de Conexión Según el Motor Seleccionado

HDisconnect()

IF u_host#'127.0.0.0'

                IF !DetecINTERNET()

                               *#DEFINE MB_SYSTEMMODAL 0x00000000L

                               eMessageTitle = 'MENSAJE DEL SISTEMA'

                               eMessageText = 'Verificar Conexión de INTERNET'+CHR(13)+;

                                               'y vuelva a Conectarse.'+CHR(13)

                               nDialogType = 0 + 32 + 0 + 4096                &&4096=Modal

                               nAnswer = MESSAGEBOX(eMessageText, nDialogType, eMessageTitle,5000)

                               RETURN 0

                ENDIF

ENDIF

 

DO CASE

                CASE u_tipo=1                 && MySQL con ODBC 5.1 Driver    

                               u_string = "Driver={MySQL ODBC 5.1 Driver};Server="+u_host+";Port="+_Port+";Database="+lcDatabase+";User="+u_user+";Password="+u_pass+";Option=16387;"

                CASE u_tipo=1                 && MySQL con MyODBC 3.51 // MySQL ODBC 3.51 Driver    

                               u_string = "Driver={MySQL ODBC 3.51 Driver};Server="+u_host+";Port="+_Port+";Database="+lcDatabase+";User="+u_user+";Password="+u_pass+";Option=16387;"

                CASE u_tipo=2                 && SQL Server 2000

                               lcDatabase = IIF(lcDatabase="mysql","master",lcDatabase)

                               u_string = "Driver={SQL Server};Server="+u_host+";Database="+lcDatabase+";Uid="+u_user+";Pwd="+u_pass+";"

                               u_motor = "sqlserver"

                CASE u_tipo=3                 && SQL Server 2008

                               lcDatabase = IIF(lcDatabase="mysql","master",lcDatabase)

                               u_string = "Driver={SQL Server Native Client 10.0};Server="+u_host+";Database="+lcDatabase+";Uid="+u_user+";Pwd="+u_pass+";"

                               u_motor = "sqlserver"

                CASE u_tipo=4                                 && POSTGRESQL

                               lcDatabase = IIF(lcDatabase="mysql","postgres",lcDatabase)

                               u_string = "Driver={PostgreSQL ANSI};Server="+u_host+";Port=5432;Database="+lcDatabase+";Uid="+u_user+";Pwd="+u_pass+";"

                               u_motor = "postgresql"

ENDCASE

 

 

*---------------comando para mejorar la coneccion a sql ----------------------------------

=SQLSETPROP(0,"ConnectTimeOut",5) &&Tiempo de Espera para la coneccion

=SQLSETPROP(0,"PacketSize",1000) &&              Tamaño de paquete utilizado en la red

 

SQLSETPROP(0,"DISPLOGIN",3)

SQLSETPROP(0,"DispWarnings",.F.)

 

* Conectarse al Servidor SQL

lnHandle = SQLSTRINGCONNECT(u_string)

 

* Verificar si esta conectado al servidor

IF lnHandle>0

                SQLSETPROP(lnHandle,'DispWarnings',.T.)

                SQLSETPROP(lnHandle,'QueryTimeOut',180)

ELSE

                eMessageTitle = 'MENSAJE DEL SISTEMA'

                eMessageText = 'Sin Conexión con el Servidor'+CHR(13)+;

                               'Espere un instante y vuelva a Conectarse.'+CHR(13)

                nDialogType = 0 + 32 + 0 + 4096

                nAnswer = MESSAGEBOX(eMessageText, nDialogType, eMessageTitle,5000)

ENDIF

RETURN lnHandle

Irwin Rodriguez

unread,
Feb 29, 2016, 12:23:05 PM2/29/16
to mundovisualfoxpro@googlegroups com
Exactamente que te dice la respuesta de la conexion? Intenta capturarla con:

=AERROR(aMySQLError)
MESSAGEBOX(aMySQLError[2])

Saludos!



--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "Mundo Visual FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundovisualfox...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
DISTRIBUIDORA IRSESU, C.A
J-29947174-7
Irwin Rodríguez
- Director
Analista Programador - Freelance
+584125210679

Barquisimeto - Venezuela
Desarrollos online dentro y fuera del país

Ruben Antunes

unread,
Feb 29, 2016, 5:57:20 PM2/29/16
to mundovis...@googlegroups.com

Irwin: el error que me da es el siguiente:

Error de conectividad: [MySQL] ODBC 5.1 Driver Can't connect to

MySQL server on '201.235.253.60' (10060)

 

Que puede llegar a ser?

 

El error que tengo es el siguiente:

Error de conectividad: [MySQL] ODBC 5.1 Driver Can't connect to MySQL server on '201.235.253.60' (10060)

 

Saludos

Ruben

Irwin Rodriguez

unread,
Feb 29, 2016, 6:58:52 PM2/29/16
to mundovisualfoxpro@googlegroups com
Cual es el puerto escucha del server? 3306?  Desactiva temporalmente el firewall y prueba. El servidor se encuentra en la misma maquina? de ser una conexión remota, la maquina del servidor esta redireccionando las peticiones al puerto 3306?

Revisa detenidamente los protocolos de comunicacion ya que el error radica alli.

Saludos!

Ruben Antunes

unread,
Feb 29, 2016, 7:58:22 PM2/29/16
to mundovis...@googlegroups.com

El puerto es el 3306. El servidor es un hosting pago donde me dan el ip para conexiones remotas.

El firewall esta desactivado.

Irwin Rodriguez

unread,
Feb 29, 2016, 8:18:22 PM2/29/16
to mundovisualfoxpro@googlegroups com
Entiendo, entonces entra en el PhpMyAdmin y asignale los permisos para conexiones remotas al usuario que estás usando para conectarte.

Ubica tu usuario y edita los permisos, por lo general aparece una ip como:

192.168.0.200

Debes cambiarla por %.%.%.%

Prueba y comenta como te va.

Saludos!



Ruben Antunes

unread,
Feb 29, 2016, 10:51:26 PM2/29/16
to mundovis...@googlegroups.com

Irwin: gracias por tu apoyo. Pero ya encontré la falla. Desde mi proveedor de hosting me cambiaron el IP.

 

Saludos

Ruben Antuens

Irwin Rodriguez

unread,
Mar 1, 2016, 8:28:08 AM3/1/16
to mundovisualfoxpro@googlegroups com
En hora buena que ya resolvistes.

saludos!
Reply all
Reply to author
Forward
0 new messages