Error behavior
From InterBase
When a procedure encounters an error—either a SQLCODE
error, GDSCODE
error, or user-defined exception—all statements since the last SUSPEND
are undone.
Since select procedures can have multiple SUSPENDs
, possibly inside a loop statement, only the actions since the last SUSPEND
are undone. Since executable procedures should not use SUSPEND
, when an error occurs the entire executable procedure is undone (if EXIT
is used, as recommended).