Using SQLSTATE

WARNING! Although SQLSTATE is preferred over SQLCODE and SQLCA, this version of the precompiler supports only SQLCODE. A future version will fully support both SQLCA and SQLSTATE.

SQLSTATE is a status parameter. Its codes indicate the status of the most recently attempted statement—either the statement completed successfully or an error occurred during the execution of the statement.

The following example illustrates a declaration of SQLSTATE:

WORKING-STORAGE SECTION.
01 SQLSTATE PIC x(5)
 . . .
exec sql whenever sqlerror perform ERR-PARA 
 end-exec
 . . . 
ERR-PARA.
    IF  sqlstate = "ZD000" or
         sqlstate = "ZE000" or
         sqlstate = "ZF000" or
         sqlstate = "ZG000" or
         sqlstate = "ZH000" 
         DISPLAY "Unexpected results were ignored"
     ELSE 
        IF sqlstate = "08001" or sqlstate = "08000"
              DISPLAY "Connection failed-quitting"
              STOP RUN
         ELSE 
             DISPLAY "A non-results, non-connect
             — error occurred"
        END_IF
    END_IF

Table 3-3 lists SQLSTATE values:

Table 3-3: SQLSTATE values

Value

Description

00XXX

Successful execution

01XXX

Warning

02XXX

No data exists; no rows affected

Any other value

Error