Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Interceptar mensajes error ADO Access (https://www.clubdelphi.com/foros/showthread.php?t=42833)

pablonill 24-04-2007 07:20:56

Interceptar mensajes error ADO Access
 
Hola, quisiera saber como puedo interceptar los mensajes de error devueltos por ADO en una tabla access para poder traducirlos y mostrar el mensaje correspondiente!, por ejemplo el de violacion de clave, o el campo debe tener un valor!, muchas gracias.

Neftali [Germán.Estévez] 24-04-2007 11:04:32

Utiliza Try..Except.
Los errores de ADO generan excepciones de tipo EOLEException (busca en la ayuda de Delphi).


Código Delphi [-]
...
try
  // Por ejemplo
  ADOTabla.Edit;
  ...
except
  on E:EOLEException do begin 
    // tipo de error
    if (E.ErrorCode = -2146825267) then begin
      BoxAviso('El registro ya ha sido borrado...' + E.Message);
    end
    else if (E.ErrorCode = -2147217905)
      BoxAviso('Se ha producido un error al intentar bloquear el registro. ' + E.Message);
    end
    else begin
      BoxAviso('Error ADO Desconocido; ' + E.Message);
    end;
  end
  else begin
    // Capturar otro tipo de excepciones
    raise;
  end;
end;

En un ejemplo, y te lo he puesto de memoria sin compilar, así que tal vez haya algun error de sintaxis, pero la idea es esa.
En cuanto a los códigos de error de ADO, los puedes encontrar por internet; Por ejemplo aquí.

pablonill 24-04-2007 20:04:20

Muchas gracias, ya lo voy a probar!, muchas gracias de nuevo!

pablonill 26-04-2007 07:21:26

Hola, te comento que logre interceptar el error, el tema es que el programa me genera un EDataBaseError y un EOleException los cuales no devuelven un ErrorCode, por tal motivo no puedo saber cual es el tipo de error que se genera!, algo me estoy olvidando?. Gracias.
Les recuerdo que estoy usando una tabla Access con ADO y necesito capturar errores tales como El campo ya existe o el campo no puede tener un valor Null. Gracias!

Neftali [Germán.Estévez] 26-04-2007 12:14:53

Si buscas EOLEException en la ayuda varás que tiene la propiedad ErrorCode. Algo debes estar haciendo mal.
Qué componentes ADO estás usando exactamente.


La franja horaria es GMT +2. Ahora son las 13:35:51.

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