DB 2

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 13

IDENTIFICATION DIVISION.

PROGRAM-ID. CA11A130.
AUTHOR. SUBHADEEP.
DATE-WRITTEN. JULY 28,2013.
DATE-COMPILED. JULY 28,2013.
*---------------------------------------------------------------*---------- BRIEF PROGRAM DESCRIPTION -----------------------*---------------------------------------------------------------*AUTHOR
: SUBHADEEP
*DATE-WRITTEN
: 28-JULY-2013
*PROGRAM OBJECTIVE : THIS PROGRAM READS ALL THE RECORDS IN
*
SEQUENTIAL FILE AND DOING SOME CALCULATIONS
*
AND COPY THE MODIFIED RECORD TO ANOTHER
*
KSDS FILE.
*INPUT
: PRODUCT SEQUENTIAL FILE.
*OUTPUT
: COPIED PRODUCT OUTPUT FILE KSDS.
*ENTRY FROM
: NO OTHER PROGRAM CALLS THIS PROGRAM.
*REMARKS
: SAMPLE EMPLOYEE MAINTANANCE PROGRAM.
*TABLES INSERTED
: NONE.
*TABLES UPDATED
: NONE.
*INPUT FILES
: PRODUCT SEQUENTIAL FILE.
*OUTPUT FILES
: COPIED PRODUCT OUTPUT FILE KSDS.
*---------------------------------------------------------------*------MAINTENANCE LOG
------------------*---------------------------------------------------------------* REVISION NO.| DATE MODIFIED | AUTHOR
| COMMENTS
*---------------------------------------------------------------*
V1.0
| 28-JULY-2013 | SUBHADEEP | INITIAL VERSION
*---------------------------------------------------------------*---------------------------------------------------------------ENVIRONMENT DIVISION.
*---------------------------------------------------------------*---------------------------------------------------------------INPUT-OUTPUT SECTION.
*---------------------------------------------------------------*
FILE-CONTROL.
*
*---------------------------------------------------------------*DESCRIPTION OF INPUT FILE
*---------------------------------------------------------------SELECT BI001-ACCFILE

ASSIGN
TO ADD1
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS WS-FS1.

*----------------------------------------------------------------

*DESCRIPTION OF OUTPUT FILE


*---------------------------------------------------------------SELECT BO001-ACCFILE

ASSIGN
TO ADD2
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS WS-FS2.

*---------------------------------------------------------------DATA DIVISION.
*---------------------------------------------------------------*---------------------------------------------------------------FILE SECTION.
*---------------------------------------------------------------*---------------------------------------------------------------* RECORD STRUCTURE FOR INPUT FILE
*---------------------------------------------------------------FD BI001-ACCFILE.
01 BI001-ACCREC.
05 BI001-AID
PIC
9(4).
05 FILLER
PIC
X(1).
05 BI001-ASC
PIC
X(10).
05 FILLER
PIC
X(1).
05 BI001-IND
PIC
X(1).
05 FILLER
PIC
X(63).
*---------------------------------------------------------------* RECORD STRUCTURE FOR OUTPUT FILE
*---------------------------------------------------------------FD BO001-ACCFILE.
01 BO001-ACCREC.
05 BO001-AID
05 FILLER
05 BO001-ASC
05 FILLER

PIC
PIC
PIC
PIC

9(4).
X(1).
X(10).
X(65).

*---------------------------------------------------------------WORKING-STORAGE SECTION.
*---------------------------------------------------------------*---------------------------------------------------------------*VARIABLES TO HOLD INPUT FILE STATUS
*---------------------------------------------------------------01 WS-FS1
88 CS-FS1-SUCC
88 CS-FS1-EOF

PIC 9(2).
VALUE 00.
VALUE 10.

88
88
88
88
88

CS-FS1-RECNTFND
CS-FS1-SIZERROR
CS-FS1-ALRDYOPN
CS-FS1-NOTOPN
CS-FS1-WRONGMD

VALUE
VALUE
VALUE
VALUE
VALUE

23.
39.
41.
42.
47.

*---------------------------------------------------------------*VARIABLES TO HOLD OUTPUT FILE STATUS


*---------------------------------------------------------------01
88
88
88
88
88
88
88

WS-FS2
CS-FS2-SUCC
CS-FS2-EOF
CS-FS2-RECNTFND
CS-FS2-SIZERROR
CS-FS2-ALRDYOPN
CS-FS2-NOTOPN
CS-FS2-WRONGMD

PIC 9(2).
VALUE 00.
VALUE 10.
VALUE 23.
VALUE 39.
VALUE 41.
VALUE 42.
VALUE 48.

*---------------------------------------------------------------*VARIABLES TO HOLD TABLE ERROR CODE


*---------------------------------------------------------------01 WS-SQLCODE
88
88
88
88
88

CS-SQL-SUCC
CS-SQL-RECNTFND
CS-SQL-SYNERROR
CS-SQL-TBNTFND
CS-SQL-CLNTFND

PIC S9(3) SIGN LEADING


SEPARATE.
VALUE +000.
VALUE +100.
VALUE -104.
VALUE -204.
VALUE -206.

