That's was the idea Helen, to have records of the errors, all of them. But it seems it's impossible to record some errors because:
CREATE PROCEDURE SAVE_LASTNAME( IDENTI TYPE OF COLUMN LASTNAMES.LSN_IDENTI, LASTNM TYPE OF COLUMN LASTNAMES.LSN_LASTNM) AS BEGIN UPDATE OR INSERT INTO LASTNAMES (LSN_IDENTI, LSN_LASTNM) VALUES (:Identi , :LastNm ) ; WHEN ANY DO IN AUTONOMOUS TRANSACTION DO INSERT INTO ERRORS (ERR_MODULE, ERR_COMENT) VALUES ('SAVE_LASTNAME', 'There was an error!!!') ; END; doesn't insert a row in the table ERRORS when I write: EXECUTE PROCEDURE SAVE_LASTNAME(0, 'SMITH678901234567890123456') The column LSN_LASTNM is VARCHAR(20) and the length of data is greater than 20 Of course, I can do the validation in my program, but I would prefer to do it in a stored procedure or trigger because the language can change any day. So, the question is: Is it impossible to insert a row in the table ERRORS when the lenght of the data is greater than 20 or that can do of some way? Greetings. Walter. On Thu, Sep 19, 2013 at 3:33 PM, Helen Borrie <hele...@iinet.net.au> wrote: > ** > > > > > > >On Thu, Sep 19, 2013 at 12:21 PM, Leyne, Sean <<mailto: > s...@broadviewsoftware.com>s...@broadviewsoftware.com> wrote: > > > >It is as expected, data type constraints are enforced before all other > operations. > > > >What would be the purpose of firing a trigger if the data is not valid? > > At 05:51 a.m. 20/09/2013, W O wrote: > > >Catching exceptions, maybe? > > Maybe NOT! PSQL has exception handling built in. The default handler > passes execution immediately to the final EXIT statement and returns the > error to the client. Write your own exception handlers in triggers, SPs and > block executes to get the exact behaviour you desire, including logging > records to external tables that will survive rollback. > > Helen Borrie, Support Consultant, IBPhoenix (Pacific) > Author of "The Firebird Book" and "The Firebird Book Second Edition" > http://www.firebird-books.net > __________________________________________________________ > > >