SQL/MP Programming Manual for COBOL

Host Variables
HP NonStop SQL/MP Programming Manual for COBOL529758-003
2-24
Using INVOKE With SQLCI
Using INVOKE With SQLCI
You can also execute the INVOKE directive interactively through SQLCI to create host
variable declarations in a copy file. For example, this INVOKE directive generates a
COBOL copy file from the DEPT table:
>> INVOKE =DEPT FORMAT COBOL85 TO COPYLIB (DEPTREC);
...
Use the COBOL SOURCE directive to copy the host variable declarations in your
program’s compilation unit:
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
?SOURCE COPYLIB (DEPTREC)
EXEC SQL END DECLARE SECTION END-EXEC.
Example 2-4. Using Host and Indicator Variable Names
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
EXEC SQL
INVOKE ODETAIL AS ORDER-DETAIL-RECORD SUFFIX -I
END-EXEC.
*Record Description *****************************
*01 ORDER-DETAIL-RECORD.
* 02 ORDERNUM PIC 9(6) COMP.
* 02 PARTNUM PIC 9(4) COMP.
* 02 UNIT-PRICE-I PIC S9(4) COMP.
* 02 UNIT-PRICE PIC S9(6)V9(2) COMP.
* 02 QTY-ORDERED-I PIC S9(4) COMP.
* 02 QTY-ORDERED PIC 9(5) COMP.
EXEC SQL END DECLARE SECTION END-EXEC.
...
PROCEDURE DIVISION.
...
EXEC SQL
SELECT ORDERNUM, PARTNUM, UNIT_PRICE, QTY_ORDERED
INTO :ORDERNUM OF ORDER-DETAIL-RECORD,
:PARTNUM OF ORDER-DETAIL-RECORD,
:UNIT-PRICE OF ORDER-DETAIL-RECORD
INDICATOR :UNIT-PRICE-I OF ORDER-DETAIL-RECORD,
:QTY-ORDERED OF ORDER-DETAIL-RECORD
INDICATOR :QTY-ORDERED-I OF ORDER-DETAIL-RECORD,
FROM SALES.ODETAIL
WHERE ORDERNUM = 300380 AND PARTNUM = 2402
END-EXEC.
...
IF UNIT-PRICE-I OF ORDER-DETAIL-RECORD < 0
OR QTY-ORDERED-I OF ORDER-DETAIL-RECORD < 0 THEN
PERFORM 0500-HANDLE-NULL-VALUE
ELSE PERFORM 0300-DISPLAY-RESULT.
...