Advanced RPG - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Advanced RPG

Description:

Advanced RPG Chapter 11 Advanced Data Definition and Manipulation Data Types (From Chapter 3) Character Numeric Date Boolean DBCS Pointer Data Types Date Types and ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 28
Provided by: Student
Category:
Tags: rpg | advanced

less

Transcript and Presenter's Notes

Title: Advanced RPG


1
Advanced RPG
  • Chapter 11
  • Advanced Data Definition and Manipulation

2
Data Types
  • (From Chapter 3)
  • Character
  • Numeric
  • Date
  • Boolean
  • DBCS
  • Pointer

3
Data Types
  • Date Types and Time defaults
  • Date yyyy-mm-dd (10 byte)
  • Time hh.mm.ss (8 byte)
  • Timestamp yyyy-mm-dd-hh.mm.ss.mmmmmm (26
    bytes)
  • Alternate displays are available
  • MDY, DMY, EUR
  • Set by using either DATFMT or TIMFMT keyword\
  • Examples p. 232

4
Data Types
  • All date and time formats allow you to refer to
    them by
  • YEARS (or Y)
  • MONTHS (M)
  • DAYS (D)
  • HOURS (H)
  • MINUTES (MN)
  • SECONDS (S)
  • MSECONDS (MS)

5
Data Types
  • Op Codes
  • ADDDUR Allows you to add duration coded in
    Factor2 to date in Factor1, with answer going to
    result field. (If value is negative the duration
    is subtracted not added)
  • Example on page 233
  • SUBDUR Two uses, One to subtract a date/time
    duration (similar to ADDDUR), Second is to
    calculate the duration between two date/time
    units.

6
Data Type
  • Op Codes
  • EXTRCT Extracts a portion of the Date, Time, or
    Timestamp and stores it in the result field.
    Factor 1 is always blank.
  • Cannot use EVAL op code with the or with
    date/time fields. Must use the Add/Sub Dur op
    code.
  • Also cannot determine day of week unless you
    compare it to a known Sunday. ie 12/31/1899

7
Data Type
  • Pointer Data Types store addresses of memory
    locations instead of the actual data located
    there.
  • Tells you where to find something not what is
    stored there.
  • Example P.236
  • Used in the C programming language but not widely
    used in RPG!!

8
Data Type
  • Like (field definition)
  • Defining a field length or type by referencing a
    second field that provides the definition.






  • D NewField S LIKE(OldField)
  • OldField can be another D spec or a field from a
    file.
  • Can place or in the length to either add or
    subtract from the referenced size. P. 237

9
Data Type
  • Field Inspection
  • built-in functions and operations that let you
    inspect the size and properties of data items or
    test individual positions or bytes within a
    character field.
  • SIZE returns number of bytes or length of
    argument. (returns size not digits!!)
  • LEN returns the number of digits or characters
    in an expression. (char-significant digits,
    numeric-precision of expression)

10
Data Type
  • Field Inspection
  • DECPOS returns the number of decimal positions
    of a numeric variable
  • ELEM returns the number of elements in an
    array or table or number of occurrences in a
    multiple occurrence data structure.
  • TESTN test to see if character field contains
    all numeric characters, leading blanks or all
    blanks
  • Useful in validating fields for numeric use.

11
Data Type
  • Field Inspection
  • TEST checks the validity of date, time or
    timestamp fields.
  • Must specify specific type otherwise default is
    used.
  • SCAN lets you look for a character or string of
    characters within a character field.
  • Direction is left to right and is case sensitive
  • Found is turned on if successful
  • Result field can contain position it found string
    or 0 if it does not find string

12
Data Type
  • Field Inspection
  • SCAN nearly identical to SCAN operation, but
    lets you perfrom the scan within an expression.
  • Cannot search an array or use FOUND bif
  • CHECK Similar to SCAN. CHECK verifies each
    character in Factor 2 is among the valid
    characters in Factor 1 if mismatch it stores the
    location of the mismatch in result field.
  • Useful for verification of a string

