SQL/MP Programming Manual for COBOL85
Dynamic SQL Operations
HP NonStop SQL/MP Programming Manual for COBOL85—429326-004
10-34
Displaying Output
Example 10-3. Displaying Output Column Values
 DATA DIVISION.
* Define storage for all possible data types for output columns:
 01 COLUMNS-REC.
 02 COLUMN OCCURS 20 TIMES.
 03 C PIC X(60).
 03 RCHAR REDEFINES C PIC X(60).
 03 RINT REDEFINES C PIC 9(9) COMP.
 03 RVARCHAR REDEFINES C.
 04 LEN PIC S9(4) COMP.
 04 VAL PIC X(30) .
 03 RNUMERIC REDEFINES C PIC S9(15)V9(3) COMP.
 03 RDECIMAL REDEFINES C PIC S9(9)V9(3) DISPLAY.
 03 RLARGINT REDEFINES C PIC 9(18) COMP.
 03 RSMLINT REDEFINES C PIC 9(4) COMP.
* Define loop counter:
 01 INDEX PIC S9(4) COMP.
* Define a variable to save the length of a column:
 01 CLEN PIC S9(4) COMP.
* Define a variable to store the column name:
 01 NAME PIC X(30).
* Get the column name from the names buffer and store in 
* NAME.
 PROCEDURE DIVISION.
 PERFORM UNTIL INDEX IS > OUTPUT-NUM OF SQLSA
 ...
* Check for character data type:
 IF DATA-TYPE OF SQLVAR OF OUT-SQLDA(INDEX) < 64
 MOVE DATA-LEN OF SQLVAR OF OUT-SQLDA(INDEX) TO CLEN
 DISPLAY NAME, " = ",
 RCHAR OF COLUMN(INDEX) (1 : CLEN)
 ELSE
* Check for VARCHAR data type:
 IF DATA-TYPE OF SQLVAR OF OUT-SQLDA ( INDEX ) = 64
 MOVE LEN OF RVARCHAR OF COLUMN( INDEX ) TO CLEN
 DISPLAY NAME, " = ",
 VAL OF RVARCHAR OF COLUMN( INDEX ) ( 1 : CLEN )
 ELSE
* Check for 16-bit integer data type:
 IF DATA-TYPE OF SQLVAR OF OUT-SQLDA ( INDEX ) <= 131
 DISPLAY NAME , " = ", RSMLINT OF COLUMN( INDEX )
 ELSE ...
* Continue checking all possible data types.










