SQL/MX 2.x Reference Manual (G06.24+, H06.03+)
Embedded-Only SQL/MX Statements
HP NonStop SQL/MX Reference Manual—523725-004
3-45
COBOL Examples of FETCH
•
This example uses extended cursor and statement names:
scanf("%s", in_curspec);
...
EXEC SQL PREPARE :curspec FROM :in_curspec;
EXEC SQL ALLOCATE :extcur CURSOR FOR :curspec;
...
EXEC SQL OPEN :extcur;
...
desc_max = 10;
ALLOCATE DESCRIPTOR 'fetch_sqlda' WITH MAX :desc_max;
DESCRIBE OUTPUT :curspec USING SQL DESCRIPTOR 'fetch_sqlda';
FETCH :extcur INTO SQL DESCRIPTOR 'fetch_sqlda';
... /* Process values in SQL descriptor area. */
EXEC SQL CLOSE :extcur;
COBOL Examples of FETCH
•
Suppose that you have a cursor that returns information from the PARTS table. 
The host variables are declared in a declaration section, and the cursor declaration 
lists the columns to be retrieved. The FETCH statement lists host variables to 
receive the values returned for each column. 
* Variable declarations
 01 SQLCODE PIC S9(9) comp.
 ...
* Host variable declarations 
 EXEC SQL BEGIN DECLARE SECTION END-EXEC. 
 01 SQLSTATE PIC X(5).
 01 hostvar ... .
 01 hostvar1 ... . 
 01 hostvar2 ... . 
 01 hostvar3 ... . 
 EXEC SQL END DECLARE SECTION END-EXEC. 
 ...
* Declare cursor. 
 EXEC SQL DECLARE cursor1 CURSOR FOR 
 SELECT COL1, COL2, COL3 
 FROM PARTS 
 WHERE COL1 >= :hostvar 
 ORDER BY COL1
 READ UNCOMMITTED ACCESS
 END-EXEC. 
 ...
* Open cursor. 
 EXEC SQL OPEN cursor1 END-EXEC. 
 ...
* Fetch current row. 
 EXEC SQL FETCH cursor1 
 INTO :hostvar1, :hostvar2, :hostvar3
 END-EXEC. 
 IF SQLCODE = 100 GOTO nodata.
 ...










