| Identification Division |
|
Data Division | |
The Environment Division specifies a standard method of expressing those
aspects of a data processing problem that are dependent upon the physical
characteristics of a specific computer. This division allows specification
of the configuration of the compiling computer and the object computer. In
addition, information relative to input-output control, special hardware
characteristics and control techniques may be given.
The Environment Division is
optional in a COBOL source element.
General Format
ENVIRONMENT DIVISION.
[configuration-section]
[input-output-section]
Syntax Rules
-
If the program includes an
Environment Division, the Environment Division header is optional only
if it is the first division in the program.
The Configuration Section is located in the Environment Division
. The configuration section specifies aspects of the data processing
system that are dependent on the specific system as well as special
control techniques and a means of associating a local name with an
external resource. This section is divided into paragraphs: the
SOURCE-COMPUTER paragraph, which describes the computer configuration on
which the source element is compiled; the OBJECT-COMPUTER paragraph, which
describes the computer configuration on which the runtime module produced
by the compiler is to be run; the SPECIAL-NAMES paragraph, which provides
a means for specifying the
currency sign, choosing the decimal point, specifying
symbolic-characters, relating implementor-names to user-specified
mnemonic-names, relating alphabet-names to character sets or collating
sequences, and relating class-names to sets of characters; and the
REPOSITORY paragraph, which provides a means for associating a local name
with an external resource and
specifying which intrinsic function names become reserved words for this
source unit.
The Configuration Section is
optional
.
General Format
Syntax Rules
-
The CONFIGURATION SECTION
header is optional only if it is the first statement in the program.
-
The Configuration Section
must not be stated in a program that is contained within another
program.
-
The Configuration Section
must not be stated in a method definition.
-
The SOURCE-COMPUTER,
OBJECT-COMPUTER and REPOSITORY paragraphs must not be stated in a
factory definition or an object definition.
General Rules
-
The entries explicitly or
implicitly stated in the Configuration Section of a source unit that
contains other source units apply to each directly or indirectly
contained source unit.
Function
The SOURCE-COMPUTER paragraph identifies the computer on which the
compilation unit is to be compiled.
General Format
General Rules
- The source-computer-name is documentary only.
- The WITH
DEBUGGING
MODE phrase is used to enable debugging code, in accordance with
the Standard ANSI COBOL Debug Module. (See the section Environment
Division in COBOL Debug in the chapter Debug Module in your
Language Reference - Additional Topics.)
-
All clauses of the
SOURCE-COMPUTER paragraph apply to the source unit in which they are
explicitly or implicitly specified and to any source unit contained
within that source unit.
Function
The OBJECT-COMPUTER paragraph provides a means of describing the
computer on which the runtime module created by the compiler is to be
executed.
It is optional.
The MEMORY SIZE clause and
SEGMENT-LIMIT clause are classed as an obsolete elements in the ANSI'85
standard and are scheduled to be deleted from the next full revision of
the ANSI Standard.
All dialects within this
COBOL implementation support the MEMORY SIZE clause and SEGMENT-LIMIT
clause for documentary purposes only. The FLAGSTD Compiler directive can
be used to detect occurrences of this syntax.
Although they are part of the
standard COBOL definition, the MEMORY SIZE clause and SEGMENT-LIMIT clause
are explicitly excluded from the X/Open COBOL language definitions and
should not be used in a conforming X/Open COBOL source program.
General Format
Syntax Rules
- Object-computer-name must be one COBOL word defined by the user.
-
The OBJECT-COMPUTER
paragraph can consist of only the OBJECT-COMPUTER header.
General Rules
- The computer-name provides a means for identifying equipment
configuration, in which case the computer-name and its implied
configurations are specified by the user. The configuration definition
contains specific information concerning the memory size. The
computer-name and the
MEMORY SIZE clause are documentary only.
- If the PROGRAM
COLLATING SEQUENCE clause is not specified, the NATIVE collating
sequence is used. The appendix Character Sets and Collating
Sequences lists both the full ASCII and EBCDIC collating sequences.
Either can be chosen as the NATIVE collating-sequence by use of the
NATIVE Compiler
directive.
- If the
PROGRAM COLLATING SEQUENCE clause is specified, the program
collating sequence is the collating sequence associated with the
alphabet-name specified in that clause.
- The program collating sequence established in the OBJECT-COMPUTER
paragraph is used to determine the truth value of any nonnumeric
comparisons:
- explicitly specified in relation conditions (see the section Relation
Condition later in this chapter).
- explicitly specified in condition-name conditions; see the
section Condition-Name Condition (Conditional Variable)
later in this chapter.
- The PROGRAM COLLATING SEQUENCE clause is also applied to any
nonnumeric merge or sort keys unless the COLLATING SEQUENCE phrase of
the respective SORT or MERGE statement is specified.
- The PROGRAM COLLATING SEQUENCE clause has no effect on the ordering
of indexed files.
- The PROGRAM COLLATING SEQUENCE clause applies only to the source
element in which it is specified
and source elements
contained within it
- The
SEGMENT-LIMIT clause is documentary only. (See the chapter
Segmentation in your Language Reference - Additional Topics.)
Function
The SPECIAL-NAMES paragraph provides a means for specifying the currency
sign, choosing the decimal point,
specifying
symbolic-characters,
relating implementor-names to user-specified mnemonic-names, relating
alphabet-names to character sets or collating sequences, and relating
class-names to sets of characters.
You can select one of several
pre-defined parameter passing conventions. Enhancements to the
CALL statement and the PROCEDURE DIVISION header allow these
parameter passing conventions to be used in inter-program communication.
Examples:
- An example of using the CRT status key fields is provided in the Examples
chapter in your Additional Topics.
General Format
Directives
- In addition to Compiler directives which provide flagging and modify
the reserved word list, the following directives may impact either the
syntax or semantics described in this section.
- ALPHASTART - determines whether valid numeric literals used in
the ALPHABET clause can begin with 0 or with 1.
- CHARSET - impacts which alphabet is considered the native
character set. This directive is ignored in some environments.
- NATIVE - impacts which alphabet is considered the native
character set.
- SYMBSTART - determines whether valid numeric literals used in the
SYMBOLIC CHARACTERS clause can begin with 0 or with 1.
Syntax Rules
-
The clauses in the
SPECIAL-NAMES paragraph may appear in any order.
-
At the outer level of a
class definition, the CURRENCY, CURSOR and CRT STATUS clauses must not
be specified.
-
In the factory or object of
a class definition, the only clauses that can be specified are the
CURRENCY, CURSOR, and CRT STATUS clauses.
-
If the SPECIAL-NAMES
paragraph is specified in an interface definition, the ALPHABET,
CURRENCY and DECIMAL-POINT clauses are the only permitted clauses. The
data-name-1 phrase of the CURRENCY clause must not be specified.
- Mnemonic-names can be any COBOL user-defined word. At least one
constituent character must be alphabetic.
- Function-name refers to a system device or function used by your
COBOL system.
Function-name refers to
an
external
switch if its name is one of UPSI-0 through UPSI-7.
- If function-name references an
external
switch
or the SWITCH-n
or
SWITCH option is used,
the associated mnemonic-name cannot be specified anywhere
except in the SET
statement
. At least one condition-name should be associated with it.
No condition-name is
required.
- If function-name does not reference an external switch, the
associated mnemonic-name can be specified only in the ACCEPT, DISPLAY,
SEND or WRITE statements. A condition-name cannot be associated with
such an implementor-name.
- The literals specified in the literal phrase of the alphabet-name-1
clause:
- if numeric, must be unsigned integers and must have a value
within the range of one (1) through the maximum number of characters
in the native character set.
The lowest valid values for numeric literals in the
ALPHABET clause are sensitive to the
ALPHASTART Compiler
directive.
- if nonnumeric and associated with a THROUGH or ALSO phrase, must
each be one character in length.
-
cannot be specified as
floating-point literals or DBCS literals.
- If the literal phrase of the alphabet-name-1 clause is specified, a
given character must not be specified more than once in an alphabet-name
clause.
- The words THRU and THROUGH are equivalent.
-
The words STANDARD-1 and
ASCII are equivalent.
-
The reserved word IS is
never required in the SPECIAL-NAMES paragraph.
-
The literals specified in
the literal-4 phrase:
- if numeric, must be unsigned integers and must have a value
within the range of one (1) through the maximum number of characters
in the native character set.
- if nonnumeric and associated with a THROUGH phrase, must each be
one character in length.
-
cannot be specified as
floating-point or DBCS literals.
-
Literal-1, ... literal-5
must not specify a symbolic-character figurative constant.
-
The same
symbolic-character-1 must appear only once in a
SYMBOLIC CHARACTERS clause.
-
The relationship between
each symbolic-character-1 and the corresponding integer-1 is by position
in the SYMBOLIC CHARACTERS clause. The first symbolic-character-1 is
paired with the first integer-1, the second symbolic- character-1 is
paired with the second integer-1; and so on throughout the SYMBOLIC
CHARACTERS clause; the division into IS or ARE phrases is documentary
only.
The lowest valid value for integer-1 is sensitive to the
SYMBSTART Compiler
directive.
-
There must be a one-to-one
correspondence between occurrences of symbolic-character-1 and
occurrences of integer-1, both within each IS or ARE phrase and within
the entire SYMBOLIC CHARACTERS clause.
-
The ordinal position
specified by integer-1 must exist in the native character set. If the IN
phrase is specified, the ordinal position must exist in the character
set named by alphabet-name-2; alphabet-name-2 must be described in an
ALPHABET clause.
- Literal-6 must not be a figurative constant.
-
Integer-2 must be an
unsigned integer in the range 0 to 65535.
-
Data-name-1 of the
CURSOR IS clause must be declared in the Working-Storage section
.
-
The CRT STATUS clause
specifies a data item into which a status value is moved after each
Format 4
or 5
ACCEPT statement. In
some environments, it can be defined only in the first 64K of
Working-Storage.
-
Data-name-2 must be
described in the Working-Storage section and must be three bytes long.
-
The CURSOR IS clause
specifies the data item to contain the cursor address as used by the
ACCEPT statement.
General Rules
-
External
switches are set at run time by the operator, and the setting can
be determined
by testing the associated condition-names.
- If mnemonic-name is associated with an external switch, the status of
that switch can be altered by execution of a Format 1 SET statement (see
the section The SET Statement in this chapter).
- The alphabet-name-1 clause provides a means for relating a name to a
specified character code set and/or collating sequence. When
alphabet-name-1 is referenced in the PROGRAM COLLATING SEQUENCE clause
(see the section The OBJECT-COMPUTER Paragraph) or the COLLATING
SEQUENCE phrase of a SORT or MERGE statement (see the sections The
SORT Statement or The MERGE Statement), the alphabet-name-1
clause specifies a collating sequence. When alphabet-name-1 is
referenced in a CODE-SET clause in a file description entry (see the
section The File Description - The Complete Entry Skeleton), the
alphabet-name clause specifies a character code set.
- If the STANDARD-1
or ASCII
phrase is specified, the character code set or collating
sequence identified is the American Standard Code for Information
Interchange, as defined in American National Standard X3.4-1968.
If the STANDARD-2
phrase is specified, the character code set identified is the
International Reference Version of the ISO 7-bit code, as defined
in International Standard 646, 7-bit Coded Character Set for
Information Processing Interchange.
If the EBCDIC
phrase is specified, the character code set or collating sequence
identified is EBCDIC.
If the NATIVE phrase is specified, the native character code set
or native collating sequence is used. The native collating
sequence is either ASCII or EBCDIC, as specified by the
NATIVE Compiler
directive.)
See the appendix Character Sets and Collating Sequences
for details of the ASCII code-set and the ASCII and EBCDIC
collating sequences and their correspondence.
- If the literal phrase is specified, alphabet-name-1 cannot be
referenced in a CODE-SET clause (see the section The CODE-SET
Clause). The character code set and/or collating sequence
identified is that defined according to the following rules:
- The value of each literal specifies:
- The ordinal number of a character within the native
character set, if the literal is numeric. This value must
not exceed the value which represents the number of
characters in the native character set.
- The actual character within the native character set, if
the literal is nonnumeric. If the value of the nonnumeric
literal contains multiple characters, each character in the
literal, starting with the leftmost character, is assigned
successive ascending positions in the collating sequence
being specified.
- The order in which the literals appear in the
ALPHABET clause specifies, in ascending sequence, the
ordinal number of the character within the collating sequence
being specified.
- Any characters within the native collating sequence which are
not explicitly specified in the literal phrase, assume a
position, in the collating sequence being specified, greater
than any of the explicitly specified characters. The relative
order within the set of these unspecified characters is
unchanged from the native collating sequence.
- If a character code-set is being specified, for each
character within the native character set that is not specified
by the literal-1 phrase, the implementor defines the ordinal
number within the character code-set being specified.
- If the THROUGH phrase is specified, the set of contiguous
characters in the native character set, beginning with the
character specified by the value of literal-1, and ending with
the character specified by the value of literal-2, is assigned a
successive ascending position in the collating sequence being
specified. In addition, the set of contiguous characters
specified by a given THROUGH phrase can specify characters of
the native character set in either ascending or descending
sequence.
- If the ALSO phrase is specified, the characters of the native
character set specified by the value of literal-1, and literal-3
are assigned to the same position in the collating sequence
being specified
, or in the
character code set that is used to represent the data
- The character that has the highest ordinal position in the program
collating sequence is associated with the figurative constant
HIGH-VALUE
except when this
figurative constant is specified as a literal in the SPECIAL-NAMES
paragraph
If more than one character has the highest position in the program
collating sequence, the last character specified is associated with
the figurative constant HIGH-VALUE.
- The character that has the lowest ordinal position in the program
collating sequence is associated with the figurative constant
LOW-VALUE
except when this
figurative constant is specified as a literal in the SPECIAL-NAMES
paragraph
If more than one character has the lowest position in the program
collating sequence, the first character specified is associated with
the figurative constant LOW-VALUE.
-
Floating-point literals
cannot be used in a user-specified collating sequence.
-
When specified as literals
in the SPECIAL-NAMES paragraph, the figurative constants
HIGH-VALUE and
LOW-VALUE are associated with those characters having the highest
and lowest positions, respectively, in the native collating sequence.
-
The
SYMBOLIC CHARACTERS clause is used to define user-defined words
that can be used like figurative constants. If the IN phrase is not
specified, symbolic-character-1 represents the character whose ordinal
position in the native character set is specified by integer-1. If the
IN phrase is specified, integer-1 specifies the ordinal position of the
character that is represented in the character set named by
alphabet-name-2.
-
The internal representation
of symbolic-character-1 is the internal representation of the character
that is represented in the native character set.
- Literal-6, which appears in the
CURRENCY SIGN IS literal clause, is used in the PICTURE clause to
represent the currency symbol. The literal is limited to a single
character and must not be one of the following characters:
- digits 0 through 9;
- uppercase alphabetic characters A, B, C, D, L, P, R, S, V, X, Z,
or the space;
C and R are allowed,
L is allowed,
E cannot be used,
N cannot be used,
G cannot be used,
lowercase alphabetic
characters a through z,
(except e, f, g, h,
i, j, k, m, n, o, q, t, u, w, y);
- special characters *, +, -, ,, ., ;, (, ), ", / or, =.
If this clause is not present, only the currency sign defined in the
COBOL character set is used in the PICTURE clause. See the section
Character Set in the chapter Concepts of the COBOL
Language.
- The DEC
IMAL-POINT IS COMMA clause means that the function of comma and
period are exchanged in the character-string of the PICTURE clause and
in numeric literals.
-
If the
NUMERIC SIGN clause is specified, the default for signed numeric
items is for the sign to be stored as a trailing separate character.
-
Wherever a mnemonic-name
is allowed, you can use the function-name.
- If function-name does not reference an external switch, it can be
selected from the following list:
TAB |
Skip to Vertical Tabulation Position (inserts
ASCII X"0B" in the output record as appropriate) |
WRITE ADVANCING statement |
PRINTER |
Printer |
DISPLAY statement |
FORMFEED |
Skip to new page (inserts ASCII X"0C" in
the output record as appropriate) |
WRITE ADVANCING statement |
COMMAND-LINE |
Command transfer |
ACCEPT and DISPLAY statements |
ARGUMENT-NUMBER |
Command-Line argument number |
ACCEPT and DISPLAY statements |
ARGUMENT-VALUE |
Command-Line argument value |
ACCEPT statement |
ENVIRONMENT-NAME |
Environment-variable name |
DISPLAY statement |
ENVIRONMENT-VALUE
|
Environment-variable value |
ACCEPT and DISPLAY statements |
SYSERR |
Standard error device |
DISPLAY statement |
The following table
reflects the support for function names offered by OS/VS COBOL, VS
COBOL II and SAA in this COBOL system.
Table 6-1: Function Names Support
|
OSVS |
VSC2 Rel (2) |
COBOL/370
or VSC2 Rel (3)/(4) |
SAA L1 |
SYSIN |
y |
y |
y |
y |
SYSIPT |
U |
U |
y |
|
SYSOUT |
y |
y |
y |
y |
SYSLIST |
|
|
y |
|
SYSLST |
U |
U |
y |
|
SYSPCH |
U |
U |
y |
|
SYSPUNCH |
U |
y |
y |
|
CONSOLE |
y |
y |
y |
y |
C01 |
y |
y |
y |
y |
C02 |
y |
y |
y |
|
C03 |
y |
y |
y |
|
C04 |
y |
y |
y |
|
C05 |
y |
y |
y |
|
C06 |
y |
y |
y |
|
C07 |
y |
y |
y |
|
C08 |
y |
y |
y |
|
C09 |
y |
y |
y |
|
C10 |
y |
y |
y |
|
C11 |
y |
y |
y |
|
C12 |
y |
y |
y |
|
S01 |
y |
y |
y |
|
S02 |
y |
y |
y |
|
S03 |
|
U |
y |
|
S04 |
|
U |
y |
|
S05 |
|
U |
y |
|
CSP |
y |
y |
y |
y |
1 char rw literal |
y |
|
|
|
AFP-5A |
|
|
y |
|
y |
Documented and accepted by mainframe compilers and
the COBOL system. |
U |
Undocumented but accepted by mainframe compiler. |
-
The
CLASS clause provides a means for relating a name to the
specified set of characters listed in that clause. Class-name-1 can be
referenced only in a class condition. The characters specified by the
values of the literals in this clause define the exclusive set of
characters which constitute class-name-1. The value of each literal
specifies:
- the ordinal number of a character within the native character
set, if the literal is numeric. This value must not exceed the value
which represents the number of characters in the native character
set.
- the actual character within the native character set, if the
literal is nonnumeric. If the value of the nonnumeric literal
contains multiple characters, each character in the literal is
included in the set of characters identified by class-name-1.
If the THROUGH phrase is
specified, the contiguous characters in the native character set
beginning with the character specified by the value of literal-4, and
ending with the character specified by the value of literal-5, are
included in the set of characters identified by class-name-1.
Additionally, the contiguous characters specified by a given THROUGH
phrase can specify characters of the native character set in ascending
or descending sequence.
- All clauses specified in the SPECIAL-NAMES paragraph for a sourced
element also apply to source elements contained within that source
element. The condition-names specified in the containing source
element's SPECIAL-NAMES paragraph can be referenced from any contained
source element.
-
The CALL-CONVENTION clause
allows you to select one of several pre-defined parameter passing
conventions which allow you to CALL subprograms written in languages
other than COBOL, and which use different parameter passing conventions.
-
The
CONSOLE IS CRT clause causes any ACCEPT or DISPLAY statement
whose operand is not a screen-name, and that has no phrases specific to
a particular format, to be treated as Format 5. If the CONSOLE IS CRT
clause is not present, these statements are treated as the standard ANSI
ACCEPT or DISPLAY.
-
The CURSOR IS clause
specifies the data item to contain the cursor address used by the ACCEPT
statement.
- At the start of an ACCEPT statement, if data-name-1 contains a
value that is a valid character position on the screen, that
position is used as the initial position for the cursor. Otherwise,
data-name-1 is ignored, and the initial position for the cursor is
the start of the first input field on the screen. At the end of an
ACCEPT statement, if the position in data-name-1 has been used in
that statement, data-name-1 is updated to show the position of the
cursor at the termination of the ACCEPT statement.
- CURSOR IS has no effect on the positioning of fields on the
screen.
- Data-name-1 must be 4 or 6 characters in length. If data-name-1
is 4 characters in length, the first two characters are interpreted
as line number, and the second two as column number. If data-name-1
is 6 characters in length, the first three characters are
interpreted as line number, and the second three as column number.
- The clause has no effect if data-name-1 contains an illegal
position (for example, zeros, a nonnumeric value, or a value that is
beyond the bottom of the screen).
- If data-name-1 contains a valid position that does not correspond
to an input field being accepted by the current ACCEPT statement,
the cursor is positioned to the next such field or, if there is
none, to the first such field. The ordering of the fields is the
order in which their descriptions appear in the Data Division.
-
The CRT
STATUS clause specifies a 3-byte data item, into which a status
value is moved after each Format 4 or Format 5 ACCEPT statement.
If the CRT STATUS clause
is specified in the SPECIAL-NAMES paragraph, every Format 4 or 5
ACCEPT statement (as described later in this chapter) places a value
into data-name-2 to indicate the outcome of the ACCEPT operation.
Data-name-2 consists of sta
tus keys which are set to indicate possible conditions
resulting from the completion of the operation. They are described
below.
CRT Status Keys
CRT Status Key 1: The first byte of data-name-1 is CRT
Status Key 1 and should be described as PICTURE 9 USAGE DISPLAY. It
indicates the condition that caused the termination of the ACCEPT
operation. The possible values are:
"0" |
indicates a terminator key or auto-skip out of the final field |
"1" |
indicates a user-defined function key |
"2" |
indicates a COBOL system-defined function key |
"9" |
indicates an error |
A
terminator key is a key whose purpose is terminating ACCEPT
operations (for example, Enter). A particular configuration option causes
the field-tab key, when used in the final field of an ACCEPT, to act as a
terminator key. Defining function keys is also a configuration option.
A termination that returns a value of "0" is called a normal
termination.
If the ACCEPT statement contains an ON EXCEPTION phrase, any value in
CRT Status Key 1, except " 0", will cause the execution of the
imperative-statement in that phrase.
CRT Status Key 2: The second byte of data-name-1 is CRT
Status Key 2 and contains a code giving further details of the condition
that terminated the ACCEPT operation. Its format and possible values
depend on the value in CRT Status Key 1, as shown in the following table.
Table 6-2: Valid Combinations of CRT Status Keys 1 and 2
Key 1 |
Key 2 |
Meaning |
Format |
Value |
0 |
PIC 9 DISPLAY |
0 |
The operator pressed a terminator key |
0 |
PIC 9 DISPLAY |
1 |
Auto-skip out of the last field |
1 |
PIC 99 COMP |
0-127 |
The function key number |
2 |
PIC 99 COMP |
0-26 |
The function key number |
9 |
PIC 99 COMP |
0 |
No items fall within the screen |
See your COBOL system documentation on screen handling and user
interfaces for an explanation of function key numbers.
CRT Status Key 3: The third byte of data-name-1 is CRT
Status Key 3 and should be described as PICTURE 99 COMP-X or as PICTURE 99
COMP (with the
NOIBMCOMP directive specified). If CRT Status Key 1 and CRT Status
Key 2 are zero, then CRT Status Key 3 contains the raw keyboard code for
the key that terminated the ACCEPT operation. Otherwise, the contents of
CRT Status Key 3 are undefined.
Where a sequence of keystrokes rather than a single key has been
configured to perform a single function, only the code for the first
keystroke is returned.
The REPOSITORY paragraph allows specification of
function prototype names,
class names, interface names and property names that may be used
within the scope of this environment division. It
also allows declaration of intrinsic-function-names that may be used
without specifying the word FUNCTION.
General Format
Directives
- In addition to the Compiler directives which provide flagging and
modify the reserved word list, the following directives may impact
either the syntax or semantics described in this section.
- RDFPATH - specifies the location of the library for the
repository files.
Syntax Rules
- If any class-name-1, interface-name-2,
function-prototype-name-2,
intrinsic-function-name-1 or property-name-1 is specified more
than once in the REPOSITORY paragraph, all the specifications for that
name must be identical.
- Literal-1, literal-2, literal-3
and literal-4 must be nonnumeric literals and must not be
figurative constants.
- If the CLASS phrase is specified, class-name-2, class-name-3, and
interface-name-1 must be:
- Parameters of a containing class definition or interface
definition; or
- Defined in the same repository paragraph where class-name-1 is
defined.
- If class-name-1 is specified in the USING phrase of the CLASS-ID
paragraph of a class definition containing this REPOSITORY paragraph or
in the USING phrase of the INTERFACE-ID paragraph of an interface
definition containing this REPOSITORY paragraph, the EXPANDS phrase must
not be specified.
- If the INTERFACE phrase is specified, class-name-4, interface-name-3
and interface-name-4 must be:
- Parameters of a containing class definition or interface
definition; or
- Defined in the same repository paragraph where interface-name-2
is defined.
- If interface-name-2 is specified in the USING phrase of the CLASS-ID
paragraph of a class definition containing this REPOSITORY paragraph or
in the USING phrase of the INTERFACE-ID paragraph of an interface
definition containing this REPOSITORY paragraph, the EXPANDS phrase must
not be specified.
-
Either
function-prototype-name-1 must be the name of a function prototype or a
function definition specified previously in this compilation group or:
- if literal-4 is not specified, there must be information in the
external repository for the function function-prototype-name-1,
- if literal-4 is specified, there must be information in the
external repository for the function literal-4.
-
Intrinsic-function-name-1
must not be specified as a user-defined word within the scope of this
repository paragraph.
-
If ALL is specified in the
intrinsic format of the function-specifier, none of the names of the
intrinsic functions can be specified as a user-defined word within the
scope of the repository paragraph.
- If the specified class-name-1 is the name of the class definition in
which this REPOSITORY paragraph is specified, references to class-name-1
are to that class definition and this class-specifier is ignored.
- If the specified interface-name-2 is the name of the interface
definition in which this REPOSITORY paragraph is specified, references
to interface-name-2 are to that interface definition and this
interface-specifier is ignored.
-
If the specified
function-prototype-name-1 is the name of the function definition in
which this REPOSITORY paragraph is specified, references to
function-prototype-name-1 are to that function definition and this
function-specifier is ignored.
- If the CLASS phrase is specified:
- If literal-1 is specified, there must be information in the
external repository for the class literal-1.
- If literal-1 is not specified, there must be information in the
external repository for the class class-name-1.
- If the INTERFACE phrase is specified:
- If literal-2 is specified, there must be information in the
external repository for the interface literal-2.
- If literal-2 is not specified, there must be information in the
external repository for the interface interface-name-2.
- If the PROPERTY phrase is specified:
- If literal-3 is specified, there must be information in the
external repository for the property literal-3 that is part of one
of the classes or interfaces that are declared in this REPOSITORY
paragraph.
- If literal-3 is not specified, there must be information in the
external repository for the property property-name-1 that is part of
one of the classes or interfaces that are declared in this
REPOSITORY paragraph.
General Rules
- Class-name-1 is the name of a class that may be used throughout the
scope of the containing environment division.
- If the AS phrase is
specified, literal-1, literal-2 or literal-4 is the name by which the
class, interface or function respectively, is known to the operating
environment. Literal-3 is the name known to the operating environment
for a method that implements the named property. The AS phrase is
required when the name of a class, interface, property or functiondoes
not follow the rules for formation of a user-defined word or when the
name is case specific.
- Class-name-3 and interface-name-1 are actual parameters for the
parameterized class referenced by class-name-2.
- Class-name-4 and interface-name-4 are actual parameters for the
parameterized interface referenced by interface-name-3.
- If the EXPANDS phrase is specified in a class-specifier, a class
class-name-1 is created from the parameterized class class-name-2. The
number of parameters in the USING phrase of the EXPANDS phrase of the
class-specifier shall be the same as the number of parameters in the
USING phrase of the CLASS-ID paragraph of class-name-2. The interface
for class-name-1 is the interface specified for class-name-2 with the
parameters of class-name-2 replaced by the parameters specified in the
class-specifier.
The class class-name-1 is created from the parameterized class
class-name-2 by replacing each specification of the formal parameter
by the corresponding actual parameter. This replacement is done after
the processing of COPY and REPLACE statements.
- The compiler uses the information specified for class-name-1 together
with the external repository to determine the details of the class that
is to be used. The repository information for the class must be in a
file whose name is the externalized name of the class with the extension
rdf. If the RDFPATH directive is specified, the file must be in the
specified directory; otherwise, the file must be in the local directory
where the .int and .idy files will be created.
- Interface-name-2 is the name of an interface that may be used
throughout the scope of the containing environment division.
- If the EXPANDS is specified in an interface-specifier, an interface
interface-name-2 is created from the parameterized interface
interface-name-3. The number of parameters in the USING phrase of the
EXPANDS phrase of the interface-specifier shall be the same as the
number of parameters in the USING phrase of the INTERFACE-ID paragraph
of interface-name-3. The interface for interface-name-2 is the interface
specified for interface-name-3 with the parameters of interface-name-3
replaced by the parameters specified in the interface-specifier.
The interface interface-name-2 is created from the parameterized
interface interface-name-3 by replacing each specification of the
formal parameter by the corresponding actual parameter. This
replacement is done after the processing of COPY and REPLACE
statements.
- The compiler uses the information specified for interface-name-2
together with the external repository to determine the details of the
interface that is to be used. The repository information for the
interface must be in a file whose name is the externalized name of the
interface with the extension rdf. If the RDFPATH directive is specified,
the file must be in the specified directory; otherwise, the file must be
in the local directory where the .int and .idy files will be created.
- Property-name-1 is the name of an object property that may be used
throughout the scope of the containing environment division.
-
Function-prototype-name-1 is
the name of a function prototype that may be used throughout the scope
of the containing environment division.
-
If prototype definition or a
function defintion for function-prototype-name-1 is specified previously
in this compilation group, that definition is used to determine the
details for activating the function identified by
function-prototoype-name-1. Otherwise, the external repository is used
to determine the details for activating the function with the
externatlized name function-prototype-name-1 and that function is
activated when fuinction-prototype-name-1 is referenced.
-
Intrinsic-function-name-1
may be specified in a function-identifier without being preceded by the
word FUNCTION.
-
If ALL is specified in the
intrinsic format of the function-specifier, it is as if each of the
intrinsic-function-names defined in the chapter
Procedure Division -
Intrinsic Functions were specified.
Function
The input-output section deals with the information needed to control
transmission and handling of data between external media and a runtime
element.
General Format
INPUT-OUTPUT SECTION.
[ file-control-paragraph ]
[ i-o-control-paragraph ]
Syntax Rules
-
The input-output section
can be specified in a program definition
or a function definition.
Within a class definition, the input-output section must be specified
only in a factory definition, an object definition, or a method
definition. The input-output section must not be specified within an
interface definition.
The FILE-CONTROL Paragraph
Function
The FILE-CONTROL paragraph names each file and allows specification of
other file-related information.
General Format
Function
The
FILE-CONTROL entry names a file and can specify other file-related
information.
Although they are a part of
the standard COBOL definition, the RECORD DELIMITER and RESERVE phrases
and ellipses in the ASSIGN clause are explicitly excluded from the X/Open
COBOL language definitions and should not be used in a conforming X/Open
COBOL source program.
General Formats
Format 1 (Record Sequential Files)
Format 2 (Line Sequential Files)
Format 3 (Relative Files)
Format 4 (Indexed Files)
Format 5 (Sort-Merge Files)
Directives
- In addition to Compiler directives which provide flagging and modify
the reserved word list, the following directives may impact either the
syntax or semantics described in this section.
- ASSIGN - determines how the literal, data-name, or
external-file-reference is evaluated.
- SEQUENTIAL - determines whether files defined as ORGANIZATION IS
SEQUENTIAL are considered LINE SEQUENTIAL or RECORD SEQUENTIAL.
Syntax Rules
All Formats (All Files)
- The
SELECT clause must be specified first in the file control entry.
The clauses which follow the SELECT clause can appear in any order.
- Each file described in the Data Division must be named once, and only
once, as file-name in the FILE-CONTROL paragraph. Each file specified in
the file control entry must have a file description entry in the Data
Division of the same factory, method, object,
function or program.
- If the ACCESS MODE clause is not specified, the ACCESS MODE IS
SEQUENTIAL clause is implied.
-
Data-name-1 can be declared
in the Data Division as an alpha-numeric or group data item long enough
to hold the external name of the file. If it is not explicitly declared
within the source element, your COBOL system will declare it implicitly
as an alphanumeric data item long enough to hold the maximum permissible
size of file-name. If data-name-1 occurs in the FROM option, the data
item must be explicitly declared in the Data Division.
-
The NOT OPTIONAL phrase has
effect only when the file is opened input-output.
-
External-file-reference,
data-name-1, or literal-1 specifies the external name of the file.
If the EXTERNAL or
DYNAMIC option is used, literal-1 must not be specified.
If the DYNAMIC option is
used, the word specified for the external file-name will be
interpreted as external-file-reference.
- Data-name-2 must be defined in the Data Division as a two-character,
alphanumeric data item
or a two-character
numeric data item with USAGE DISPLAY
and must not be defined in the File or
LOCAL-STORAGE
Sections of the Data Division.
-
Data-name-3 must be defined
as a group item of 6 bytes in the Working-Storage or Linkage Section of
the Data Division.
-
Data-name-4 must be
defined in the Working-Storage Section as an alphanumeric data item.
- All data-names can be qualified.
Format 1 (Record Sequential Files only)
-
Literal-2 must be a
one-character nonnumeric literal.
-
Data-name-5 can be
qualified. It must be defined in the Data Division as a one-character
data item of category alphanumeric. It cannot be defined in the
File or Report Sections of the Data Division.
-
Character-string must not
be a reserved word, a user-defined word that is defined elsewhere, or a
literal.
Formats 1 and 2 (Record and Line Sequential Files)
- When the
ORGANIZATION clause is not specified, sequential organization is
assumed.
-
KEYBOARD means console
input.
-
DISPLAY means console
output.
-
PRINTER specifies the
system's main printer.
-
PRINTER-1 specifies the
system's second printer.
Format 3 (Relative Files)
- If a relative file is to be referenced by a START statement, the
RELATIVE KEY phrase must be specified for that file.
- Data-name-5 must not be defined in a record description entry
associated with that file-name.
- The data item referenced by data-name-5 must be defined as an
unsigned integer.
Format 4 (Indexed Files)
-
Split-key-name is a
concatenation of one or more data items within a record associated with
that file-name. It can be referenced only in START and READ statements.
- The data items referenced by data-name-5 and data-name-8
and any data-names
referenced by split-key-name-1 and split-key-name-2
must be defined within a record description entry associated with
the file-name.
Any of these data items
can be defined as any supported data category. However, the key is
still treated as an alphanumeric item for the input and output
statements against the file named > in the SELECT clause.
- Data-name-5 and data-name-8
and any data-names
referenced by split-key-name-1 and split-key-name-2
cannot describe an item whose size is variable. See the section The
OCCURS Clause in this chapter.
- Data-name-8 cannot reference an item whose leftmost character
position corresponds to the leftmost character position of the item
referenced by data-name-5 or by another data-name-8 specified for the
same file.
-
If the
PASSWORD clause is specified, it must immediately follow its
associated RECORD KEY or
ALTERNATE RECORD KEY clause.
Format 5 (Sort-Merge Files)
- Each sort or merge file described in the Data Division must be named
once and once only as file-name in the FILE-CONTROL paragraph. Each sort
or merge file specified in the file control entry must have a sort-merge
file description entry in the Data Division.
- Since file-name represents a sort or merge file, only the
ASSIGN clause is permitted to follow file-name in the
FILE-CONTROL paragraph.
General Rules
All Formats (All Files)
- The ASSIGN clause specifies the association of the file referenced by
file-name-1 to a storage medium. The first assignment takes effect,
subsequent assignments
within any one ASSIGN clause are documentary only.
- The
RESERVE clause allows the user to specify the required number of
input-output areas.
The RESERVE clause is
documentary only, unless the COBOL system documentation specific to
your operating system indicates otherwise.
- The ORG
ANIZATION clause specifies the logical structure of a file. The
file organization is established at the time a file is created and
cannot subsequently be changed.
-
When the FIL
E STATUS clause is specified, a value will be moved by the
Run-Time System into the data item specified by data-name-2 after the
execution of every statement that references that file either explicitly
or implicitly. This value indicates the status of execution of the
statement. (See the section I/O Status later in this manual.)
Data-name-3, if
specified, is documentary only.
-
The
PASSWORD clause is documentary only.
-
Use of the reserved word
DYNAMIC in an ASSIGN clause indicates that the value of literal-1 or
data-name-1 in that ASSIGN clause is the specified file's name in the
external file-storage environment.
-
Use of the reserved word
EXTERNAL in an ASSIGN clause indicates that external-file-reference
identifies the specified file to the external environment for possible
further mapping to an external file-storage environment-name. (See your
COBOL system documentation on file handling for details on setting up
external-file-name for your particular operating environment.)
If
external-file-reference contains the character "",
then only that part of the name following the last ""
is used to identify the file to the external environment.
-
The DISK option without
external-file-reference, data-name-1 or literal-1 and without the FROM
option, specifies a disk file whose name will be given in a
VALUE OF FILE-ID clause in the file description for the file. If
that file description contains no VALUE OF FILE-ID clause, the name of
the disk file is assumed to be the same as file-name-1 (known as the
internal file-name).
-
If any of the keywords
DISK, KEYBOARD, DISPLAY, PRINTER or PRINTER-1 are followed by
external-file-reference, data-name-1 or literal-1, that keyword is
ignored.
-
The DISK option with the
FROM option specifies a disk file whose name on the disk is the value of
data-name-1. However, if when an OPEN statement is executed for that
file, data-name-1 contains all spaces, the name of the disk file is
assumed to be the same as file-name-1 (known as the internal-file-name).
- The
OPTIONAL phrase applies only to files opened in the INPUT, I/O or
EXTEND mode. Its specification is required for files that are not
necessarily present each time the runtime element is executed.
-
The SHARING clause
specifies the sharing mode to be used for the file unless it is
overridden by the SHARING phrase of the OPEN statement. This clause also
specifies whether record locks have an effect. Additional details are
specified in
Sharing mode.
Formats 1, 3 and 4 (Record Sequential, Relative and Indexed
files)
-
The
LOCK MODE clause is an optional clause in the file control entry
and is used to specify the locking technique used for the file.
If this clause is
omitted, opening the file causes it to become exclusive, with the
exception of OPEN INPUT.
When LOCK MODE IS
EXCLUSIVE is specified, the run unit acquires a lock on the whole file
when it opens the file.
When LOCK MODE IS
AUTOMATIC or LOCK MODE IS MANUAL is specified, the file that the run
unit opens is shareable. Files opened OUTPUT, and indexed and relative
files opened EXTEND are, however, always exclusive.
-
The
ROLLBACK clause requests transaction logging for a file under
those COBOL systems that support that feature. See your COBOL system
documentation on file handling for details of how it is implemented in
your system.
If the ROLLBACK clause is
specified then WITH LOCK ON MULTIPLE RECORDS will automatically be in
effect.
-
The
WITH LOCK ON RECORD clause specifies single record locking for
the file.
The WITH LOCK ON MULTIPLE
RECORDS clause specifies multiple record locking for the file. This
clause must be present if multiple record locking is required.
-
If LOCK MODE IS AUTOMATIC
WITH LOCK ON RECORD is specified for a file, a record lock is acquired
by the execution of the READ statement and is released upon execution of
a subsequent I/O operation on this file, with the exception of a START
statement.
If LOCK MODE IS AUTOMATIC
WITH LOCK ON MULTIPLE RECORD is specified for a file, a record lock is
acquired by the execution of the READ statement and is not released
until a CLOSE, COMMIT, ROLLBACK or UNLOCK statement is executed, or
until an individual lock is released by a DELETE statement.
-
If LOCK MODE IS MANUAL WITH
LOCK ON RECORD is specified, a lock is acquired by a READ statement only
if it includes the WITH LOCK phrase, and is released upon execution of a
subsequent I/O operation on this file, with the exception of a START
statement.
If LOCK MODE IS MANUAL
WITH LOCK ON MULTIPLE RECORDS is specified, a record lock is acquired
by the READ WITH KEPT LOCK statement and is not released until a
CLOSE, COMMIT, ROLLBACK or UNLOCK statement is executed.
-
When the lock mode is
MANUAL or AUTOMATIC, single record locking is assumed unless the WITH
LOCK ON MULTIPLE RECORDS phrase is included.
-
If a file is defined as
EXTERNAL and the operating system file-name is assigned by means of a
file-name, for example, by use of either the
ASSIGN
directive or keyword, using data-name-1 in the SELECT/ ASSIGN
statement, or using Format 2 of the VALUE OF phrase of an FD, then the
following rules should be followed:
- an identifier with the same name should be used to contain the
physical file-name in all source elements which reference the file.
- the definition of the identifier which contains the physical
file-name should also contain the EXTERNAL attribute.
No violation of these
rules will be detected at compile time, but, if any runtime element in
the run unit violates these rules, the results at run time will be
undefined.
For further details of
the effects of
record locking, see your COBOL system documentation on file
handling.
Format 1 (Record Sequential Files)
- The MULTIPLE REEL or MULTIPLE UNIT phrase must be specified if it is
possible or intended that the file can be closed by use of the CLOSE
REEL or CLOSE UNIT statement.
- Records in the file are accessed in the sequence specified by
predecessor-successor record relationships which are established by the
execution of WRITE statements when the file is created or extended.
-
Using the LINE ADVANCING
FILE phrase causes a file suitable for a printer to be produced. This
file will have an initial carriage-return character, and each record is
written with AFTER ADVANCING 1 LINE as the default advancing phrase. See
your COBOL system documentation on file handling for further details of
the format.
-
The
PADDING CHARACTER clause is documentary only.
If the associated file
connector is an external file connector, all PADDING CHARACTER clauses
in a run unit which are associated with that file connector must have
the same specification. If data-name-5 is external, it must reference
an external data item.
The
RECORD DELIMITER clause is documentary only.
Format 2 (Line Sequential Files)
-
When
LINE SEQUENTIAL ORGANIZATION is specified either implicitly or
explicitly, the file is treated as consisting of fixed length records,
each containing one line of data. The records are stored with trailing
spaces removed. The definition of a line of data varies among different
operating systems. Some terminate line "records" with one or
both of the Carriage Return and Line Feed characters, and some pad out
as fixed length records. Your COBOL system, therefore, always produces
files which are compatible in this respect with the editor software in
any operating system.
-
The LOCK MODE IS clause is
documentary only.
Format 3 (Relative Files)
- When access mode is sequential, records in the file are accessed in
order of ascending relative record numbers of existing records in the
file.
- When access mode is random, the value of the RELATIVE KEY data item
indicates the record to be accessed.
- All records stored in a relative file are uniquely identified by
relative record numbers, which also specify the record's logical ordinal
position in the file. The first logical record has a relative record
number of 1, and subsequent logical records have relative record numbers
of 2, 3, 4, ... .
- The data item specified by data-name-5 is used to communicate a
relative record number between the user and the operating system.
Format 4 (Indexed Files)
- When access mode is sequential, records in the file are accessed in
order of ascending record key values within a given key of reference.
- When access mode is random, the value of the record key data item
indicates the record to be accessed.
- The
RECORD KEY clause specifies the record key that is the prime
record key for the file. The values of the prime record key must be
unique among records of the file. This prime record key provides an
access path to records in an indexed file.
- If the file has more than one record description entry, data-name-1
need be described only in one of these record description entries. The
identical character positions referenced by data-name-1 in any one
record description entry are implicitly referenced as keys for all other
record description entries of that file.
-
If the associated file
connector is an external file connector, all file description entries in
the run unit which are associated with that file connector must specify
the same data description entry for data-name-1 with the same relative
location in the associated record.
- The
ALTERNATE RECORD KEY clause specifies a record key that is an
alternative record key for the file. This alternate record key provides
an alternative access path to records in an indexed file.
- The data description of data-name-5
or split-key-name-1
and data-name-8
or split-key-name-2,
as well as of relative locations within a record, must be the same
as that used when the file was created. The number of alternate keys
for the file must also be the same as that used when the file was
created. This checking is configurable in some environments. (See the
KEYCHECK attribute in the Callable File Handler configuration file,
which is documented in the section "Configuring the Callable File
Handler" of the "Programmer's Guide to File Handling".)
- The
DUPLICATES phrase specifies that the value of the associated
record key can be duplicated within any of the records in the file. If
the DUPLICATES phrase is not specified, the value of the associated
record key must not be duplicated among any of the records in the file.
- For duplicate values, the correct duplicate entry must be located
using sequential reads from the first duplicate entry.
-
The SUPPRESS phrase
requests the use of a sparse key for an alternate index. Sparse keys are
only available through the Callable File Handler and are not available
on all systems (see your COBOL system documentation on file handling for
details).
Format 5 (Sort-Merge Files)
- The file-control entry names a sort or merge file and specifies the
association of the file to a storage medium.
-
When the
SORT STATUS clause is specified, a value is placed into the
two-character data item specified by data-name-2 after the execution of
each sort operation. This value indicates the status at completion of
the operation.
The resulting status of
the sort operation is indicated by valid combinations of status keys 1
and 2. For explanations of status keys 1 and 2 and definitions of
status, see the section I/O Status earlier in this chapter.
The following
combinations of status keys are possible. Status key 1=0 and status
key 2=0 indicates successful completion. Status key 1=3 and status key
2=0 indicates a permanent error. If status key 1=9, status key 2
contains an operating system error message number.
The
FILE STATUS clause can be used instead of a SORT STATUS clause,
but is treated as a synonym for it, when specified for a SORT or merge
file.
- The ASSIGN clause is documentary only.
Function
The I-O-CONTROL paragraph specifies the points at which rerun is to be
established, the memory area which is to be shared by different files, and
for files with sequential organization the location of files on a multiple
file reel.
The RERUN and MULTIPLE FILE
TAPE clauses of the I-O-CONTROL paragraph are classed as obsolete elements
in the ANSI'85 standard and are scheduled to be deleted from the next full
revision of the ANSI Standard.
All dialects within this
COBOL implementation fully support this syntax. The FLAGSTD Compiler
directive can be used to detect all occurrences of this syntax.
Although they are a part of
the standard COBOL definition, the RERUN and MULTIPLE FILE TAPE clauses
are explicitly excluded from the X/Open COBOL language definitions and
should not be used in a conforming X/Open COBOL source program.
General Format
Syntax Rules
- The I-O-CONTROL paragraph is optional.
- When either the integer-1 RECORDS clause or the integer-2 CLOCK-UNITS
clause is specified, character-string must be given in the
RERUN clause.
- In the SAME AREA clause, SORT and SORT-MERGE are equivalent.
- If the SAME SORT AREA or SAME SORT-MERGE AREA clause is used, at
least one of the file-names must represent a sort or merge file. Files
that do not represent sort or merge files can also be named in the
clause.
- The two forms of the
SAME clause (SAME AREA, SAME RECORD AREA) are considered
separately in the following:
More than one SAME clause can be included in a source element,
subject to the following restrictions:
- A file-name must not appear in more than one
SAME AREA clause.
- A file-name must not appear in more than one
SAME RECORD AREA clause.
- If one or more file-names of a SAME AREA clause appear in a SAME
RECORD AREA clause, all of the file-names in that SAME AREA clause
must appear in the SAME RECORD AREA clause. However, additional
file-names not appearing in that
SAME AREA clause can also appear in that SAME RECORD AREA
clause. The rule that only one of the files mentioned in a SAME AREA
clause can be open at any one time takes precedence over the rule
that all files mentioned in a
SAME RECORD AREA clause can be open at any one time.
- A file-name that represents a SORT or MERGE file must not appear
in a SAME AREA clause.
- A file-name that represents a sort or merge file must not appear
in more than one SAME SORT AREA or SAME SORT-MERGE AREA clause.
- If a file-name that does not represent a sort or merge file
appears in a
SAME AREA clause and one or more SAME SORT AREA or SAME
SORT-MERGE AREA clauses, all of the files named in that SAME AREA
clause must be named in that SAME SORT AREA or SAME SORT-MERGE AREA
clause(s).
- The files referenced in the
SAME AREA, SAME SORT AREA, SAME SORT-MERGE AREA, or SAME RECORD
AREA clause need not all have the same organization or access.
-
Character-string must not
be a reserved word, a literal or a user-name.
- The END OF REEL/UNIT clause can only be used if file-name-2 is a
sequential file.
- More than one RERUN clause can be specified for a given file-name-2,
subject to the following restrictions:
- When multiple integer-1 RECORD clauses are specified, no two of
them can specify the same file-name-2.
- When multiple END OF REEL or END OF UNIT clauses are specified,
no two of them can specify the same file-name-2.
- Only one RERUN clause containing the CLOCK-UNITS clause can be
specified.
-
Each clause in the
I-O-CONTROL paragraph may optionally be followed by a period.
General Rules
-
The RERUN clause is
documentary only.
- The SAME AREA clause specifies that two or more files that do not
represent sort or merge files are to use the same memory area during
processing. The area being shared includes all storage area assigned to
the files specified. It is not, therefore, valid to have more than one
of the files open at the same time. (See Syntax Rule 5c.)
- The SAME RECORD AREA clause specifies that two or more files are to
use the same memory area for processing the current logical record. All
of the files can be open at the same time. A logical record in the SAME
RECORD AREA is considered as a logical record of each opened output file
whose file-name appears in this SAME RECORD AREA clause and of the most
recently read input file whose file-name appears in this SAME RECORD
AREA clause. This is equivalent to an implicit redefinition of the area;
that is, records are aligned on the leftmost character position.
-
The
APPLY clause is documentary only.
-
The MULTIPLE FILE clause is
documentary only.
- If the SAME SORT AREA or SAME SORT-MERGE AREA clause is used, at
least one of the file-names must represent a sort or merge file. Files
that do not represent sort or merge files can also be named in the
clause. This clause specifies that storage is shared as follows:
- The SAME SORT AREA or SAME SORT-MERGE AREA clause specifies a
memory area which will be made available for use in sorting or
merging each sort or merge file named. Thus any memory area
allocated for the sorting or merging of a sort or merge file is
available for reuse in sorting or merging any of the other sort or
merge files.
- In addition, storage areas assigned to files that do not
represent sort or merge files can be allocated as needed for sorting
or merging the sort or merge files named in the SAME SORT AREA or
SAME SORT-MERGE AREA clause.
- Files other than sort or merge files do not share a storage area.
If the user wishes these files to share a storage area, he must also
include in the source element a SAME AREA or SAME RECORD AREA clause
naming these files.
- During the execution of a
SORT or
MERGE statement that refers to a sort or merge file named in
this clause, any non-sort-merge files named in this clause must not
be open.
Copyright © 2000 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
| Identification Division |
|
Data Division | |