* Copyright © Oracle Corporation 1995. All Rights Reserved. IDENTIFICATION DIVISION. PROGRAM-ID. DBMS_DEL INITIAL. * * This subprogram, called by the program SQL$DIST_TRANS.COB, deletes * employee records from 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 record 01 EMPLOYEE-ID PIC X(5). * * 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 EMPLOYEE-ID, TID. MAIN-SECTION. * * Fetch the employee's database record and erase it from the database. MOVE EMPLOYEE-ID TO EMP_ID. * * 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". * * Find the employee record and make it current. DISPLAY "Fetching the record in 2pcdbms database". FETCH FIRST EMPLOYEE WITHIN ALL_EMPLOYEES USING EMP_ID FOR UPDATE ON ERROR CALL "DBM$SIGNAL" STOP RUN. * * Delete the record from the database. DISPLAY "Deleting the record in 2pcdbms database". ERASE ON ERROR CALL "DBM$SIGNAL" STOP RUN.