You are on page 1of 7

IDENTIFICATION DIVISION. PROGRAM-ID. DB2SIN. DATADIVISION. WORKING-STORAGE SECTION. COPY MATMAP. COPY DFHAID. COPY DFHBMSCA. 77 77 77 77 77 .

77 RESPONSE-CODE PIC S9(08) COMP. WS-TIMESTAMP WS-DATE1 WS-TIME1 WS-COMM-AREA WS-MSG PIC S9(15) COMP-3. PIC X(10). PIC X(08). PIC X(04). PIC X(6) VALUE 'THANK U'

01 WS-DATA. 02 WS-SLNO 02 WS-CITY 02 WS-STATE 02 WS-SCHOOL

X(4). PIC PIC PIC X(20).

PIC

X(10). X(10).

DECLEARE NAN CURSOR FOR SELECT * FROM INDIA ORDER BY WS-SLNO ASC. DECLEARE BAN CURSOR FOR SELECT * FROM INDIA ORDER BY WS-SLNO DESC. LINKAGE SECTION. 01 PROCEDURE DIVISION. EXEC SQL OPEN END-EXEC. EXEC SQL OPEN END-EXEC. MAIN PARA. IF EIBCALEN > 0 MOVE LOW-VALUES TO MATMAO. BAN NAN DFHCOMMAREA PIC X(04).

MOVE DFHCOMMAREA END-IF. EVALUATE TRUE

TO WS-COMM-AREA.

WHEN EIBCALEN = 0 MOVE LOW-VALUES TO MATMAO. PERFORM SEND-MAP-PARA. WHEN EIBAID = DFHPF3 PERFORM MESSAGE-PARA WHEN EIBAID = DFHPF5 MOVE LOW-VALUE TO MATMAPO

PERFORM SEND-MAP-PARA WHEN EIBAID = DFHPF6 PERFORM FIRST-PARA WHEN EIBAID = DFHPF7 PERFORM LAST-PARA WHEN EIBAID = DFHPF8 PERFORM NEXT-PARA WHEN EIBAID = DFHPF9 PERFORM PREV-PARA WHEN EIBAID = DFHENTER PERFORM SELECT-RECORD-PARA WHEN EIBAID = DFHF10 PERFORM INSERT-RECORD-PARA WHEN EIBAID = DFHF11 PERFORM UPDATE-RECORD-PARA WHEN EIBAID = DFHF12 PERFORM DELETE-RECORD-PARA WHEN OTHER MOVE 'INVALID KEY' TO MSGO. PERFORM SEND-MAP-PARA. END-EVALUATE. MOVE WS-SLNO PERFORM RETURN-PARA. RETURN-PARA. EXEC CICS RETURN TRANSID('5678') COMMAREA(WS-COMMAREA) END-EXEC. TO WS-COMMAREA.

FETCH-CUR1-PARA. EXEC SQL FETCH NAN INTO :WS-SNO :WS-CITY :WS-STATE :WS-SCHOOL END-EXEC. FETCH-CUR2-PARA. EXEC SQL FETCH BAN INTO :WS-SNO :WS-CITY :WS-STATE :WS-SCHOOL END-EXEC. RECIEVE-PARA. EXEC SQL RECEIVE MAPSET(MATMA) MAP(MATMA) INTO(MATMAI) END-EXEC. MOVE-PARA. MOVE MOVE MOVE MOVE SEND-MAP-PARA. MOVE '5678' TRANSIDO. PERFORM TIME-PARA. MOVE WS-DATE1 O DATEO. MOVE WS-TIME1 O TIMEO. EXEC CICS SEND MAPSET('MATMA') MAP('MATMA') FROM(MATMAO) ERASE FREEKB END-EXEC. TIME-PARA. EXEC CICS ASKTIME ABSTIME(WS-TIMESTAMP) T T TO WS-SLNO TO SLNOO. WS-CITY TO CITYO. WS-STATE TO STATEO. WS-SCHOOL TO SCHOOLO.

END-EXEC. EXEC CICS FORMATTIME ABSTIME(WS-TIMESTAMP) DDMMYYYY(WS-DATE1) DATESEP('/') END-EXEC. EXEC CICS FORMATTIME ABSTIME(WS-TIMESTAMP) TIME(WS-TIME1) TIMESEP(':') END-EXEC.

FIRST-PARA. MOVE LOW-VALUES TO MATMAPO. PERFORM FETCH-CUR1-PARA. PERFORM MOVE-PARA. PERFORM SEND-MAP-PARA. MOVE WS-SLNO TO WS-COMMAREA.

