SQLERRMESSAGE
If an SQL error occurs, the SQLERRMESSAGE operator returns the error
        message associated with the error code. This is a character string that can be displayed to
        the user with the ERROR instruction.
ERROR SQLERRMESSAGE 
        Changes to function 
fetch_cust
            (custquery.4gl)01 FUNCTION fetch_cust (p_fetch_flag)
02    DEFINE p_fetch_flag SMALLINT,
03              fetch_ok SMALLINT
04
05   LET fetch_ok = FALSE
06   IF (p_fetch_flag = 1) THEN
07      WHENEVER ERROR CONTINUE
08      FETCH NEXT cust_curs 
09         INTO mr_custrec.*
10      WHENEVER ERROR STOP
11   ELSE
12       WHENEVER ERROR CONTINUE
13       FETCH PREVIOUS cust_curs 
14         INTO mr_custrec.*
15       WHENEVER ERROR STOP
16   END IF
17
18   CASE
19   WHEN (SQLCA.SQLCODE = 0)
20     LET fetch_ok = TRUE
21   WHEN (SQLCA.SQLCODE = NOTFOUND)
22     LET fetch_ok = FALSE
23   WHEN (SQLCA.SQLCODE < 0)
24     LET fetch_ok = FALSE
25     ERROR SQLERRMESSAGE
26   END CASE 
27
28  RETURN fetch_ok 
29
30 END FUNCTIONNote: 
- Lines 
08,09,13,14The SQL statements are surrounded byWHENEVER ERRORstatements. If an error occurs during the SQL statements, the program will continue. The error handling is reset to the default (STOP) immediately after each SQL statement so that failures of other program statements will not be ignored. - Lines 
18to26Immediately after theWHENEVER ERROR STOPstatement, theSQLCA.SQLCODEis checked, to see whether the SQL statement succeeded. ACASEstatement is used, since there are more than two conditions to be checked.