Rational Developer for System z
Enterprise COBOL for z/OS, Version 4.1, Language Reference


ASCENDING KEY and DESCENDING KEY phrases

Data is arranged in ascending or descending order, depending on the keyword specified, according to the values contained in data-name-2. The data-names are listed in their descending order of significance.

The order is determined by the rules for comparison of operands (see Relation conditions). The ASCENDING KEY and DESCENDING KEY data items are used in OCCURS clauses and the SEARCH ALL statement for a binary search of the table element.

data-name-2
Must be the name of the subject entry or the name of an entry subordinate to the subject entry. data-name-2 cannot be a windowed date field. data-name-2 can be qualified.

If data-name-2 names the subject entry, that entire entry becomes the ASCENDING KEY or DESCENDING KEY and is the only key that can be specified for this table element.

If data-name-2 does not name the subject entry, then data-name-2:

  • Must be subordinate to the subject of the table entry itself
  • Must not be subordinate to, or follow, any other entry that contains an OCCURS clause
  • Must not contain an OCCURS clause

data-name-2 must not have subordinate items that contain OCCURS DEPENDING ON clauses.

When the ASCENDING KEY or DESCENDING KEY phrase is specified, the following rules apply:

The following example illustrates the specification of ASCENDING KEY data items:

WORKING-STORAGE SECTION.
01  TABLE-RECORD.
    05  EMPLOYEE-TABLE OCCURS 100 TIMES
        ASCENDING KEY IS WAGE-RATE EMPLOYEE-NO
        INDEXED BY A, B.
      10  EMPLOYEE-NAME                     PIC X(20).
      10  EMPLOYEE-NO                       PIC 9(6).
      10  WAGE-RATE                         PIC 9999V99.
      10  WEEK-RECORD OCCURS 52 TIMES
          ASCENDING KEY IS WEEK-NO INDEXED BY C.
        15  WEEK-NO                         PIC 99.
        15  AUTHORIZED-ABSENCES             PIC  9.
        15  UNAUTHORIZED-ABSENCES           PIC  9.
        15  LATE-ARRIVALS                   PIC  9.

The keys for EMPLOYEE-TABLE are subordinate to that entry, and the key for WEEK-RECORD is subordinate to that subordinate entry.

In the preceding example, records in EMPLOYEE-TABLE must be arranged in ascending order of WAGE-RATE, and in ascending order of EMPLOYEE-NO within WAGE-RATE. Records in WEEK-RECORD must be arranged in ascending order of WEEK-NO. If they are not, results of any SEARCH ALL statement are unpredictable.


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)