* Copyright © Oracle Corporation 1995. All Rights Reserved. IDENTIFICATION DIVISION. PROGRAM-ID. DBMS_ADD INITIAL. * * This subprogram, called by the program SQL$DIST_TRANS.COB, adds * employee records to the Oracle CODASYL DBMS database. * DATA DIVISION. SUB-SCHEMA SECTION. * * Database declaration DB PARTSS5 WITHIN PARTS FOR "2PCDBMS". WORKING-STORAGE SECTION. * * Local variables 01 RET-STATUS PIC S9(9) COMP. 01 DBQ-READY-STRING PIC X(100) VALUE "READY CONCURRENT UPDATE FOR TRANSACTION". LINKAGE SECTION. * * Employee info record 01 EMP-INFO. 05 EMPLOYEE-ID PIC X(5). 05 LAST-NAME PIC X(14). 05 FIRST-NAME PIC X(10). * * Distributed transaction identifier (TID). 01 TID. 05 LOW_DATE PIC 9(9) COMP. 05 HIGH_DATE PIC 9(9) COMP. 05 DATE_INCARN PIC 9(4) COMP. 05 NODE_ID PIC 9(4) COMP. 05 NODE_IDH PIC 9(9) COMP. PROCEDURE DIVISION USING EMP-INFO, TID. MAIN-SECTION. * * Put the data into the database record. MOVE EMPLOYEE-ID TO EMP_ID. MOVE LAST-NAME TO EMP_LAST_NAME. MOVE FIRST-NAME TO EMP_FIRST_NAME. MOVE "5551234" TO EMP_PHONE. MOVE "99999" TO EMP_LOC. * * Callable DBQ must be used to do the ready within a distributed environment. CALL "DBQ$INTERPRET" USING BY DESCRIPTOR DBQ-READY-STRING BY REFERENCE TID GIVING RET-STATUS. IF RET-STATUS IS FAILURE THEN CALL "DBM$SIGNAL". * * Write the record to the database. DISPLAY "Storing the record in 2pcdbms database". STORE EMPLOYEE ON ERROR CALL "DBM$SIGNAL" STOP RUN.