* Copyright © Oracle Corporation 1995. All Rights Reserved. IDENTIFICATION DIVISION. PROGRAM-ID. TRANSFER_EAST INITIAL. * * This subprogram is called by the program SQL$DIST_TRANS.COB. It * calls SQL module procedures to transfer an employee record from the * WEST database to the EAST database. Both the WEST and EAST databases * are Oracle Rdb databases. * DATA DIVISION. WORKING-STORAGE SECTION. * * Employee record for input data 01 EMP-INFO. 05 EMPLOYEE-ID PIC X(5). 05 LAST-NAME PIC X(14). 05 FIRST-NAME PIC X(10). 05 MIDDLE-INITIAL PIC X. 05 ADDRESS-DATA-1 PIC X(25). 05 ADDRESS-DATA-2 PIC X(20). 05 CITY PIC X(20). 05 STATE PIC X(2). 05 POSTAL-CODE PIC X(5). 05 SEX PIC X. 05 BIRTHDAY PIC S9(11)V9(7) COMP. 05 STATUS-CODE PIC X. * * Declare the SQLCODE. 01 SQLCODE PIC S9(9) COMP. * * Declare the context structure. 01 CONTEXT. 05 CONTEXT-VERSION PIC 9(9) COMP. 05 CONTEXT-TYPE PIC 9(9) COMP. 05 CONTEXT-LENGTH PIC 9(9) COMP. 05 CONTEXT-TID. 10 LOW_DATE PIC 9(9) COMP. 10 HIGH_DATE PIC 9(9) COMP. 10 DATE_INCARN PIC 9(4) COMP. 10 NODE_ID PIC 9(4) COMP. 10 NODE_IDH PIC 9(9) COMP. 05 CONTEXT-END PIC 9(9) COMP. LINKAGE SECTION. * * The distributed TID from SQL$DIST_TRANS to be passed to SQL. 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 TID. MAIN-SECTION. * * Initialize the context structure. MOVE 1 TO CONTEXT-VERSION. MOVE 1 TO CONTEXT-TYPE. MOVE 16 TO CONTEXT-LENGTH. MOVE CORRESPONDING TID TO CONTEXT-TID. MOVE ZERO TO CONTEXT-END. * * Prompt the user for input and accept the input. DISPLAY "". DISPLAY "$ Please enter the ID of the employee: " WITH NO ADVANCING. ACCEPT EMPLOYEE-ID. * * Call the SQL module procedure START_2DB to start a distributed transaction. CALL "START_2DB" USING SQLCODE, CONTEXT. IF SQLCODE LESS THAN ZERO THEN CALL "SQL$DIST_TRANS_ERROR" USING TID, SQLCODE. * * Call the SQL module procedure SELECT_WEST to select the employee record * from the west database. DISPLAY "". DISPLAY "Fetching the row in 2pcwest database". CALL "SELECT_WEST" USING SQLCODE, EMP-INFO, CONTEXT. IF SQLCODE LESS THAN ZERO THEN CALL "SQL$DIST_TRANS_ERROR" USING TID, SQLCODE. IF SQLCODE EQUAL 100 THEN CALL "SQL$DIST_TRANS_ERROR" USING TID, SQLCODE. * * Call the SQL module procedure DELETE_WEST to delete the employee record * from the west database. DISPLAY "Deleting the row in 2pcwest database". CALL "DELETE_WEST" USING SQLCODE, EMPLOYEE-ID, CONTEXT. IF SQLCODE LESS THAN ZERO THEN CALL "SQL$DIST_TRANS_ERROR" USING TID, SQLCODE. * * Call the SQL module procedure INSERT_EAST to store the employee record * in the east database. DISPLAY "Storing the row in 2pceast database". CALL "INSERT_EAST" USING SQLCODE, EMP-INFO, CONTEXT. IF SQLCODE LESS THAN ZERO THEN CALL "SQL$DIST_TRANS_ERROR" USING TID, SQLCODE. EXIT PROGRAM.