WHENEVER

From InterBase

Go Up to Statement and Function Reference (Language Reference Guide)


Traps SQLCODE errors and warnings. Available in gpre.

WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}
{GOTO label | CONTINUE};
Argument Description

NOT FOUND

Traps SQLCODE = 100, no qualifying rows found for the executed statement

SQLERROR

Traps SQLCODE < 0, failed statement

SQLWARNING

Traps SQLCODE > 0 AND < 100, system warning or informational message

GOTO <label>

Jumps to program location specified by <label> when a warning or error occurs

CONTINUE

Ignores the warning or error and attempts to continue processing

Description: WHENEVER traps for SQLCODE errors and warnings. Every executable SQL statement returns a SQLCODE value to indicate its success or failure. If SQLCODE is zero, statement execution is successful. A non-zero value indicates an error, warning, or not found condition.

If the appropriate condition is trapped for, WHENEVER can:

  • Use GOTO label to jump to an error-handling routine in an application.
  • Use CONTINUE to ignore the condition.

WHENEVER can help limit the size of an application, because the application can use a single suite of routines for handling all errors and warnings.

WHENEVER statements should precede any SQL statement that can result in an error. Each condition to trap for requires a separate WHENEVER statement. If WHENEVER is omitted for a particular condition, it is not trapped.

Tip:
Precede error-handling routines with WHENEVER … CONTINUE statements to prevent the possibility of infinite looping in the error-handling routines.

Example: In the following code from an embedded SQL application, three WHENEVER statements determine which label to branch to for error and warning handling:

EXEC SQL
WHENEVER SQLERROR GO TO Error; /* Trap all errors. */
EXEC SQL
WHENEVER NOT FOUND GO TO AllDone; /* Trap SQLCODE = 100 */
EXEC SQL
WHENEVER SQLWARNING CONTINUE; /* Ignore all warnings. */

For a complete discussion of error-handling methods and programming, see the Embedded SQL Guide.

Advance To: