Technical data
Example 7–1 Sample HP COBOL DML Program Statements
DATA DIVISION.
DB PARTSS3 WITHIN PARTS FOR NEW.
.
.
.
PROCEDURE DIVISION.
000-BEGIN.
READY PROTECTED UPDATE.
.
.
.
MOVE "AZ177311" TO PART_ID.
FETCH FIRST PART USING PART_ID.
MOVE "N" TO END-OF-COLLECTION.
PERFORM A100-LOOP THROUGH A100-LOOP-EXIT
UNTIL END-OF-COLLECTION = "Y".
.
.
.
STOP RUN.
A100-LOOP.
FETCH NEXT WITHIN PART_SUPPLY
AT END MOVE "Y" TO END-OF-COLLECTION
GO TO A100-LOOP-EXIT.
IF SUP_RATING = "0"
MOVE "5" TO SUP_RATING
MODIFY SUP_RATING
MOVE 1 TO MODIFY-COUNT
FETCH OWNER WITHIN VENDOR_SUPPLY
PERFORM PRINT-VENDOR.
IF MODIFY-COUNT = 1
MOVE "X" TO PART_STATUS
MODIFY PART_STATUS.
A100-LOOP-EXIT.
EXIT.
The following DBQ session tests and debugs the sample DML program statements
in Example 7–1:
$ DBQ
dbq> BIND PARTSS3 FOR NEW
dbq> READY PROTECTED UPDATE
dbq> SET CURSIG
dbq> FETCH FIRST PART USING PART_ID
DBQ prompts you for a PART_ID value:
PART_ID [CHARACTER(8)] =AZ177311
Entering AZ177311 as the PART_ID value causes the Bachman diagram in
Figure 7–1 to appear on your screen.
Debugging and Testing HP COBOL DML Programs 7–3