SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)
COBOL Sample Programs
HP NonStop SQL/MX Programming Manual for C and COBOL—523627-004
C-12
Using SQL Descriptor Areas in Dynamic SQL
ELSE
IF sqlda-name = "SALARY"
EXEC SQL
GET DESCRIPTOR 'out_sqlda' VALUE :i
:hv-salary = VARIABLE_DATA
END-EXEC.
DIVIDE 100.0 INTO hv-salary GIVING hv-temp
DISPLAY "Salary is: " hv-temp
ELSE
DISPLAY "Sqlda-name is " sqlda-name
END-IF
END-IF
END-IF
END-IF
END-IF
END-IF
END-PERFORM.
EXEC SQL DEALLOCATE PREPARE sqlstmt END-EXEC.
EXEC SQL DEALLOCATE DESCRIPTOR 'in_sqlda' END-EXEC.
EXEC SQL DEALLOCATE DESCRIPTOR 'out_sqlda' END-EXEC.
IF sqlstate = sqlstate-ok
DISPLAY "The program completed successfully."
STOP RUN.
****************************************************************
sqlerrors SECTION.
****************************************************************
EXEC SQL WHENEVER SQLERROR CONTINUE END-EXEC.
IF sqlstate not = sqlstate-ok
EXEC SQL GET DIAGNOSTICS
:hv-num = NUMBER
END-EXEC.
PERFORM VARYING i FROM 1 BY 1 UNTIL i > hv-num
MOVE SPACES TO hv-msgtxt
EXEC SQL GET DIAGNOSTICS EXCEPTION :i
:hv-tabname = TABLE_NAME,
:hv-colname = COLUMN_NAME,
:hv-sqlstate = RETURNED_SQLSTATE,
:hv-msgtxt = MESSAGE_TEXT
END-EXEC.
DISPLAY "Table : " hv-tabname
DISPLAY "Column : " hv-colname
DISPLAY "SQLSTATE: " hv-sqlstate
DISPLAY "Message : " hv-msgtxt
END-PERFORM
END-IF.
STOP RUN.
****************************************************************
END PROGRAM Program-exF112.
****************************************************************
Example C-4. Using Descriptor Areas With DESCRIBE (page 4 of 4)