how to insert,update,view,delete records in a KSDS file.
Posted: Thu Oct 13, 2011 3:52 pm
Hi,
Can any one please help me out in giving a sample code for insertion, deletion, updation,viewing records in file using a cobol program with only one output file which is KSDS file and accepting inputs from JCL and write the records in that output KSDS file.
RECORD KEY IS ENO
We tried inserting the file as below code but it wasnt writing into the file.
******************************************************************
* INPUT-OUTPUT SECTION *
******************************************************************
INPUT-OUTPUT SECTION.
******************************************************************
* FILE-CONTROL *
******************************************************************
FILE-CONTROL.
SELECT ENTRADA1
ASSIGN TO FILE1
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS ENO
FILE STATUS IS FS-ENTRADA1.
******************************************************************
* D A T A D I V I S I O N *
******************************************************************
DATA DIVISION.
******************************************************************
* FILE SECTION *
******************************************************************
FILE SECTION.
FD ENTRADA1.
01 RG-ENTRADA1.
05 ENO PIC X(5).
05 ENAME PIC X(10).
05 ESAL PIC 99999.
******************************************************************
* W O R K I N G S T O R A G E S E C T I O N *
******************************************************************
WORKING-STORAGE SECTION.
******************************************************************
* VARIABLES PARA EL CONTROL DE ERRORES *
******************************************************************
01 FS-FILE-STATUS.
05 FS-ENTRADA1 PIC X(02) VALUE SPACES.
01 TXNCODE PIC 9.
88 INS VALUE 1.
88 UPD VALUE 2.
88 DEL VALUE 3.
88 CALSAL VALUE 4.
88 VIEW VALUE 5.
88 EXIT1 VALUE 0.
01 CH1 PIC X VALUE 'Y'.
01 FIELD PIC X(6) VALUE ALL SPACE.
01 PFAMT PIC 9(5) VALUE ALL ZEROS.
01 RESULT PIC 9(9) VALUE ALL ZEROS.
01 EOF PIC X VALUE 'Y'.
01 CANCELAR PIC X(8) VALUE 'CANCELAR'.
******************************************************************
* *
* P R O C E D U R E D I V I S I O N *
* *
******************************************************************
PROCEDURE DIVISION.
PERFORM PARA-1.
******************************************************************
* 2000-PROCESO *
* *
* PROCESO PARA HACER LA ELIMINACIÓN DE CONSOLIDACIÓN Y PROCESOS *
******************************************************************
PARA-1.
OPEN I-O ENTRADA1
PERFORM UNTIL CH1 EQUAL 'N'
DISPLAY 'WHICH TRANSACTION DO YOU WANT TO PERFORM'
DISPLAY '1-INSERT'
DISPLAY '2-UPDATE'
DISPLAY '3-DELETE'
DISPLAY '4-CALCULATE SALARY'
DISPLAY '5-VIEW'
DISPLAY '0-EXIT'
DISPLAY 'ENTER NUMBER TO PERFORM TRANSACTION:'
ACCEPT TXNCODE
EVALUATE TRUE
WHEN INS PERFORM INS-PARA
WHEN UPD PERFORM UPD-PARA
WHEN DEL PERFORM DEL-PARA
WHEN CALSAL PERFORM CAL-SAL-PARA
WHEN VIEW PERFORM VIEW-PARA
WHEN EXIT1 PERFORM EXIT-PARA
END-EVALUATE
END-PERFORM.
CLOSE ENTRADA1.
STOP RUN.
******************************************************************
* INS-PARA *
******************************************************************
INS-PARA.
DISPLAY 'INSERTING EMP RECORD'.
DISPLAY 'ENTER EMP NUMBER : '.
ACCEPT ENO.
DISPLAY 'ENTER EMP NAME : '.
ACCEPT ENAME.
DISPLAY 'ENTER EMP SALARY : '.
ACCEPT ESAL.
WRITE RG-ENTRADA1
INVALID KEY DISPLAY 'REC ALREADY EXIST WITH EMP NO'
END-WRITE.
******************************************************************
* UPD-PARA *
******************************************************************
UPD-PARA.
DISPLAY 'UPDATING EMP RECORD'
DISPLAY 'WHICH RECORD YOU WANT TO UPDATE : '
DISPLAY 'ENTER EMP NUMBER TO UPDATE : '
ACCEPT ENO.
READ ENTRADA1
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST'
NOT INVALID KEY
DISPLAY 'WHICH FIELD YOU WANT TO UPDATE'
DISPLAY '1-NAME OR 2-SALARY'
ACCEPT FIELD
IF FIELD EQUAL 1
DISPLAY 'ENTER VALUE FOR NAME : '
ACCEPT ENAME
ELSE
IF FIELD EQUAL 2
DISPLAY 'ENTER VALUE FOR SALARY : '
ACCEPT ESAL
END-IF
END-IF
REWRITE RG-ENTRADA1
DISPLAY 'RECORD HAS BEEN UPDATED'
END-READ.
******************************************************************
* DEL-PARA *
******************************************************************
DEL-PARA.
DISPLAY 'DELETING EMP RECORD'
DISPLAY 'WHICH RECORD YOU WANT TO DELETE : '
ACCEPT ENO.
DELETE ENTRADA1
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST'
NOT INVALID KEY
DISPLAY 'RECORD HAS BEEN DELETED'
END-DELETE.
******************************************************************
* CAL-SAL-PARA *
******************************************************************
CAL-SAL-PARA.
DISPLAY 'CALCULATE SALARY OF EMP RECORD'
DISPLAY 'WHICH RECORD YOU WANT TO CALCULATE THE SAL : ' 00967104
DISPLAY 'ENTER EMP NUMBER TO CALCULATE : ' 00967204
ACCEPT ENO. 00968003
00969003
READ ENTRADA1 00969103
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST' 00969203
NOT INVALID KEY 00969303
DISPLAY 'ENTER THE PF-AMOUNT TO BE ADDED TO SAL' 00969404
ACCEPT PFAMT 00969604
00969703
ADD PFAMT, ESAL GIVING RESULT 00970204
00970404
DISPLAY 'RESULT IS EQUAL ' RESULT 00970804
00970903
REWRITE RG-ENTRADA1 00971003
DISPLAY 'PF AMOUNT IS ADDED TO SALARY' 00971104
END-READ. 00971203
00971303
******************************************************************
* VIEW-PARA *
******************************************************************
VIEW-PARA. 00972006
DISPLAY 'VIEW EMP RECORD' 00980002
00981002
DISPLAY 'WHICH RECORD YOU WANT TO VIEW' 00990002
ACCEPT ENO. 01000002
01001002
READ ENTRADA1 01010002
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST' 01020002
NOT INVALID KEY 01030002
DISPLAY 'EMP-NO ->' ENO 01040002
DISPLAY 'EMP-NAME->' ENAME 01050002
DISPLAY 'EMP-SAL ->' ESAL 01060002
END-READ. 01070002
01080001
******************************************************************
* EXIT-PARA *
******************************************************************
EXIT-PARA. 01090002
MOVE 'N' TO CH1. 01100004
I will be very helpfull if i get help as soon as possible.
Thanks in advance,
sowjanya.[code][/code]
Can any one please help me out in giving a sample code for insertion, deletion, updation,viewing records in file using a cobol program with only one output file which is KSDS file and accepting inputs from JCL and write the records in that output KSDS file.
RECORD KEY IS ENO
We tried inserting the file as below code but it wasnt writing into the file.
******************************************************************
* INPUT-OUTPUT SECTION *
******************************************************************
INPUT-OUTPUT SECTION.
******************************************************************
* FILE-CONTROL *
******************************************************************
FILE-CONTROL.
SELECT ENTRADA1
ASSIGN TO FILE1
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS ENO
FILE STATUS IS FS-ENTRADA1.
******************************************************************
* D A T A D I V I S I O N *
******************************************************************
DATA DIVISION.
******************************************************************
* FILE SECTION *
******************************************************************
FILE SECTION.
FD ENTRADA1.
01 RG-ENTRADA1.
05 ENO PIC X(5).
05 ENAME PIC X(10).
05 ESAL PIC 99999.
******************************************************************
* W O R K I N G S T O R A G E S E C T I O N *
******************************************************************
WORKING-STORAGE SECTION.
******************************************************************
* VARIABLES PARA EL CONTROL DE ERRORES *
******************************************************************
01 FS-FILE-STATUS.
05 FS-ENTRADA1 PIC X(02) VALUE SPACES.
01 TXNCODE PIC 9.
88 INS VALUE 1.
88 UPD VALUE 2.
88 DEL VALUE 3.
88 CALSAL VALUE 4.
88 VIEW VALUE 5.
88 EXIT1 VALUE 0.
01 CH1 PIC X VALUE 'Y'.
01 FIELD PIC X(6) VALUE ALL SPACE.
01 PFAMT PIC 9(5) VALUE ALL ZEROS.
01 RESULT PIC 9(9) VALUE ALL ZEROS.
01 EOF PIC X VALUE 'Y'.
01 CANCELAR PIC X(8) VALUE 'CANCELAR'.
******************************************************************
* *
* P R O C E D U R E D I V I S I O N *
* *
******************************************************************
PROCEDURE DIVISION.
PERFORM PARA-1.
******************************************************************
* 2000-PROCESO *
* *
* PROCESO PARA HACER LA ELIMINACIÓN DE CONSOLIDACIÓN Y PROCESOS *
******************************************************************
PARA-1.
OPEN I-O ENTRADA1
PERFORM UNTIL CH1 EQUAL 'N'
DISPLAY 'WHICH TRANSACTION DO YOU WANT TO PERFORM'
DISPLAY '1-INSERT'
DISPLAY '2-UPDATE'
DISPLAY '3-DELETE'
DISPLAY '4-CALCULATE SALARY'
DISPLAY '5-VIEW'
DISPLAY '0-EXIT'
DISPLAY 'ENTER NUMBER TO PERFORM TRANSACTION:'
ACCEPT TXNCODE
EVALUATE TRUE
WHEN INS PERFORM INS-PARA
WHEN UPD PERFORM UPD-PARA
WHEN DEL PERFORM DEL-PARA
WHEN CALSAL PERFORM CAL-SAL-PARA
WHEN VIEW PERFORM VIEW-PARA
WHEN EXIT1 PERFORM EXIT-PARA
END-EVALUATE
END-PERFORM.
CLOSE ENTRADA1.
STOP RUN.
******************************************************************
* INS-PARA *
******************************************************************
INS-PARA.
DISPLAY 'INSERTING EMP RECORD'.
DISPLAY 'ENTER EMP NUMBER : '.
ACCEPT ENO.
DISPLAY 'ENTER EMP NAME : '.
ACCEPT ENAME.
DISPLAY 'ENTER EMP SALARY : '.
ACCEPT ESAL.
WRITE RG-ENTRADA1
INVALID KEY DISPLAY 'REC ALREADY EXIST WITH EMP NO'
END-WRITE.
******************************************************************
* UPD-PARA *
******************************************************************
UPD-PARA.
DISPLAY 'UPDATING EMP RECORD'
DISPLAY 'WHICH RECORD YOU WANT TO UPDATE : '
DISPLAY 'ENTER EMP NUMBER TO UPDATE : '
ACCEPT ENO.
READ ENTRADA1
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST'
NOT INVALID KEY
DISPLAY 'WHICH FIELD YOU WANT TO UPDATE'
DISPLAY '1-NAME OR 2-SALARY'
ACCEPT FIELD
IF FIELD EQUAL 1
DISPLAY 'ENTER VALUE FOR NAME : '
ACCEPT ENAME
ELSE
IF FIELD EQUAL 2
DISPLAY 'ENTER VALUE FOR SALARY : '
ACCEPT ESAL
END-IF
END-IF
REWRITE RG-ENTRADA1
DISPLAY 'RECORD HAS BEEN UPDATED'
END-READ.
******************************************************************
* DEL-PARA *
******************************************************************
DEL-PARA.
DISPLAY 'DELETING EMP RECORD'
DISPLAY 'WHICH RECORD YOU WANT TO DELETE : '
ACCEPT ENO.
DELETE ENTRADA1
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST'
NOT INVALID KEY
DISPLAY 'RECORD HAS BEEN DELETED'
END-DELETE.
******************************************************************
* CAL-SAL-PARA *
******************************************************************
CAL-SAL-PARA.
DISPLAY 'CALCULATE SALARY OF EMP RECORD'
DISPLAY 'WHICH RECORD YOU WANT TO CALCULATE THE SAL : ' 00967104
DISPLAY 'ENTER EMP NUMBER TO CALCULATE : ' 00967204
ACCEPT ENO. 00968003
00969003
READ ENTRADA1 00969103
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST' 00969203
NOT INVALID KEY 00969303
DISPLAY 'ENTER THE PF-AMOUNT TO BE ADDED TO SAL' 00969404
ACCEPT PFAMT 00969604
00969703
ADD PFAMT, ESAL GIVING RESULT 00970204
00970404
DISPLAY 'RESULT IS EQUAL ' RESULT 00970804
00970903
REWRITE RG-ENTRADA1 00971003
DISPLAY 'PF AMOUNT IS ADDED TO SALARY' 00971104
END-READ. 00971203
00971303
******************************************************************
* VIEW-PARA *
******************************************************************
VIEW-PARA. 00972006
DISPLAY 'VIEW EMP RECORD' 00980002
00981002
DISPLAY 'WHICH RECORD YOU WANT TO VIEW' 00990002
ACCEPT ENO. 01000002
01001002
READ ENTRADA1 01010002
INVALID KEY DISPLAY 'RECORD DOES NOT EXIST' 01020002
NOT INVALID KEY 01030002
DISPLAY 'EMP-NO ->' ENO 01040002
DISPLAY 'EMP-NAME->' ENAME 01050002
DISPLAY 'EMP-SAL ->' ESAL 01060002
END-READ. 01070002
01080001
******************************************************************
* EXIT-PARA *
******************************************************************
EXIT-PARA. 01090002
MOVE 'N' TO CH1. 01100004
I will be very helpfull if i get help as soon as possible.
Thanks in advance,
sowjanya.[code][/code]