SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)

Exception Handling and Error Conditions
HP NonStop SQL/MX Programming Manual for C and COBOL523627-004
13-15
Special SQL/MX Error Conditions
... /* Process the SQL error. */
}
...
} /* end get_diagnostics */
* Set new-jobcode and new-jobdesc host variables.
...
EXEC SQL INSERT INTO sales.job (jobcode,jobdesc)
VALUES (:new-jobcode,:new-jobdesc)
END-EXEC.
...
IF SQLSTATE = SQLSTATE_OK
DISPLAY "Values were inserted!"
EXEC SQL COMMIT WORK END-EXEC.
ELSE PERFORM 1000-GET-DIAGNOSTICS.
...
STOP RUN.
1000-GET-DIAGNOSTICS.
EXEC SQL GET DIAGNOSTICS
:num = NUMBER ...
END-EXEC.
PERFORM VARYING i FROM 1 BY 1 UNTIL i > num
EXEC SQL GET DIAGNOSTICS EXCEPTION :i
:hv-tabname = TABLE_NAME,
:hv-colname = COLUMN_NAME,
:hv-sqlstate = RETURNED_SQLSTATE,
:hv-sqlcode = SQLCODE,
:hv-msgtext = MESSAGE_TEXT
END-EXEC.
...
DISPLAY "Condition: " i
DISPLAY "Table : " hv-tabname
DISPLAY "Column : " hv-colname
DISPLAY "SQLSTATE : " hv-sqlstate
DISPLAY "SQLCODE : " hv-sqlcode
DISPLAY "MESSAGE : " hv-msgtext
END-PERFORM.
* Process the SQL error
...
1000-GET-DIAGNOSTICS-END.
Special SQL/MX Error Conditions
Lost Open Error (8574)
When an embedded SQL program accesses a table or view by using a DML statement
or an SQL cursor, NonStop SQL/MX opens the table or view and holds it open until the
program stops executing or until the DML statement, if dynamically prepared, is
deallocated. If the DML statement or cursor, or the transaction containing the
statement or cursor, allows concurrent access to the table or view, the program could
lose its open on the table or view to a DDL or SQL utility operation. The DDL or utility
COBOL