cobol cics db2 program

Upload: lokeshscribd186

Post on 03-Apr-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Cobol CICS DB2 Program

    1/5

    000100******************************************************************00010001

    000200* *00020001

    000300* PROGRAM TITLE: WORKING WITH CURSORS IN DB2 *00030001

    000600* *00060001

    000700* PROGRAM OVERVIEW: *00070001

    000800* ---------------------------------------------------------- *00080001

    000900* | THIS PROGRAM DETALS WITH THE CONCEPT OF COBOL-CICS-DB2 |*00090001

    001000* ---------------------------------------------------------- *00100001

    001100* *00110001

    001200* PROGRAMS CALLED : NONE *00120001

    001300* *00130001

    001400******************************************************************00140001

    001500* 00150001

    001600 IDENTIFICATION DIVISION. 00160000

    001700 PROGRAM-ID. PY021. 00170000

    002000* 00200002

    002100******************************************************************00210002

    002200*** DATA DIVISION ***00220002

    002300******************************************************************00230002

    002400* 00240002

    002500 DATA DIVISION. 00250000

    002600* 00260002

    002700******************************************************************00270002

    002800*** DATA DIVISION ***00280002

    002900******************************************************************00290002003000* 00300002

    003100 WORKING-STORAGE SECTION. 00310000

    003210* 00321003

    003300 01 WS-STDSTID PIC 9(9) VALUE ZERO. 00330002

    003310* 00331003

    003400 01 WS-STD-NULL PIC S9(4) USAGE COMP. 00340002

    003410* 00341003

    003500 01 WS-MENU PIC 9(5). 00350003

    003510* 00351003

    003600 01 WS-MESSAGE PIC X(20) VALUE "HELLO". 00360003

    003610* 00361003

    003700 01 WS-COMMAREA PIC X(5) VALUE ZERO. 00370003

    003710* 00371003003800 01 WS-NAME PIC X(25). 00380003

    003810* 00381003

    003900 COPY DFHAID. 00390000

    004000 COPY MY0021. 00400000

    004100 COPY DFHATTR. 00410000

    004200 EXEC SQL 00420000

    004300 INCLUDE S29995 00430003

    004400 END-EXEC. 00440000

    004500 EXEC SQL 00450000

    004600 INCLUDE SQLCA 00460003

    004700 END-EXEC. 00470000

    004900 LINKAGE SECTION. 00490000

    005100 00510000005200 01 DFHCOMMAREA. 00520000

    005300 05 WS-SUBMENU PIC X(5). 00530000

    005310* 00531003

    005320******************************************************************00532003

    005330*** DATA DIVISION ***00533003

    005340******************************************************************00534003

    005350* 00535003

    005500 PROCEDURE DIVISION. 00550000

    005700 00570000

  • 7/29/2019 Cobol CICS DB2 Program

    2/5

    005800 A000-FIRST-PARA. 00580003

    005900 MOVE DFHCOMMAREA TO WS-COMMAREA. 00590003

    006000 IF EIBCALEN = 0 00600003

    006100 PERFORM B000-SEND-PARA 00610003

    006200 MOVE 'EEEEE' TO WS-COMMAREA 00620003

    006300 PERFORM B001-RETURN-PARA 00630003

    006400 ELSE 00640000

    006500 PERFORM C000-RECEIVE-PARA 00650003

    006600 EVALUATE EIBAID 00660000

    006700 WHEN DFHENTER 00670003

    006800 PERFORM C100-GETSTDNO-PARA 00680003

    006900 PERFORM C210-VALIDATE-PARA 00690003

    007000 PERFORM C220-WRITE-PARA 00700003

    007100 PERFORM B001-RETURN-PARA 00710003

    007200 WHEN DFHPF3 00720003

    007300 PERFORM D000-HANDLE-F3-PARA 00730003

    007400 WHEN DFHPF5 00740003

    007500 PERFORM D001-HANDLE-F5-PARA 00750003

    007600 WHEN DFHPF6 00760003

    007700 PERFORM D002-HANDLE-F6-PARA 00770003

    007800 WHEN OTHER 00780003

    007900 MOVE LOW-VALUES TO ADDSTDO 00790003

    008000 MOVE "INVALID KEY PRESSED" 00800003

    008010 TO ADDMSG2O 00801003

    008100 PERFORM B000-SEND-PARA 00810003008200 END-EVALUATE 00820003

    008300 PERFORM B001-RETURN-PARA 00830003

    008400 END-IF 00840003

    008410 . 00841003

    008500*-----------------------* 00850000

    008600*SEND MAP PARA. 00860000

    008700*-----------------------* 00870000

    008800 B000-SEND-PARA. 00880003

    008900 MOVE LOW-VALUE TO ADDSTDI. 00890000

    009000 EXEC CICS SEND 00900000

    009100 MAP('ADDSTD') 00910003

    009200 MAPSET('MY0021') 00920003

    009300 ERASE 00930003009400 FREEKB 00940003

    009500 END-EXEC 00950003

    009510 . 00951003

    009600*-----------------------* 00960000

    009700*RETURN MAP PARA. 00970000

    009800*-----------------------* 00980000

    009900 B001-RETURN-PARA. 00990003

    010000 EXEC CICS RETURN 01000000

    010100 TRANSID('Y021') 01010003

    010200 COMMAREA(WS-COMMAREA) 01020003

    010300 END-EXEC 01030003

    010310 . 01031003

    010400*-----------------------* 01040000010500*RECEIVE MAP PARA. 01050000

    010600*-----------------------* 01060000

    010700 C000-RECEIVE-PARA. 01070003

    010800 EXEC CICS RECEIVE 01080000

    010900 MAP('ADDSTD') 01090003

    011000 MAPSET('MY0021') 01100003

    011100 END-EXEC 01110003

    011110 . 01111003

    011200*-----------------------* 01120000

  • 7/29/2019 Cobol CICS DB2 Program

    3/5

    011300*AUTO GENARATION PARA. 01130000

    011400*-----------------------* 01140000

    011500 C100-GETSTDNO-PARA. 01150003

    011600 EXEC SQL 01160000

    011700 SELECT MAX(STID) 01170003

    011800 INTO :WS-STID:WS-STD-NULL 01180003

    011900 FROM STUDENT 01190003

    012000 END-EXEC 01200003

    012010 . 01201003

    012100 IF WS-STD-NULL = -1 01210000

    012200 THEN 01220000

    012300 COMPUTE WS-STDSTID = 200000000 01230003

    012400 ELSE 01240000

    012500 COMPUTE WS-STDSTID = WS-STID + 1 01250003

    012600 END-IF 01260003

    012610 . 01261003

    012700 01270000

    012800*C2000-ADDSTD-PARA. 01280000

    012900*----------------------------------------------------------------*01290000

    013000* INPUT VALIDATION *01300000

    013100*----------------------------------------------------------------*01310000

    013200 C210-VALIDATE-PARA. 01320003

    013300 IF (SDNAMEL = 0) THEN 01330003

    013500 MOVE "ENTER ATLEAST ONE CHARACTER FOR NAME" 01350003

    013510 TO ADDMSG1O 01351003013600 MOVE "MAKE CHANGES AND PRESS ENTER" 01360003

    013610 TO ADDMSG2O 01361003

    013700 MOVE -1 TO SDNAMEL 01370000

    013800 PERFORM C210-SENDFINAL-PARA 01380003

    013900 PERFORM B001-RETURN-PARA 01390003

    014000 END-IF. 01400000

    014100 01410000

    014200 IF ( SDMAILL = 0 ) 01420000

    014300 THEN 01430000

    014400 MOVE "ENTER ATLEAST ONE CHARACTER FOR MAIL" 01440003

    014410 TO ADDMSG1O 01441003

    014500 MOVE "MAKE CHANGES AND PRESS ENTER" 01450003

    014510 TO ADDMSG2O 01451003014600 MOVE -1 TO SDMAILL 01460000

    014700 MOVE ATTR-PXMBL TO SDNAMEA 01470003

    014800 PERFORM C210-SENDFINAL-PARA 01480003

    014900 PERFORM B001-RETURN-PARA 01490003

    015000 END-IF. 01500000

    015100 01510000

    015200 IF (SDBTCHL = 0) THEN 01520003

    015400 MOVE "ENTER ATLEAST ONE CHARECTER FOR BATCH" 01540003

    015410 TO ADDMSG1O 01541003

    015500 MOVE "MAKE CHANGES AND PRESS ENTER" 01550003

    015510 TO ADDMSG2O 01551003

    015600 MOVE ATTR-PXMBL TO SDNAMEA 01560003

    015700 MOVE ATTR-PXMBL TO SDMAILA 01570003015800 MOVE -1 TO SDBTCHL 01580003

    015900 PERFORM C210-SENDFINAL-PARA 01590003

    016000 PERFORM B001-RETURN-PARA 01600003

    016100 END-IF. 01610000

    016200*-----------------------* 01620000

    016300*FINAL MAP SEND PARA. 01630000

    016400*-----------------------* 01640000

    016500 C210-SENDFINAL-PARA. 01650003

    016600 EXEC CICS SEND 01660000

  • 7/29/2019 Cobol CICS DB2 Program

    4/5

    016700 MAP('ADDSTD') 01670003

    016800 MAPSET('MY0021') 01680003

    016900 ERASE 01690003

    017000 CURSOR 01700003

    017100 FREEKB 01710003

    017200 END-EXEC. 01720000

    017300*-----------------------* 01730000

    017400*WRITE TO TABLE PARA. 01740000

    017500*-----------------------* 01750000

    017600 C220-WRITE-PARA. 01760003

    017700 MOVE SDNAMEL TO WS-SNAME-LEN. 01770003

    017800 MOVE SDMAILL TO WS-SEMAIL-LEN. 01780003

    017900 MOVE SDBTCHL TO WS-BATCH-LEN. 01790003

    018000 MOVE SDNAMEI TO WS-SNAME-TEXT. 01800003

    018100 MOVE SDMAILI TO WS-SEMAIL-TEXT. 01810003

    018200 MOVE SDBTCHI TO WS-BATCH-TEXT. 01820003

    018300 MOVE WS-STDSTID TO WS-STID. 01830003

    018400 01840000

    018500 EXEC SQL 01850000

    018600 INSERT INTO STUDENT 01860003

    018700 VALUES(:WS-STID,:WS-SNAME,:WS-SEMAIL,:WS-BATCH) 01870003

    018800 END-EXEC. 01880000

    018900 IF SQLCODE = 0 01890003

    019000 THEN 01900000

    019100 MOVE "SUCCESS" TO MSGO 01910003019200 PERFORM C2300-SUCESS-WRITE-PARA 01920003

    019300 PERFORM C2210-SUCESS-SEND-MAP-PARA 01930003

    019400 PERFORM B0001-RETURN-PARA 01940003

    019500 ELSE 01950000

    019600 PERFORM C2400-FAIL-WRITE-PARA 01960003

    019700 PERFORM B0001-RETURN-PARA 01970003

    019800 END-IF 01980003

    019810 . 01981003

    019900*-----------------------* 01990000

    020000*WRITE TO MAP PARA. 02000000

    020100*-----------------------* 02010000

    020200 C230-SUCESS-WRITE-PARA. 02020003

    020300 MOVE WS-STDSTID TO SSSTIDO . 02030003020400 MOVE WS-SNAME-TEXT TO SSNAMEO . 02040003

    020500 MOVE WS-SEMAIL-TEXT TO SSMAILO . 02050003

    020600 MOVE WS-BATCH-TEXT TO SSBTCHO . 02060003

    020700*-----------------------* 02070000

    020800*ERROR HANDLING PARA. 02080000

    020900*-----------------------* 02090000

    021000 C240-FAIL-WRITE-PARA. 02100003

    021100 EVALUATE TRUE 02110000

    021200 WHEN SQLCODE = -551 02120003

    021300 MOVE ' NO PERMISSION OT ACCESS THE TABLE' 02130003

    021310 TO MSGO 02131003

    021400 WHEN SQLCODE = -204 02140003

    021500 MOVE 'THE TABLE DOES NOT EXIST' TO MSGO 02150003021510 TO MSGO 02151003

    021600 WHEN OTHER 02160003

    021700 MOVE ' SOME DATABASE ERROR' TO MSGO 02170003

    021710 TO MSGO 02171003

    021800 END-EVALUATE 02180000

    021900 EXEC CICS SEND TEXT 02190000

    022000 FROM(WS-MESSAGE) 02200003

    022100 ERASE 02210003

    022200 END-EXEC. 02220000

  • 7/29/2019 Cobol CICS DB2 Program

    5/5

    022300 EXEC CICS RETURN 02230000

    022400 TRANSID('Y021') 02240003

    022500 COMMAREA(WS-COMMAREA) 02250003

    022600 END-EXEC. 02260000

    022700*-----------------------* 02270000

    022800*SEND MAP PARA. 02280000

    022900*-----------------------* 02290000

    023000 C220-SUCESS-SEND-MAP-PARA. 02300003

    023100 EXEC CICS SEND 02310000

    023200 MAP('SUCSTD') 02320003

    023300 MAPSET('MY0021') 02330003

    023400 FREEKB 02340003

    023500 ERASE 02350003

    023600 END-EXEC 02360003

    023610 . 02361003

    023700*-----------------------* 02370000

    023800*HANDLING F3. 02380000

    023900*-----------------------* 02390000

    024000 D000-HANDLE-F3-PARA. 02400003

    024100 MOVE "THANK YOU" TO WS-MESSAGE 02410003

    024200 EXEC CICS SEND TEXT 02420000

    024300 FROM(WS-MESSAGE) 02430003

    024400 ERASE 02440003

    024500 FREEKB 02450003

    024600 END-EXEC. 02460000024700 EXEC CICS RETURN 02470000

    024800 END-EXEC 02480003

    024810 . 02481003

    024900*-----------------------* 02490000

    025000*HANDLING F5. 02500000

    025100*-----------------------* 02510000

    025200 D001-HANDLE-F5-PARA. 02520003

    025300 MOVE SPACES TO ADDSTDO 02530003

    025400 PERFORM B0000-SEND-PARA 02540000

    025500 PERFORM B0001-RETURN-PARA 02550003

    025510 . 02551003

    025600*-----------------------* 02560000

    025700*HANDLING F6. 02570000025800*-----------------------* 02580000

    025900 D002-HANDLE-F6-PARA. 02590003

    026000 EXEC CICS XCTL 02600000

    026100 PROGRAM('PY025') 02610003

    026200 END-EXEC 02620003

    026300 . 02630003