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)










