SQL/MP Programming Manual for COBOL

Dynamic SQL Operations
HP NonStop SQL/MP Programming Manual for COBOL529758-003
10-17
Defining Storage for Input and Output Parameters
COLLATION-BUFFER, which supports collations with a maximum length of 512
bytes each
The INCLUDE STRUCTURES and INCLUDE SQLDA directives in the COBOL
program are:
DATA DIVISION.
EXEC SQL INCLUDE STRUCTURES SQLDA VERSION 315 END-EXEC.
...
EXEC SQL INCLUDE SQLDA (SQLDAX, 20, NAMES-BUFFER, 30,
CPRULES COLLATION-BUFFER, 512)
END-EXEC.
The HP COBOL compiler generates this SQLDA structure:
01 SQLDAX.
05 EYE-CATCHER PIC X(2) VALUE "D1".
05 NUM-ENTRIES PIC S9(4) COMP VALUE 20.
05 SQLVAR OCCURS 20 TIMES.
10 DATA-TYPE PIC S9(4) COMP VALUE 0.
10 DATA-LEN NATIVE-2.
10 PRECISION PIC S9(4) COMP VALUE 0.
10 NULL-INFO PIC S9(4) COMP VALUE 0.
10 VAR-PTR PIC S9(9) COMP VALUE -999999.
10 IND-PTR PIC S9(9) COMP VALUE -999999.
10 CPRL-PTR PIC S9(9) COMP VALUE -999999.
10 RESERVED PIC S9(9) COMP VALUE -1.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 NAMES-BUFFER PIC X(840).
01 COLLATION-BUFFER PIC X(10320).
EXEC SQL END DECLARE SECTION END-EXEC.
The HP COBOL compiler generates a Declare Section for the NAMES-BUFFER and
COLLATION-BUFFER declarations and determines their lengths:
NAMES-BUFFER = ((30 + 11) + 1) * 20
= 840 bytes
COLLATION-BUFFER = (512 + 4) * 20
= 10320 bytes
Defining Buffers for Parameter and Variable Storage
Define storage for parameter values according to data type. For example:
* Define storage for all possible data types. The VAR-PTR
* field in the input SQLDA points to this storage.
01 PARAM-REC.
02 PARAMS OCCURS 20 TIMES.
03 P PIC X(60).
03 PCHAR REDEFINES P PIC X(60).
03 PVARCHAR REDEFINES P.
04 LEN PIC S9(4) COMP.
04 VAL PIC X(58).
03 PNUMERIC REDEFINES P PIC S9(15)V9(3) COMP.
03 PINT REDEFINES P PIC 9(9) COMP.