Inserting only one row in a VSAM file using COBOL PROGRAM

Help for IBM's record-oriented filesystem VSAM, ESDS, KSDS, RRDS, LDS and Storage management Subsystems
RAGHAVENDRA
Posts: 12
Joined: Mon Dec 24, 2007 2:47 pm
Skillset: jcl,cobol,vsam,db2,cics
Referer: through internet

Inserting only one row in a VSAM file using COBOL PROGRAM

Postby RAGHAVENDRA » Mon Dec 24, 2007 11:49 pm

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

arunprasad.k
Posts: 110
Joined: Thu Dec 27, 2007 5:18 pm
Skillset: Known little stuffs to answer a few queries!!
Referer: Google
Contact:

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

Postby arunprasad.k » Thu Dec 27, 2007 5:29 pm

Open the file in I-O mode of Output mode. Use DISP=MOD in JCL. Then an ordinary WRITE statement will do.

RAGHAVENDRA
Posts: 12
Joined: Mon Dec 24, 2007 2:47 pm
Skillset: jcl,cobol,vsam,db2,cics
Referer: through internet

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

Postby RAGHAVENDRA » Fri Dec 28, 2007 12:03 am

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

arunprasad.k
Posts: 110
Joined: Thu Dec 27, 2007 5:18 pm
Skillset: Known little stuffs to answer a few queries!!
Referer: Google
Contact:

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

Postby arunprasad.k » Fri Dec 28, 2007 3:22 pm

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.

Code: Select all

//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

Code: Select all

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


Code:

Code: Select all

       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.                                                     

onkarnath
Posts: 4
Joined: Wed Jan 23, 2008 11:44 am
Skillset: cobol,cics,db2,vsam
Referer: friends

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

Postby onkarnath » Wed Aug 27, 2008 4:12 pm

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.

User avatar
dick scherrer
Global moderator
Posts: 6268
Joined: Sat Jun 09, 2007 8:58 am

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

Postby dick scherrer » Thu Aug 28, 2008 3:10 am

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.
Hope this helps,
d.sch.


  • Similar Topics
    Replies
    Views
    Last post