13
Data Type
  • Field Inspection
  • CHECKR Works exactly like CHECK but in reverse
    order, right to left.
  • Field Manipulation
  • Concatenation Character String
  • If result field is to large it pads with blanks
  • If result field is to small it truncates on the
    right
  • TRIM Trim blanks at edges
  • TRIML Trim leading blanks
  • TRIMR Trim trailing blanks

14
Data Type
  • Field Manipulation
  • SUBST Extracts a character string
  • Can specify starting position and length
  • DEC Converts the result of an expression to a
    packed decimal format.
  • XLATE lets you translate characers within a
    string to other characters.
  • From and To strings must be same length

15
(No Transcript)
16
Data Area
  • Data Area Data Structure
  • Defined by a U in position 23
  • If no name provided it is represented by LDA
  • Works similar to a file
  • Loaded when program is run
  • Written back to data area when program ends

17
Data Areas
  • Data Areas as/400 objects that represent
    storage locations used to share data between
    programs within a job or between jobs.
  • Local Data Area created for each job
  • 1024 positions long, type character, initially
    filed with blanks.
  • when job ends lda is gone
  • p.223

18
Data Areas
  • Can access Data Areas without defining them in D
    specs (reading into another one you do have
    specified).
  • Use DATAARA in Factor1
  • Result field contains variable to receive
    contents
  • p. 224
  • Not automatically retrieved or written back to
    external data area, you must program this.

19
Data Areas
  • DATAARA
  • IN Retrieves a data area
  • OUT Writes back to data area
  • UNLOCK Unlocks data area

20
Data Type
  • Program Described Data Structures allow you to
    subdivide fields into smaller fields.
  • P. 238
  • Overlay keyword subfield overlays storage of
    another subfield
  • Different way of subdividing the field.
  • Used to group fields from file that are not
    adjacent. P. 239

21
Data Type
  • Externally Described Data Structures
  • Format defined in DDS and refer to it in D specs.
  • p. 240
  • Multiple Occurrence Data Structures
  • Structure is repeated in storage by OCCURS ()
    keyword.
  • Similar to an array or table but much more
    complex collection of elements.

22
Data Type
  • Initializing Data Structures
  • Will contain blanks at start of program unless
    you specify initialized value. (even numeric data
    types!!)
  • Keyword INZ(value)
  • Or use built in INZSR initialize subroutine.

23
Data Type
  • File Information Data Structure
  • special data structure defined for each file used
    in your program.
  • Contains predefined fields that can provide
    information to your program about the file and
    I/O operations.
  • Helpful in debugging
  • Keyword INFDS and name of data structure on F
    spec (p. 247)

24
Data Type
  • File Information Data Structure
  • Usefulness
  • Position 1 8 File Name
  • Position 16 21 contain last op code used on
    file
  • Position 11 15 five-digit I/O Status code
  • 00000 no error or exception
  • 00002 Function key was used to end display
  • 00011 signals end of file on read
  • 00012 signals a no-record found condition on a
    chain
  • gt 00999 error code
  • 01218 indicates a locked record
  • 01021 indicates attempt to write duplicate key
    record

25
Data Type
  • Program status data structure provide
    information about the program itself and about
    exceptions or errors that occur
  • similar to file with predetermined subfields that
    automatically acquire values during execution.
  • Name of Program
  • Job name
  • Who called it

26
Data Type
  • Status Codes
  • 00000 no error occurred
  • 00101 negative square root
  • 00102 divide by zero
  • 00907 decimal data error
  • S in position 23 of DS definition indicates a
    Program Status Data Structure.
  • p. 249

27
Data Area
  • Error Handling
  • Without explicit error handling within your
    program, any runtime error will cause the system
    to suspend the program and send an interactive
    message to the user.
  • (E) extender can be used p.249
  • Causes program to ignore error and continue
  • PSSR built in subroutine name that is called
    when an error occurs p. 250
  • Combines file and program handling into one area.
  • You can control what happens when error is
    encountered.
Write a Comment
User Comments (0)
About PowerShow.com