Dynamically creating QSAM files
Sometimes a QSAM file is unavailable on the operating system, but a COBOL program specifies that the file be created. Under certain circumstances, the file is created for you dynamically.
A
QSAM file is considered to be available on z/OS when it has been identified
to the operating system using a valid DD
statement,
an export
command for an environment variable, or
a TSO ALLOCATE
command. Otherwise
the file is unavailable.
Note that a DD
statement
with a misspelled ddname is equivalent to a missing DD
statement,
and an environment variable with a value that is not valid is equivalent
to an unset variable.
The QSAM file is implicitly
created if you use the runtime option CBLQDA
and
one of the following circumstances exists:
- An optional file is being opened as
EXTEND
orI-O
.Optional files are files that are not necessarily available each time the program is run. You define a file that is being opened in
INPUT
,I-O
, orEXTEND
mode as optional by coding theSELECT OPTIONAL
clause in theFILE-CONTROL
paragraph. - The file is being opened for
OUTPUT
, regardless of theOPTIONAL
phrase.
The file is allocated with the system default attributes
established at your installation and the attributes coded in the SELECT
clause
and FD
entry in your program.
Do not confuse
this implicit allocation mechanism with the explicit dynamic allocation
of files by means of environment variables. Explicit dynamic allocation
requires that a valid environment variable be set. CBLQDA
support
is used only when the QSAM file is unavailable as defined above, which
includes no valid environment variable being set.
Under z/OS, files created using the CBLQDA
option
are temporary data sets and do not exist after the program has run.