Subject | RE: [firebird-support] Exception handling in loop |
---|---|
Author | Rick Debay |
Post date | 2013-01-10T19:37:22Z |
Since a block wasn't exited before the exception was handled, wouldn't
any database statements in the block stand?
Assume for a moment that it wasn't a constraint violation, but a table
trigger throwing a custom exception, and the catch block handles it
instead of handling constraint violations.
FB exception syntax confuses me, as I'm used to other languages where
the catch is outside the block.
-----Original Message-----
From: firebird-support@yahoogroups.com
[mailto:firebird-support@yahoogroups.com] On Behalf Of Thomas
Steinmaurer
Sent: Thursday, January 10, 2013 1:51 PM
To: firebird-support@yahoogroups.com
Subject: Re: [firebird-support] Exception handling in loop
BEGIN
FOR SELECT DO
BEGIN
INSERT
WHEN GDSCODE unique_key_violation DO
BEGIN
/* NOP */
END
END /* SELECT */
END /* PROCEDURE */
Regards,
Thomas
------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Visit http://www.firebirdsql.org and click the Resources item on the
main (top) menu. Try Knowledgebase and FAQ links !
Also search the knowledgebases at http://www.ibphoenix.com
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Yahoo! Groups Links
any database statements in the block stand?
Assume for a moment that it wasn't a constraint violation, but a table
trigger throwing a custom exception, and the catch block handles it
instead of handling constraint violations.
FB exception syntax confuses me, as I'm used to other languages where
the catch is outside the block.
-----Original Message-----
From: firebird-support@yahoogroups.com
[mailto:firebird-support@yahoogroups.com] On Behalf Of Thomas
Steinmaurer
Sent: Thursday, January 10, 2013 1:51 PM
To: firebird-support@yahoogroups.com
Subject: Re: [firebird-support] Exception handling in loop
> I want to select a bunch of items and insert them somewhere else. IfI guess this should be:
> the insert fails because of a duplicate primary key or unique
> constraint, I want to abandon that particular item and continue with
> the rest.
> This code outlines my logic. Is this correct for what I'm trying to
> accomplish?
>
> BEGIN
>
> FOR SELECT DO BEGIN
>
> BEGIN
>
> INSERT
>
> END /* INSERT */
>
> WHEN GDSCODE unique_key_violation DO
> BEGIN
> /* NOP */
> END
>
> END /* SELECT */
>
> END /* PROCEDURE */
BEGIN
FOR SELECT DO
BEGIN
INSERT
WHEN GDSCODE unique_key_violation DO
BEGIN
/* NOP */
END
END /* SELECT */
END /* PROCEDURE */
Regards,
Thomas
------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Visit http://www.firebirdsql.org and click the Resources item on the
main (top) menu. Try Knowledgebase and FAQ links !
Also search the knowledgebases at http://www.ibphoenix.com
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Yahoo! Groups Links