Technical data

Example 8–5 (Cont.) Creating Relationships Between Records of the Same
Type
C500-CONNECT-COMPONENT-4.
MOVE "SAMP3" TO COMP_SUB_PART.
MOVE "SAMP1" TO COMP_OWNER_PART.
MOVE "U" TO COMP_MEASURE.
MOVE 4 TO COMP_QUANTITY.
IF DB-OK
STORE COMPONENT
ON ERROR
DISPLAY "C000 Error in storing second component"
PERFORM 900-DISPLAY-DB-CONDITION
MOVE 1 TO DB-ERROR-CHECK.
800-VERIFY-ROUTINE.
CALL "PARTBOM".
900-DISPLAY-DB-CONDITION.
MOVE DB-CONDITION TO DB-COND.
MOVE DB-CURRENT-RECORD-ID TO DB-ID.
DISPLAY "DB-CONDITION - ", DB-COND.
DISPLAY "DB-CURRENT-RECORD-NAME - ",
DB-CURRENT-RECORD-NAME.
DISPLAY "DB-CURRENT-RECORD-ID - ", DB-ID.
CALL "DBM$SIGNAL".
IDENTIFICATION DIVISION.
PROGRAM-ID. PARTBOM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT-FILE ASSIGN TO "SYS$COMMAND".
DATA DIVISION.
SUB-SCHEMA SECTION.
* DB PARTSS1 WITHIN PARTS FOR "NEW.ROO".
FILE SECTION.
FD INPUT-FILE
LABEL RECORDS ARE STANDARD
DATA RECORD IS INPUT-REC.
01 INPUT-REC PIC X(80).
WORKING-STORAGE SECTION.
01 INDENT-LEVEL PIC 9(02) VALUE 40.
01 DBM$_END PIC 9(09) COMP
VALUE EXTERNAL DBM$_END.
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.
OPEN INPUT INPUT-FILE.
MOVE ALL "| " TO INDENT-TREE.
(continued on next page)
8–20 Database Programming Examples