210 likes | 324 Views
The DATA DIVISION. Chapter 3. COBOL Data Organization. Field - group of characters forming a meaningful unit or basic fact Characters in a name or digits in an amount Records - group of related fields All fields related to customer File - group of related records
E N D
The DATA DIVISION Chapter 3
COBOL Data Organization • Field - group of characters forming a meaningful unit or basic fact • Characters in a name or digits in an amount • Records - group of related fields • All fields related to customer • File - group of related records • Customer file made up of customer records
DATA DIVISION • Defines, describes storage for all data • Two main sections • FILE SECTION • Defines all input and output files, records, fields • Required for any program that uses files, typically batch programs • Must match the files listed in the SELECT statements • WORKING-STORAGE SECTION • Defines constants, end-of-file indicators and work areas • Defines fields not part of input or output files
File Description Entries • Each file described with an FD (File Descriptor) sentence • One FD for each SELECT statement in ENVIRONMENT DIVISION • FD followed by • File-name • Optional clauses to describe file and format of its records
Data-Name Guidelines • Use meaningful data-names that describe contents of field • Amount-Due-In instead of A1 • Use prefixes or suffixes in data-names when appropriate • -IN and -OUT for fields (Emp-Salary-IN and Emp-Salary-OUT) • -FILE and -RECORD for file and record names (Emp-File and Emp-Record)
Defining a Record • Each FD followed by record description entries for the file • Data grouped in COBOL by levels • Record-name defined at the 01 level • Considered highest level of data • Fields within a record defined at subordinate level with level numbers from 02 to 49
Record Description Example 01 Employee-Rec-In. 05 Name-In … 05 Annual-Salary-In … 05 Job-Description-In … • Fields at 05 level subordinate to 01 level entry • All fields at same level (05), independent or not subordinate to each other
Elementary and Group Items • Items defined with a level number are one of two types • Elementary item - field that is not further subdivided • Must include a PICTURE clause • Group item - field that is further subdivided • Has no PICTURE clause
Elementary and Group Items 01 Employee-Rec-In. 05 Name-In … 10 First-Name-In (Picture clause) 10 Last-Name-In (Picture clause) 05 Annual-Salary-In (Picture clause) • Name-In is group item since it is subdivided into first and last name • Employee-Rec-In also group item • First-Name-In is elementary item since it is not further subdivided
PICTURE (PIC) clauses • Specify type of data stored in field • Indicate size of field
Types of data fields • Alphabetic - A • Only letters or blanks • For name, item description, etc. • Archaic; no longer used • Alphanumeric - X • Any character - letters, digits, special characters • For an address like 123 N. Main St. • Numeric - 9 • Only digits • For fields used in arithmetic operations
Size of Data Fields Denote size of field by: • Number of A’s, X’s or 9’s used in PICTURE 01 Cust-Rec-In. 05 Cust-ID-In Picture XXXX. 05 Amt-In Picture 9(5).
Defining Fields in Record • Must account for all positions defined in record layout • Must describe fields in order they appear in record • Field names should be unique • For fields not used by program • Data-name may be left blank (preferable) • May use reserved word FILLER as data-name • Positions must still be defined using PIC clause
Implied Decimal Point • For fields used in arithmetic operations • Symbol V used in PIC clause to denote location of implied decimal point • Decimal point itself not stored as part of number • To store value 26.79 in field AMT-IN, code entry as 05 Amt-In Pic 99V99.
Types of Constants • Numeric literal • Examples: .05 5280 199.99 • Constant used for arithmetic operations • Nonnumeric (alphanumeric) literal • Examples: “INVALID” “Enter your name” • Constant used for all operations except arithmetic • Figurative constant • SPACES ZEROS • Reserved word for commonly used values
Rules for Nonnumeric Literals • Must be enclosed in quotation marks • From 1 to 160 characters, including space • Any character in COBOL character set except quotation markValid Nonnumeric Literals '123 Main St.' '$14.99' '12,342' "Enter a value from 1 to 10"
Figurative Constants - ZERO • ZERO, ZEROS or ZEROES means all zeros Move Zeros To Total-Out • Fills each position in Total-Out with a zero • May be used with both numeric and alphanumeric fields Example
Figurative Constants - SPACE • SPACE or SPACES means all spaces or blanks Move Spaces To Code-Out • Fills each position in Code-Out with a space or blank • Use only with alphanumeric fields since blank is invalid numeric character Example
WORKING-STORAGE SECTION • Follows FILE SECTION • Begins with heading on line by itself • Starts in Area A, ends with period • All items must be defined at 01 level or in entries subordinate to 01 level entry • Elementary items: • Must include PICTURE clause • May be assigned initial value with VALUE clause
VALUE clause • To define initial value for field • If omitted, field’s value undefined when program begins execution • May be used only in WORKING-STORAGE SECTION
VALUE vs MOVE • VALUE clause used in DATA DIVISION • Gives initial value before execution begins • MOVE used in PROCEDURE DIVISION • Assigns value to field after program begins • MOVE may change initial value of field