¿Y que componentes de acceso a datos estás utilizando? Al menos DBExpress devuelve el código de la restricción violada dentro del mensaje de error. Si no es una restricción con nombre suele devolver un nombre del sistema (ojo, sigo hablando de oracle), como por ejemplo "SYS_C00xxxxxx".
Tendrías que capturar la excepción con un try..except y luego obtener el texto buscando dentro del mensaje de error (por ejemplo, con la función "Pos".)
No se, seguro que hay otras formas más elegantes, pero asi, a bote pronto, es lo primero que se me ocurre.
Saludos
|