LAST-PARA. MOVE LOW-VALUES TO MATMAPO. PERFORM FETCH-CUR2-PARA. PERFORM MOVE-PARA. PERFORM SEND-MAP-PARA. MOVE WS-SLNO TO WS-COMMAREA. PREV-RECORD-PARA. MOVE LOW-VALUES TO MATMAPO. PERFORM FETCH-BAN-PARA. EVALUATE TRUE WHEN WS-SLNO = WS-COMMAREA PERFORM FETCH-BAN-PARA. IF SQLCODE = 100 MOVE 'FIRST RECORD' TO MSGO END-IF. PERFORM MOVE-MAP-PARA PERFORM SEND-MAP-PARA MOVE WS-SLNO TO WS-COMMAREA PERFORM RETURN-PARA WHEN OTHER PERFORM PREV-RECORD-PARA END-EVALUATE. NEXT-RECORD-PARA. MOVE LOW-VALUES TO MATMAPO. PERFORM FETCH-NAN-PARA. EVALUATE TRUE WHEN WS-SLNO = WS-COMMAREA PERFORM FETCH-NAN-PARA. IF SQLCODE = 100

MOVE 'LAST RECORD' TO MSGO END-IF. PERFORM MOVE-MAP-PARA PERFORM SEND-MAP-PARA MOVE WS-SLNO TO WS-COMMAREA PERFORM RETURN-PARA WHEN OTHER PERFORM NEXT-RECORD-PARA END-EVALUATE. INSERT-RECORD-PARA. PERFORM RECEIVE-PARA. MOVE SLNOI TO WS-SLNO PERFORM SELECT-PARA. IF SQLCODE = 0 THEN MOVE 'RECORD EXIST' TO MSGO PERFORM SEND-MAP-PARA. ELSE EXEC SQL INSERT INTO JAY VALUES ( :WS-SLN O , :WS-CITY , :WS-STAT E , :WS-SCHO OL ) END-EXEC END-IF. IF SQLCODE = 0 THEN MOVE 'INSERTION SUCCESSFUL' TO MSGO ELSE MOVE 'INSERTION FAILED' TO MSGO END-IF. PERFORM MOVE-MAP-PARA. PERFORM SEND-MAP-PARA. UPDATE-RECORD-PARA. PERFORM RECEIVE-PARA. MOVE SLNOI TO WS-SLNO PERFORM SELECT-PARA IF SQLCODE = 0 THEN PERFORM UPDATE-PARA ELSE MOVE ' RECORD NOT FOUND' TO MSGO PERFORM SEND-MAP-PARA. END-IF. UPDATE-PARA. IF STATEI = WS-STATE NEXT SENTENCE ELSE EXEC SQL UPDATE INDIA SET STATE = :WS-STATEI WHERE SLNO = :WS-SLNO END-EXEC END-IF. IF CITYI = WS-CITY

NEXT SENTENCE ELSE EXEC SQL UPDATE INDIA SET CITY = :WS-CITYI WHERE SLNO = :WS-SLNO END-EXEC END-IF. IF SCHOOLI = WS-SCHOOL NEXT SENTENCE ELSE EXEC SQL UPDATE INDIA SET SCHOOL = :WS-SCHOOLI WHERE SLNO = :WS-SLNO END-EXEC END-IF. PERFORM MOVE-MAP-PARA. PERFORM SEND-MAP-PARA. DELETE-RECORD-PARA. PERFORM RECEIVE-PARA. MOVE SLNOI TO WS-SLNO PERFORM SELECT-PARA IF SQLCODE = 0 THEN PERFORM DELETE-PARA ELSE MOVE ' RECORD NOT FOUND' TO MSGO PERFORM SEND-MAP-PARA END-IF. DELETE-PARA. EXEC SQL DELETE FROM INDIA WHERE SLNO = :WS-SLNO END-EXEC. IF SQLCODE = 0 THEN MOVE 'DELETED SUCCESSFUL' TO MSGO ELSE MOVE ' RECORD NOT FOUND' TO MSGO END-IF. PERFORM MOVE-MAP-PARA. PERFORM SEND-MAP-PARA. SELECT-RECORD-PARA. MOVE LOW-VALUE TO ENQMAI. PERFORM RECIVE-PARA. MOVE SLNOI TO WS-SLNO. PERFORM SELECT-PARA. IF SLNOI = SPACES MOVE LOW-VALUE TO ENQMAO MOVE 'ENTER SLNO ' TO MSGO PERFORM SEND-MAP-PARA END-IF. IF SQLCODE = 0 MOVE LOW-VALUE TO ENQMAO PERFORM MOVE-MAP-PARA PERFORM SEND-MAP-PARA MOVE WS-SLNO TO WS-COMMAREA ELSE MOVE 'RECORD DOES NOT EXIST' TO MSGO

PERFORM SEND-MAP-PARA END-IF. SELECT-PARA. EXEC SQL SELECT SLNO,STATE,CITY,SCHOOL INTO :WS-SLNO, :WS-STATE, :WS-CITY, :WS-SCHOOL FROM INDIA WHERE SLNO = :WS-SLNO END-EXEC.

You might also like