Subject Re: [IBO] Handling a FK violation in OnError
Author Antti Kurenniemi
Thanks, Geoff, this is good info. I think I'll check the application level
exception handling, it seems to be just the ticket here.

Antti Kurenniemi

----- Original Message -----
From: "Geoff Worboys" <geoff@...>
To: <>
Sent: Friday, September 22, 2006 8:24 AM
Subject: Re: [IBO] Handling a FK violation in OnError

> Antti,
>> thank you. I will check the code you pointed to (dang, I suck
>> at reading other people's code ;-),
> Practice makes perfect. :-)
>> and yes, I do use the update bar and I use it a lot. I'm
>> wondering if I'm doing something out of the ordinary here /
>> should I be doing this in a different way? I pretty much only
>> need to change the error message to something more end-user
>> friendly in some cases, such as the FK violation on delete...
> I actually use Application.OnException to collect all the
> exceptions and display them using my own dialog box. In that
> processing I detect EIB_ISCError (in your case that will
> probably be EIBO_ISCError because you are using TIBODataset).
> When I find the specific error types I do various interesting
> things such as friendly message translation - in some cases
> pulling additional info back from the database itself (this
> can be problematic).
> Application.OnException has the advantage of being called from
> around the message/event loop. This generally (callbacks and
> sendmessage can be an issue) means that the particular section
> of application code has completed what it wanted to do,
> including any clean up etc. Note that reliance on particular
> objects still existing can be an issue - as application cleanup
> may have removed them. In such cases you can use the component
> OnError handler to extract the information you need (and may
> still be available at that point) and then throw your own
> exception - to once again be caught by Application.OnException
> and displayed appropriately.
> (I hope that all made sense.)
> The main places I use IBO's own internal OnError events is when
> I specifically want to change default processing - for example
> in TIB_Script where I may want to ignore or log errors or
> whatever. Actually blocking errors can be a problem, as you
> have discovered.
> --
> Geoff Worboys
> Telesis Computing