Page 1 of 1

Inserting only one row in a VSAM file using COBOL PROGRAM

PostPosted: Mon Dec 24, 2007 11:49 pm
by RAGHAVENDRA
I WANT TO KNOW WHETHER IT IS POSSIBLE TO INSERT ONE RECORD IN VSAM CLUSER WHICH IS ALREADY EXISTS N HAVING SOME RECORDS?

IF ANYONE KNOWS TO INSERT RECORDS INTO VSAM CLUSTER USING COBOL CODE PLZ DO REPLY WITH ONE EXAMPLE CODE IN PROCEDURE DIVISION...


THANKS IN ADVANCE :) :) :) :)

REGARDS RAGHAVENDRA

Turn off your CAPS

Re: IS IT POSSIBLE TO INSERT ONE ROW IN VSAM USING COBOL PROGRAM

PostPosted: Thu Dec 27, 2007 5:29 pm
by arunprasad.k
Open the file in I-O mode of Output mode. Use DISP=MOD in JCL. Then an ordinary WRITE statement will do.

Re: IS IT POSSIBLE TO INSERT ONE ROW IN VSAM USING COBOL PROGRAM

PostPosted: Fri Dec 28, 2007 12:03 am
by RAGHAVENDRA
arunprasad.k wrote:Open the file in I-O mode of Output mode. Use DISP=MOD in JCL. Then an ordinary WRITE statement will do.

thank u for ur kind reply.
i want to know the code in procedure division in cobol for inserting record in already existing cluster(ksds).if u know how to code plz give me detail idea with an example if possible.....

thanks & regards
raghavendra

Re: IS IT POSSIBLE TO INSERT ONE ROW IN VSAM USING COBOL PROGRAM

PostPosted: Fri Dec 28, 2007 3:22 pm
by arunprasad.k
Raghavendra,

Here you go. This code is really a simplest one to insert a record in a VSAM.

1. Run the below job and create a VSAM with some contents.

//STEP01 EXEC PGM=IDCAMS                                               
//SYSPRINT DD SYSOUT=*                                                 
//SYSIN    DD *                                                         
  DELETE (F3618TV.ARUN.TEST.VSAM) CL                                   
  IF MAXCC=8 THEN SET MAXCC=0                                           
  DEF CL   (NAME (F3618TV.ARUN.TEST.VSAM))           -                 
  DATA     (NAME (F3618TV.ARUN.TEST.VSAM.D)          -                 
            RECSZ(80 80)  CISZ(18432)   KEYS(6 0)    -                 
            BUFSPC(80)   CYL(1 1)     FSPC(0 0))     -                 
  INDEX    (NAME (F3618TV.ARUN.TEST.VSAM.I)          -                 
            CISZ(512))                                                 
/*                                                                     
//STEP02 EXEC PGM=IDCAMS                                               
//SYSPRINT DD SYSOUT=*                                                 
//VSAMIN   DD *                                                         
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
129078 ARUN                                                             
129257 JANANI                                                           
/*                                                                     
//VSAMOUT  DD DSN=F3618TV.ARUN.TEST.VSAM,DISP=OLD                       
//SYSIN    DD *                                                         
  REPRO IFILE (VSAMIN) OFILE (VSAMOUT)                                 
/*                                                                     


2. Then compile, link-edit and run this program with a DD name

//VSAMIN   DD DSN=F3618TV.ARUN.TEST.VSAM,DISP=MOD


Code:
       IDENTIFICATION DIVISION.                                         
       PROGRAM-ID.  TESTPGM.                                           
       AUTHOR.      ARUN.                                               
       ENVIRONMENT DIVISION.                                           
       CONFIGURATION SECTION.                                           
       INPUT-OUTPUT SECTION.                                           
       FILE-CONTROL.                                                   
           SELECT INP-VSAM     ASSIGN       TO   VSAMIN                 
                               ORGANIZATION IS   INDEXED               
                               ACCESS       IS   DYNAMIC               
                               RECORD KEY   IS   EMP-ID                 
                               FILE STATUS  IS   FS-STATUS.             
                                                                       
       DATA DIVISION.                                                   
       FILE SECTION.                                                   
       FD INP-VSAM.                                                     
       01 FILE-LAYOUT.                                                 
          05 EMP-ID            PIC X(06).                               
          05 FILLER            PIC X(01).                               
          05 EMP-NAME          PIC X(10).                               
                                                                       
       WORKING-STORAGE SECTION.                                         
       01  FS-STATUS                     PIC X(02).                     
           88  SUCCESSFUL-COMPLETION                    VALUE '00'.     
                                                                   SKIP3
       PROCEDURE DIVISION.                                             
       MAINLINE.                                                       
             OPEN  I-O INP-VSAM.                                       
             IF SUCCESSFUL-COMPLETION                                   
                MOVE '123456'   TO EMP-ID                               
                MOVE 'PRASAD'   TO EMP-NAME                             
                WRITE FILE-LAYOUT                                       
             END-IF.                                                   
             CLOSE  INP-VSAM.                                           
           GOBACK.                                                     

Re: Inserting only one row in a VSAM file using COBOL PROGRAM

PostPosted: Wed Aug 27, 2008 4:12 pm
by onkarnath
Sorry Guys,
I think this is not possible to insert an entire duplicate record into VSAM cluster, As the index does not support the duplicate value in it's key field.

Re: Inserting only one row in a VSAM file using COBOL PROGRAM

PostPosted: Thu Aug 28, 2008 3:10 am
by dick scherrer
Hello,

I think this is not possible to insert an entire duplicate record into VSAM cluster
Did you have a question? 'Til now, i did not notice anything about a duplicate key. . . :?

I believe the initial request was about inserting an individual record into an already existing vsam file.