Library View Topics Framed Contents Revised Topics Previous Topic Next Topic Search Search ResultsPrevious Topic MatchNext Topic Match Notes List Notes Print Download No PDF Handheld DisconnectedHandheld ConnectedHelp

5.2.4 BLOCK CONTAINS Clause




X >_Workstation_> Under AIX, OS/2, and Windows, the BLOCK CONTAINS clause is
X not supported for line sequential files. It is treated as a comment for sequential, relative and indexed files. <_Workstation_<

The BLOCK CONTAINS clause specifies the size of the physical records. The characters in the BLOCK CONTAINS clause reflect the number of bytes in the record.


X For example, if you have a block with 10 DBCS characters, the BLOCK
X CONTAINS clause should say BLOCK CONTAINS 20 CHARACTERS.

If the records in the file are not blocked, the BLOCK CONTAINS clause can be omitted. When it is omitted, the compiler assumes that records are not blocked. Even if each physical record contains only one complete logical record, coding BLOCK CONTAINS 1 RECORD would result in fixed blocked records.

The BLOCK CONTAINS clause can be omitted when the associated File Control entry specifies a VSAM file; the concept of blocking has no meaning for VSAM files; the clause is syntax checked, but it has no effect on the execution of the program.

For EXTERNAL files, the value of all BLOCK CONTAINS clauses of corresponding EXTERNAL files must match within the run unit. This conformance is in terms of character positions and does not depend upon whether the value was specified as CHARACTERS or as RECORDS.

integer-1, integer-2
Must be nonzero unsigned integers. They specify the number of:

CHARACTERS
Specifies the number of character positions required to store the physical record, no matter what USAGE the characters have within the data record.

If only integer-2 is specified, it specifies the exact character size of the physical record. When integer-1 and integer-2 are both specified, they represent, respectively, the minimum and maximum character sizes of the physical record.

Integer-1 and integer-2 must include any control bytes and padding contained in the physical record. (Logical records do not include padding.)

The CHARACTERS phrase is the default. CHARACTERS must be specified when:

  • The physical record contains padding.
    
    
  • Logical records are grouped so that an inaccurate physical record size could be implied. For example, suppose you describe a variable-length record of 100 characters, yet each time you write a block of 4, one 50-character record is written followed by three 100-character records. If the RECORDS phrase were specified, the compiler would calculate the block size as 420 characters instead of the actual size, 370 characters. (This calculation includes block and record descriptors.)
    
    

RECORDS
Specifies the number of logical records contained in each physical record.

The compiler assumes that the block size must provide for integer-2 records of maximum size, and provides any additional space needed for control bytes.


X When running under OS/390, BLOCK CONTAINS 0 can be specified for QSAM
X files; the block size is determined at run time from the DD parameters or
X the data set label.


X If the RECORD CONTAINS 0 CHARACTERS clause is specified, and the BLOCK
X CONTAINS 0 CHARACTERS clause is specified (or omitted), the block size is
X determined at run time from the DD parameters or the data set label of the
X file. For output data sets, with either of the above conditions, the DCB
X used by Language Environment will have a zero block size value. If you do
X not specify a block size value, the operating system might select a System
X Determined Block Size (SDB). See the operating system specifications for
X further information on SDB.


X BLOCK CONTAINS can be omitted for SYSIN/SYSOUT files under OS/390. The
X blocking is determined by the operating system.


X When running under CMS, BLOCK CONTAINS 0 can be specified for QSAM files;
X the block size is determined at run time from the FILEDEF parameters or
X the data set label. If the RECORD CONTAINS 0 CHARACTERS clause is
X specified, and the BLOCK CONTAINS clause is omitted (or if the BLOCK
X CONTAINS 0 CHARACTERS clause is specified), the block size is determined
X at run time from the FILEDEF parameters or the data set label of the file.


X Under VM, the BLOCK CONTAINS 0 clause might cause blocked or unblocked
X records to be used for an output file, depending on the FILEDEF options
X specified. The DCB used by Language Environment will have a zero block
X size, so the FILEDEF uses the CMS defaults. The defaults are documented
X in the CMS Command Reference, under the FILEDEF command.


X The BLOCK CONTAINS clause is treated as a comment under an SD.


X The BLOCK CONTAINS clause cannot be used with the RECORDING MODE U clause.

Previous Topic Next Topic Copyright IBM Corp. 1991, 1998

IBM Library Server Copyright 1989, 2005 IBM Corporation. All rights reserved.





Return to library:   z/OS | z/OS.e | TPF | z/VSE | z/VM | IBM Hardware | IBM System z Redbooks
Glossary:   IBM terminology
Publications:   How to order publications
Readers:   Download IBM Library Reader | Download IBM Softcopy Reader | Download Adobe® Acrobat® Reader®
Library management:   Download IBM Softcopy Librarian
Contacts:   Contact z/OS


Adobe, the Adobe logo, Acrobat, the Acrobat logo, and Acrobat Reader are registered trademarks of Adobe Systems incorporated.