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
--
_______________________________________________________________
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.
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
El puerto es el 3306. El servidor es un hosting pago donde me dan el ip para conexiones remotas.
El firewall esta desactivado.
Irwin: gracias por tu apoyo. Pero ya encontré la falla. Desde mi proveedor de hosting me cambiaron el IP.
Saludos
Ruben Antuens