Hola Antonio,
Si hay forma de evitar el mensaje.
Fijate en ado.prg al final de la function ADOConn() verás:
TRY
oC:Open()
If !(oC:State > 0)
Msgbox("No se realizó la conexión")
Endif
CATCH
ADOError(oC, Database, Engine)
END SEQUENCE
Esto hace que el error se dirija a la funcion ADOError() en donde viene
If Engine == "MYSQL" // A mi experiencia, NativeError lo maneja cada SQL en forma distinta.
if oC:Errors[0]:NativeError = 160 .or. oC:Errors(0):NativeError = 0 // no existe el ODBC
MsgStop("Falta de complementos ODBC")
Elseif oC:Errors[0]:NativeError = 1045
MsgStop("Error en nombre de usuario o contraseña")
Elseif oC:Errors[0]:NativeError = 1049 // Base de datos no existe
MsgStop("Base de Datos "+Database+" no existe", "Error")
Else
msgbox("Native Error "+hb_CStr(oC:Errors[0]:NativeError)+Hb_OsNewLine()+oC:Errors[0]:Description,"Error" )
Endif
Else
msgbox("Native Error "+hb_CStr(oC:Errors[0]:NativeError)+Hb_OsNewLine()+oC:Errors[0]:Description,"Error" )
* msgbox(oC:Errors[0]:Description,"Native Error "+hb_CStr(oC:Errors[0]:NativeError) )
Endif
Y el mensaje que ves es el subrayado.
Lo que puedes hacer es agregar
Elseif oC:Errors(0):NativeError = 2003 // este es el Native Error que avienta al no poder conectar
y no presentar mensaje.
Me imagino que en tu programación tendrás incluido el verificar el status de la conexión.
Saludos,
David Field