*---------------------------------------------------------------*DECLARATION OF SQL COMMUNICATION AREA


*---------------------------------------------------------------EXEC SQL
INCLUDE SQLCA
END-EXEC.

*---------------------------------------------------------------*DECLARATION OF SQL DCLGEN


*---------------------------------------------------------------EXEC SQL
INCLUDE ACCTB

END-EXEC.

*---------------------------------------------------------------*INTERMEDIATE VARIABLES.
*---------------------------------------------------------------01 WS-U
01 WS-D

PIC X(1) VALUE 'U'.


PIC X(1) VALUE 'D'.

*---------------------------------------------------------------PROCEDURE DIVISION.
*---------------------------------------------------------------*---------------------------------------------------------------0000-MAIN-PARA.
*THIS PARA INITIALIZE VARIBLES,CONTAIN PROCESS STEPS AND
*TERMINATES PROGRAM
*---------------------------------------------------------------PERFORM 1000-INITIALIZATION-PARA
THRU 1000-INITIALIZATION-PARA-EXIT
PERFORM 2000-PROCESS-PARA
THRU 2000-PROCESS-PARA-EXIT
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
.
0000-MAIN-PARA-EXIT.
EXIT
.
*---------------------------------------------------------------1000-INITIALIZATION-PARA.
*THIS PARA INITIALIZE WORKING STORAGE VARIABLES
*---------------------------------------------------------------INITIALIZE WS-FS1.
INITIALIZE WS-FS2.
INITIALIZE WS-SQLCODE.
1000-INITIALIZATION-PARA-EXIT.
EXIT
.
*---------------------------------------------------------------2000-PROCESS-PARA.
*THIS PARA CONTAIN THE PROCESS STEPS
*----------------------------------------------------------------

PERFORM 2100-OPEN-PARA
THRU 2100-OPEN-PARA-EXIT
PERFORM 2200-READ-PARA
THRU 2200-READ-PARA-EXIT UNTIL CS-FS1-EOF
PERFORM 2300-CLOSE-PARA
THRU 2300-CLOSE-PARA-EXIT
.
2000-PROCESS-PARA-EXIT.
EXIT
.
*---------------------------------------------------------------2100-OPEN-PARA.
*THIS PARA OPEN INPUT AND OUTPUT FILES
*---------------------------------------------------------------OPEN INPUT

BI001-ACCFILE

EVALUATE TRUE
WHEN CS-FS1-SUCC
DISPLAY 'OPEN SUCCESS ' WS-FS1
CONTINUE
WHEN CS-FS1-SIZERROR
DISPLAY 'OPEN SIZEERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-FS1-ALRDYOPN
DISPLAY 'OPEN ALREADY OPEN ERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER
DISPLAY 'OPEN ERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.
OPEN OUTPUT BO001-ACCFILE

EVALUATE TRUE
WHEN CS-FS2-SUCC
DISPLAY 'OPEN SUCCESS ' WS-FS2
CONTINUE
WHEN CS-FS2-SIZERROR
DISPLAY 'OPEN SIZEERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-FS2-ALRDYOPN
DISPLAY 'OPEN ALREADY OPEN ERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER
DISPLAY 'OPEN ERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.
2100-OPEN-PARA-EXIT.
EXIT
.
*---------------------------------------------------------------2200-READ-PARA.
*THIS PARA READ THE INPUT FILE SEQUENTIALLY
*---------------------------------------------------------------READ BI001-ACCFILE
EVALUATE TRUE
WHEN CS-FS1-SUCC
DISPLAY 'READ SUCCESS' WS-FS1
PERFORM 2210-CHECK-PARA
THRU 2210-CHECK-PARA-EXIT
WHEN CS-FS1-EOF
DISPLAY 'READ EOF SUCCESS' WS-FS1
CONTINUE
WHEN CS-FS1-SIZERROR
DISPLAY 'READ SIZEERROR' WS-FS1

PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-FS1-ALRDYOPN
DISPLAY 'READ ALREADY OPEN ERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER
DISPLAY 'READ ERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.
2200-READ-PARA-EXIT.
EXIT
.
*---------------------------------------------------------------2210-CHECK-PARA.
*THIS PARA CHECKS THE INDICATOR VARIABLE AND UPDATE OR DELETE
*ACCORDING TO THE FIELD
*---------------------------------------------------------------IF BI001-IND = WS-U
PERFORM 2211-UPDATE-TABLE-PARA
THRU 2211-UPDATE-TABLE-PARA-EXIT
END-IF.
IF BI001-IND = WS-D
PERFORM 2212-DELETE-RECORD-PARA
THRU 2212-DELETE-RECORD-PARA-EXIT
END-IF.

2210-CHECK-PARA-EXIT.
EXIT
.
*-------------------------------------------------------------2211-UPDATE-TABLE-PARA.
*THIS PARA UPDATE CERTAIN RECORD IN THE TABLE BASED ON INPUT
*FILE INDICATOR VARIABLE
*--------------------------------------------------------------

MOVE BI001-ASC

