Previous Topic: PHYSICAL PARENT FIELD statementNext Topic: INDEX SECTION


LOGICAL SEQUENCE FIELD statement

This format of the FIELD statement defines the logical sequence field and its attributes. A logical sequence field must be defined for the named record corresponding to a logical child segment whenever the associated virtual logical child has a sequence field. A field defined as a logical sequence field can be used as a search field in an SSA.

Syntax

►►─┬─────────────────────────────────────────────────┬───────────────────────►
   └─ LOGical SEQuence FIELD name is dl1-field-name ─┘

 ►─┬──────────────────────────────────────────┬──────────────────────────────►
   └─ STARTING POSition is starting-position ─┘

 ►─┬──────────────────────────────┬──────────────────────────────────────────►◄
   └─ LENgth is dl1-field-length ─┘

Parameters

LOGical SEQuence FIELD name is dl1-field-name

Identifies the sequence field of the virtual logical child segment. Use the NAME clause entry in the DL/I FIELD statement defining the sequence field for the virtual logical child segment.

STARTING POSition is starting-position

Specifies the position in the record in which the sequence field begins. Use the START clause entry in the DL/I FIELD statement defining the sequence field for the virtual logical child segment.

LENgth IS dl1-field-length

Specifies the length of the sequence field. Use the BYTES clause entry in the DL/I FIELD statement defining the sequence field for the virtual logical child segment.

Usage

Sample PSB

This sample PSB calls for DBD1, which is shown in the hierarchy diagram in Figure 38. The DBD that defines DBD1 is shown in Figure 39. Figure 40 shows the resulting RECORD SECTION that is developed.

     PCB     TYPE=DB,DBDNAME=DBD1,PROCOPT=G,KEYLEN=45,PROCSEQ=INDEX1
     SENSEG  NAME=SEGRT1,PARENT=0
     SENSEG  NAME=SEG3,PARENT=SEGRT1
     SENSEG  NAME=SEG4,PARENT=SEG3
     SENSEG  NAME=SEG2,PARENT=SEGRT1
     PSBGEN  LANG=COBOL,PSBNAME=PSB1
     END

Figure 37. Sample PSB

Hierarchy Diagram of DBD1

This hierarchy diagram corresponds to database DBD1. SEGRT1, SEG2, SEG3, and SEG4 are specified in the PSB shown in Figure 37 and, therefore, require RECORD statements to define their equivalent records. SEG5 is indicated by broken lines because it is a virtual logical child segment, which is not a real segment.

Figure 38. Hierarchy diagram of DBD1

Sample DBDs

