PDA

Ver la Versión Completa : Error de ADOConnection


lmpadron
08-07-2011, 23:50:00
Hola comunidad

Estoy realizando un proyecto donde uso el ADOConnection con el driver de MySQl 3.51 para acceder a un servidor remoto. Los usuarios están ya definidos en el servidor de MySQL con sus privilegios. El usuario especifica en un Form el IP del servidor al que quiere conectarse, el Puerto, el Nombre de Usuario y el Password.

Cuando establecemos la conexion si los datos estan bien pues todo es perfecto, pero si los datos estan mal el ADOConnection nos devuelve este error


---------------------------
Debugger Exception Notification
---------------------------
Project NOMBREPROYECTO.exe raised exception class EOleException with message
'[MySQL][ODBC 3.51 Driver]Access denied for user 'root'@'localhost' (using password: YES)'.
Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


Mi pregunta es:

Como puedo evitar que salga este error y mostrar uno confeccionado por mi, de forma que no me salga en ingles sino en español, y de que forma puedo obtener los errores que me da el Servidor de MySQL para poder determinar si es problema de la conexion (porque no existe el host) o problema del logueo (no coinciden el user y el pass).

Gracias de antemano

lmpadron
11-07-2011, 16:59:09
Hola comunidad, he encontrado un ejemplo de como capturar el error en C++ builder y lo dejo aquí a modo de respuesta. En el ejemplo se captura el "EFOpenError" que es el tipo de error que daría este código al tratar de cargar un bmp y no encontrarlo en la ubicación especificada. para la pregunta que hice solo hay que cambiar el tipo de error que tratamos de capturar y ya !!! o al menos eso creo jejejeje, voy a probar !!!!


void __fastcall TForm1::FormDblClick(TObject *Sender)
{
Graphics::TBitmap *BmpMercedes = new Graphics::TBitmap;

try {
try {
BmpMercedes->LoadFromFile("Mercedes.bmp");
}
catch(EFOpenError *Error)
{
ShowMessage(Error->Message +
".\nLa dirección, el nombre, o la extensión”
"pueden ser invalidas o no existir.");
}
}
__finally
{
delete BmpMercedes;
}
}