Technical data
Example 8–2 (Cont.) Backing Up a Database
CONSISTS-UNLOAD.
FETCH NEXT WITHIN CONSISTS_OF RETAINING MANAGES ALL_EMPLOYEES
AT END GO TO DIVISION-UNLOAD.
MOVE "C" TO CONTROL-FIELD OF CONSISTS-RECORD.
MOVE EMP_ID OF EMPLOYEE TO EMP_ID OF CONSISTS-RECORD.
WRITE CONSISTS-RECORD.
GO TO CONSISTS-UNLOAD.
RESP-UNLOAD.
FETCH CURRENT WITHIN ALL_EMPLOYEES.
RESP-UNLOAD-LOOP.
FETCH NEXT WITHIN RESPONSIBLE_FOR
AT END GO TO EMPLOYEE-UNLOAD.
MOVE PART_ID OF PART TO PART_ID OF RESP-FOR-RECORD.
MOVE EMP_ID OF EMPLOYEE TO EMP_ID OF RESP-FOR-RECORD.
WRITE RESP-FOR-RECORD.
GO TO RESP-UNLOAD-LOOP.
EMPLOYEE-UNLOAD-END.
EXIT.
8.3 Accessing and Displaying Database Information
The PARTBOM program in Example 8–3 produces a report of subcomponents
(bill of materials) for a part in the PARTS database. Refer to Figure 5–23 for an
explanation of the report and Section 8.6 for a sample listing.
Example 8–3 Accessing and Displaying Database Information
IDENTIFICATION DIVISION.
PROGRAM-ID. PARTBOM.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
SUB-SCHEMA SECTION.
DB PARTSS1 WITHIN PARTS FOR NEW.
LD KEEP-COMPONENT.
WORKING-STORAGE SECTION.
01 INPUT-REC PIC X(80).
01 INDENT-LEVEL PIC 9(02) VALUE 40.
01 END-OF-COLLECTION PIC 9(01) VALUE 0.
88 END-COLLECTION VALUE 1.
01 INDENT-TREE.
02 INDENT-TREE-ARRAY PIC X(03) OCCURS 1 TO 40 TIMES
DEPENDING ON INDENT-LEVEL.
PROCEDURE DIVISION.
INITIALIZATION.
READY MAKE, BUY EXCLUSIVE RETRIEVAL.
MOVE ALL "| " TO INDENT-TREE.
(continued on next page)
Database Programming Examples 8–15