z/OS DFSMS Using Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Tape-to-Disk Update—Direct Data Set

z/OS DFSMS Using Data Sets
SC23-6855-00

The example in Figure 1 is similar to that in Figure 1, but involves updating a record rather than adding one.

Figure 1. Updating a Direct Data Set
   //DIRECTDD DD      DSNAME=SLATE.INDEX.WORDS,---
   //TAPINPUT DD      ---
              ...
   DIRUPDAT   START
              ...
              OPEN    (DIRECT,(UPDAT),TAPEDCB)
   NEXTREC    GET     TAPEDCB,KEY
              PACK    KEY,KEY
              CVB     3,KEYFIELD
              SH      3,=H'1'
              ST      3,REF
              READ    DECBRD,DIX,DIRECT,'S','S',0,REF+1
              CHECK   DECBRD
              L       3,DECBRD+12
              MVC     0(30,3),DATA
              ST      3,DECBWR+12
              WRITE   DECBWR,DIX,DIRECT,'S','S',0,REF+1
              CHECK   DECBWR
              B       NEXTREC
              ...
   KEYFIELD   DS      0D
              DC      XL3'0'
   KEY        DS      CL5
   DATA       DS      CL30
   REF        DS      F
   DIRECT     DCB     DSORG=DA,DDNAME=DIRECTDD,MACRF=(RISXC,WIC),       C
                  OPTCD=RF,BUFNO=1,BUFL=100
   TAPEDCB    DCB     ---
              ...

There is no check for dummy records. The existing direct data set contains 25 000 records whose 5-byte keys range from 00 001 to 25 000. Each data record is 100 bytes long. The first 30 characters are to be updated. Each input tape record consists of a 5-byte key and a 30-byte data area. Notice that only data is brought into virtual storage for updating.

When you are updating variable-length records, you should use the same length to read and write a record.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014