DBD1 is the database called for by the PCB shown in Figure 37 DBD2 is the database that contains the logical parent segment of logical child SEG2 and the virtual logical child segment paired with SEG2. Information from the DBDs for both databases is required to complete the RECORD SECTION shown in Figure 40.

        DBD      NAME=DBD1,ACCESS=HDAM,RMNAME=(DLZHDC30,3,1800,3000)
        DATASET  DD1=HDAM1,DEVICE=3350,BLOCK=2048,SCAN=3
        SEGM     NAME=SEGRT1,PARENT=0,BYTES=115,POINTER=TWINBWD,RULES=PPV
        FIELD    NAME=RT1KEY,SEQ,U,BYTES=11,START=1
        FIELD    NAME=FIELD2,BYTES=5,START=1
        FIELD    NAME=FIELD3,BYTES=6,START=6
        SEGM     NAME=SEG2,PARENT=((SEGRT1),(LPSEGRT,P,DBD2)),
                  BYTES=120,POINTER=TWIN6WD),RULES=(PLV)
        FIELD    NAME=(KEY2,SEQ,U),BYTES=6,START=1
        SEGM     NAME=SEG3,PARENT=SEGRT1,BYTES=10,POINTER=TWIN
        FIELD    NAME=(KEY3,SEQ,U),BYTES=3,START=1
        FIELD    NAME=FIELD5,BYTES=4,START=4
        SEGM     NAME=SEG4,PARENT=SEG3,BYTES=6,POINTER=TWIN
        FIELD    NAME=(KEY4,SEQ,U),BYTES=6,START=1
        SEGM     NAME=SEG5,PARENT=SEG4,PTR=PAIRED,
                  SOURCE=((LCSEG,DATA,DBD3))
        FIELD    NAME=(KEY5,SEQ,U),BYTES=21,START=1,TYPE=F
        FIELD    NAME=FIELD-5,BYTES=20,START=22,TYPE=F
        DBDGEN
        FINISH
        END
        DBD      NAME=DBD2,ACCESS=HDAM
        DATASET  DD1=HDAM2,DEVICE=3350,BLOCK=2048,SCAN=3
        SEGM     NAME=SEGRT2,PTR=TWINBWD,RULES=LLV
        FIELD    NAME=(KEY6,SEQ,U),BYTES=60,START=1
        FIELD    NAME=FIELD6,BYTES=15,START=61
        FIELD    NAME=FIELD-7,BYTES=75,START=76
        LCHILD   NAME=(SEG2,DBD1),PAIR=SEG6,PTR=DBLE
        SEGM     NAME=SEG6,PARENT=SEGRT2,PTR=PAIRED
                      SOURCE=(SEG2,DATA,DBD1)
        FIELD    NAME=(KEY7,SEQ,U),BYTES=21,START=61
        FIELD    NAME=FIELD8,BYTES=20,START=22
        SEGM     NAME=SEG7 BYTES=200,PARENT=SEG1
        FIELD    NAME=(KEY8,SEQ,U)BYTES=99,START=1
        FIELD    NAME=FIELD9,BYTES=101,START=100
        SEGM     NAME=SEG8,BYTES=100,PARENT=SEG1
        FIELD    NAME=(KEY9,SEQ,U),BYTES=15,START=1
        FIELD    NAME=FIELD10,BYTES=15,START=51
        DBDGEN
        FINISH
        END

Figure 39. Sample DBDs

Sample RECORD SECTION

The information used to define this RECORD SECTION example is based on information in Figure 37 through Figure 39.

SEG5, defined in the first DBD shown in Figure 39, is omitted from this RECORD SECTION example because SEG5 is a virtual logical child segment. However, the fields of a virtual logical child segment are entered under the record corresponding to the logical child when the PSB calls for the associated logical child segment.

Thus, under REC2, which corresponds to SEG2 in DBD1, a logical sequence field and a search field are defined.

These two fields come from the virtual logical child segment (SEG6) located in DBD2, which is defined in the second DBD in Figure 39.

        RECORD SECTION.
        RECORD NAME IS RECRT1 LENGTH IS 115.
          SEQ FIELD NAME IS RT1KEY START POS 1 LENGTH 11.
              FIELD NAME IS FIELD2 START POS 1 LENGTH 5.
              FIELD NAME IS FIELD3 START POS 6 LENGTH 6.
        RECORD NAME IS REC2 LENGTH IS 120
        LOGICAL PARENT CONCAT KEY FIELD NAME IS FILFLD1
                     STORED PHYSICALLY START POS 1 LENGTH 60.
        PHYSICAL PARENT CONCAT KEY FIELD NAME IS FILFLD2
                    STORED VIRTUALLY LENGTH 11.
          SEQ FIELD NAME IS KEY2 START POS 1 LENGTH 6.
          LOGICAL SEQUENCE FIELD NAME IS KEY7
                    START POS 61 LENGTH 21.
              FIELD NAME IS FIELD8 START POS 22 LENGTH 20.
        RECORD NAME IS REC3 LENGTH IS 10.
          SEQ FIELD NAME IS KEY3 START POS 1 LENGTH 3.
              FIELD NAME IS FIELD5 START POS 4 LENGTH 4.
        RECORD NAME IS REC4 LENGTH IS 6.
          SEQ FIELD NAME IS KEY4 START POS 1 LENGTH 6.

Figure 40. Sample RECORD SECTION