TO

HV-ASC

MOVE BI001-AID

TO

HV-AID

EXEC SQL
UPDATE TB_ACC
SET ASC = :HV-ASC
WHERE AID = :HV-AID

END-EXEC.
MOVE SQLCODE

TO

WS-SQLCODE

EVALUATE TRUE
WHEN CS-SQL-SUCC
DISPLAY 'SUCESSFULLY UPDATED' WS-SQLCODE
CONTINUE
WHEN CS-SQL-RECNTFND
DISPLAY 'NO RECORD TO UPDATE' WS-SQLCODE
CONTINUE
WHEN CS-SQL-TBNTFND
DISPLAY 'TABLE NOT FOUND' WS-SQLCODE
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-SQL-CLNTFND
DISPLAY 'COLUMN NOT FOUND' WS-SQLCODE
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-SQL-SYNERROR
DISPLAY 'SYNTAX ERROOR ' WS-SQLCODE
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER

DISPLAY 'SQL QUERY ERROR' WS-SQLCODE


PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.
2211-UPDATE-TABLE-PARA-EXIT.
EXIT
.

*-------------------------------------------------------------2212-DELETE-RECORD-PARA.
*THIS PARA DELETE CERTAIN RECORD FROM THE TABLE BASED ON INPUT
*FILE INDICATOR VARIABLE AFTER TAKING BACKUP
*--------------------------------------------------------------

MOVE BI001-AID

TO

HV-AID

EXEC SQL
SELECT
(
AID
,ASC
INTO
:HV-AID
,:HV-ASC
)
FROM TB_ACC
WHERE AID = :HV-AID
END-EXEC.

EXEC SQL
DELETE FROM TB_ACC

WHERE AID = :HV-AID

END-EXEC.
MOVE SQLCODE

TO

WS-SQLCODE

EVALUATE TRUE
WHEN CS-SQL-SUCC
DISPLAY 'SUCESSFULLY UPDATED' WS-SQLCODE
PERFORM 22121-WRITE-PARA
THRU 22121-WRITE-PARA-EXIT
WHEN CS-SQL-RECNTFND
DISPLAY 'NO RECORD TO DELETE' WS-SQLCODE
CONTINUE
WHEN CS-SQL-TBNTFND
DISPLAY 'TABLE NOT FOUND' WS-SQLCODE
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-SQL-CLNTFND
DISPLAY 'COLUMN NOT FOUND' WS-SQLCODE
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-SQL-SYNERROR
DISPLAY 'SYNTAX ERROOR ' WS-SQLCODE
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER
DISPLAY 'SQL QUERY ERROR' WS-SQLCODE
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.
2212-DELETE-RECORD-PARA-EXIT.
EXIT
.

*----------------------------------------------------------------

22121-WRITE-PARA.
*THIS PARA WRITE THE TABLE DELETED RECORD IN BACK UP PS FILE
*---------------------------------------------------------------MOVE HV-ASC

TO BO001-ASC

MOVE HV-AID

TO BO001-AID

WRITE

BO001-ACCREC

END-EVALUATE.
EVALUATE TRUE
WHEN CS-FS2-SUCC
DISPLAY 'WRTE SUCCESS ' WS-FS2
CONTINUE
WHEN CS-FS2-SIZERROR
DISPLAY 'WRITE SIZEERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-FS2-WRONGMD
DISPLAY 'WRITE WRONGMD ERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER
DISPLAY 'WRITE ERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.
22121-WRITE-PARA-EXIT.
EXIT
.
*----------------------------------------------------------------2300-CLOSE-PARA.
*THIS PARA CLOSE FILES WHICH ARE OPENED
*----------------------------------------------------------------CLOSE BI001-ACCFILE
EVALUATE TRUE

WHEN CS-FS1-SUCC
DISPLAY 'CLOSE SUCCESS' WS-FS1
CONTINUE
WHEN CS-FS1-SIZERROR
DISPLAY 'CLOSE SIZE ERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-FS1-NOTOPN
DISPLAY 'CLOSE NOTOPEN ERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER
DISPLAY 'CLOSE ERROR' WS-FS1
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.
CLOSE BO001-ACCFILE
EVALUATE TRUE
WHEN CS-FS2-SUCC
DISPLAY 'CLOSE SUCCESS' WS-FS2
CONTINUE
WHEN CS-FS2-SIZERROR
DISPLAY 'CLOSE SIZE ERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN CS-FS2-NOTOPN
DISPLAY 'CLOSE NOT OPEN ERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
WHEN OTHER
DISPLAY 'CLOSE ERROR' WS-FS2
PERFORM 9000-TERMINATION-PARA
THRU 9000-TERMINATION-PARA-EXIT
END-EVALUATE.

2300-CLOSE-PARA-EXIT.
EXIT
.
*----------------------------------------------------------------9000-TERMINATION-PARA.
*THIS PARA CONTAIN STOP RUN WHICH TERMINATES THE PROGRAM
*----------------------------------------------------------------STOP RUN.
9000-TERMINATION-PARA-EXIT.
EXIT
.

You might also like