SQL/MP Programming Manual for COBOL

Data Retrieval and Modification
HP NonStop SQL/MP Programming Manual for COBOL529758-003
4-21
UPDATE Statement
Example 4-3. Using the UPDATE statement
BEGIN DECLARE SECTION.
01 NEW-PARTS.
02 STARTING-PARTNUM PIC 9(4).
02 NEW-PARTDESC PIC X(18).
02 NEW-PRICE PIC S9(16)V9(2) COMP.
02 NEW-QTY PIC S9(9) COMP.
...
END DECLARE SECTION.
EXEC SQL DECLARE GET-BY-PARTNUM CURSOR FOR
SELECT PARTNUM,
PARTDESC,
PRICE,
QTY-AVAILABLE
FROM SALES.PARTS
WHERE ( PARTNUM >= :STARTING-PARTNUM )
STABLE ACCESS
FOR UPDATE OF PARTDESC, PRICE, QTY-AVAILABLE
END-EXEC.
...
...
PROCEDURE DIVISION.
...
3000-UPDATE-PARTNUM.
MOVE FIRST-NUMBER TO STARTING-PARTNUM OF NEW-PARTS.
EXEC SQL OPEN GET-BY-PARTNUM END-EXEC.
* Fetch one row from the PARTS table.
EXEC SQL FETCH GET-BY-PARTNUM END-EXEC.
* Determine whether this is a row to be updated.
...
* If the row is to be updated, assign new values
* to NEW-PARTDESC, NEW-PRICE, and NEW-QTY.
* Update the row at the current cursor position.
EXEC SQL UPDATE SALES.PARTS
SET PARTDESC = :NEW-PARTDESC OF NEW-PARTS,
PRICE = :NEW-PRICE OF NEW-PARTS,
QTY-AVAILABLE = :NEW-QTY OF NEW-PARTS
WHERE CURRENT OF GET-BY-PARTNUM
END-EXEC.
* Branch back to fetch another row from the PARTS table.
...
EXEC SQL CLOSE GET-BY-PARTNUM END-EXEC.