Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Error de ADOConnection (https://www.clubdelphi.com/foros/showthread.php?t=74756)

lmpadron 08-07-2011 23:50:00

Error de ADOConnection
 
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

Código:

---------------------------
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 !!!!

Código:

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;
        }
}



La franja horaria es GMT +2. Ahora son las 15:54:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi