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-2
Using a Static SQL Cursor
 PROCEDURE DIVISION.
 START-LABEL.
 DISPLAY "This example uses a static cursor.".
 EXEC SQL WHENEVER SQLERROR GOTO sqlerrors END-EXEC. 
 EXEC SQL DECLARE CATALOG 'samdbcat' END-EXEC.
 EXEC SQL DECLARE SCHEMA 'sales' END-EXEC.
* Declare static cursor.
 EXEC SQL DECLARE get_by_partnum CURSOR FOR
 SELECT partnum, partdesc, price, qty_available
 FROM parts
 WHERE partnum >= :in-partnum
 FOR UPDATE OF partdesc, price, qty_available
 END-EXEC.
* Read in-partnum from terminal.
 DISPLAY "Enter lowest part number to be retrieved: ".
 ACCEPT in-partnum.
* Begin the transaction. 
 EXEC SQL BEGIN WORK END-EXEC.
* Open the cursor.
 EXEC SQL OPEN get_by_partnum END-EXEC.
* Fetch the first row of the result from table.
 EXEC SQL FETCH get_by_partnum
 INTO :hv-partnum, :hv-partdesc,
 :hv-price, :hv-qty-available
 END-EXEC.
* Update qty_available if qty_available is less than 1000.
 PERFORM UNTIL sqlstate = sqlstate-nodata
 IF hv-qty-available < 1000
 EXEC SQL UPDATE parts
 SET qty_available = qty_available + 100
 WHERE CURRENT OF get_by_partnum 
 END-EXEC. 
 DISPLAY "Update of part number: " hv-partnum
 END-IF
 EXEC SQL FETCH get_by_partnum
 INTO :hv-partnum, :hv-partdesc,
 :hv-price, :hv-qty-available
 END-EXEC.
 END-PERFORM.
Example C-1. Using a Static SQL Cursor (page2of3)
COBOL










