Cambiar los mensajes de error de interbase

Perdona las molestias, pero es que estoy haciendo una aplicación y lo que quiero es cambiar los mensajes de error que da a un lenguaje humano y saber el numero de error. La primera parte estar resuelta pero ahora en lugar de mostrarme el código de error y el mensaje de error solo me enseña el mensaje.
procedure TFrmvehiculodetalles.tratarexcepciones(sender: tobject; E : exception);
begin
if E.ClassNameis('eibinterbaseerror') then
showmessage(format('iberrorcode: %d - sqlerrorcode: %d',[EIBInterbaseError(e).IBErrorCode, EIBInterbaseError(e).SQLCode])+ #13 + 'mesaje: '+ e.Message)
else
ShowMessage(E.Message);
end;
Lo que no entiendo es porque no me enseña el numero error.

2 Respuestas

Respuesta
1
Sinceramente tampoco veo por qué no te funciona. Tendría que tener el programa delante para debuguearlo.
Pero, si simplemente quieres resolverlo, por qué no hacerlo de otra manera:
showmessage('iberrorcode: ' + inttostr(EIBInterbaseError(e).IBErrorCode)+ '- sqlerrorcode:'+ inttostr(EIBInterbaseError(e).SQLCode)+ #13 + 'mesaje: '+ e.Message)
Si así te sigue fallando, es que algo pasa, los códigos de error no son numéricos o algo así.
Respuesta
1
Yo creo que está fallando la comprobación:
if E.ClassNameis('eibinterbaseerror') ...
¿has probado lo sig.?
if E is EIBInterbaseError ...
¿Te pasa con todas las excepciones o solo con algunas?
Ya me cuentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas