SQL$HELP72.HLB  —  WHENEVER
    Specifies the execution path a host language program will take
    when any embedded SQL statement results in one of these following
    exception conditions:

    o  Row not found

    o  An error condition

    o  A warning condition

    For these conditions, the WHENEVER statement specifies that
    the program continue execution or branch to another part of the
    program.

1  –  Environment

    You can issue the WHENEVER statement only in host language
    programs.

2  –  Format

  (B)0WHENEVER  qqwq> NOT FOUND qqwqqqqk                    
              tq> SQLERROR qqqu    x                    
              mq> SQLWARNING qj    x                    
    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj                    
    mqwq> CONTINUE qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwq>
      tq> GOTO qqwqwqwqqqqqqqwq> <host-label-name> qqu  
      mq> GO TO qj x mq> : qqj                       x  
                   mqqqqqqqqqqq> <host-label-number> j  
                                                        

3  –  Arguments

3.1  –  CONTINUE

    Specifies that the program continue execution with the next
    sequential statement following the statement that generated an
    error.

3.2  –  GOTO

    Syntax options:

    host-label-name | host-label-number

    Specifies that the program branch to the statement identified
    by the host label. The form of the host label depends on the
    host language. You can use a colon (:)  before a host label
    represented by a name, but not before a host label represented
    by a number.

3.3  –  NOT_FOUND

    Indicates the exception condition returned when SQL processes all
    the rows of a result table:

    o  When a cursor referred to in a FETCH, UPDATE, or DELETE
       statement is positioned after the last row

    o  When a query specifies an empty result table

    This is the same condition identified by a value of 100 in the
    SQLCODE variable, the value of '02000' in the SQLSTATE variable,
    and by the RDB$_STREAM_EOF error.

3.4  –  SQLERROR

    Indicates any error condition. For the SQLERROR argument of
    the WHENEVER statement, SQL defines an error condition as any
    condition that returns a negative value to SQLCODE.

3.5  –  SQLWARNING

    Indicates any warning condition.

4  –  Example

    Example 1: Using WHENEVER statements in a PL/I program

    /* When an SQL statement results in
    an RDB$_STREAM_EOF error, the
    program branches to LABEL_NOT_FOUND: */
    EXEC SQL WHENEVER NOT FOUND GOTO LABEL_NOT_FOUND;

    /* When an SQL statement results in a
    warning severity error condition, the
    program branches to LABEL_ERROR: */
    EXEC SQL WHENEVER SQLWARNING GOTO LABEL_ERROR;

    /* When an SQL statement results in
    an error severity exception condition, the
    program branches to LABEL_ERROR: */
    EXEC SQL WHENEVER SQLERROR GOTO LABEL_ERROR;
Close Help