Previous Topic: SyntaxNext Topic: Usage


Parameters

RECord name is record-name

Identifies the database record description to be added, modified, or deleted. Record-name must be a 1- to 16-character name. The first character must be A through Z (alphabetic), #, $, or @ (international symbols). The remaining characters can be alphabetic or international symbols, 0 through 9, or the hyphen (except as the last character or following another hyphen). Record-name must not be the same as the schema name or the name of any other component (including synonyms) within the schema.

SHAre

Connects an existing record structure to the schema record. That is, the schema record shares the dictionary description of an existing record, including its synonyms, elements, and element synonyms. Note that, unlike the COPY ELEMENTS substatement the SHARE clause does not create a new record structure.

Note: For more information about contrasting SHARE and COPY ELEMENTS, see "Usage" in this section.

The following considerations apply to the sharing of record structures:

record-structure-option

Allows the schema record to share the structure of either a dictionary record (IDD record) or a record that belongs to another schema. The DBA must supply the appropriate RECORD ID, LOCATION MODE, VSAM TYPE, WITHIN AREA, MINIMUM ROOT, MINIMUM FRAGMENT, and CALL clauses, as shown in the following example:

add record name is skill
    share structure of record skill
        of schema othrschm
    location mode is calc using skill-code
        duplicates are not allowed
    within area org-demo-region
    minimum root length is control length
    minimum fragment length is record length
    call idmscomp before store
    call idmscomp before modify
    call idmsdcom after get.
shared-record-name

Identifies an existing record. While it can be either a primary name or a synonym, shared-record-name must be the same as record-name (the object of the ADD or MODIFY).

of SCHema shared-schema-name

Names the schema associated with shared-record-name. Shared-schema-name must be the name of a schema, already defined in the dictionary, in which shared-record-name participates. The schema must have a status of VALID (see the VALIDATE statement in this chapter).

version-specification

Uniquely qualifies shared-schema-name with a version number. The default for existing versions is the current session option.

Note: Expanded syntax for version-specification is presented in Chapter 13, “Parameter Expansions”.

record-description-option

Allows the schema record to share the structure of a record that belongs to another schema. Unlike SHARE STRUCTURE, SHARE DESCRIPTION copies the remainder of shared-record-name's description (record ID, location mode, and so forth) to the schema record named as the object of the ADD or MODIFY (record-name). In the following example, the SKILL record in the current schema shares the structure of the SKILL record in EMPSCHM (version 1); each record has its own copy of nonstructural information:

add record name is skill
    share description of record skill
        of schema empschm version 1.

SHARE DESCRIPTION is not valid if record-name already has nonstructural specifications.

shared-record-name

Identifies an existing record. While it can be either a primary name or a synonym, shared-record-name must be the same as record-name (named as the object of the ADD or MODIFY). Shared-record-name must be qualified with the name of the schema to which it belongs.

version-specification

Uniquely qualifies dictionary records specified for shared-record-name. The default is the session option.

Note: Expanded syntax for version-specification is presented in Chapter 13, “Parameter Expansions”.

of SCHema shared-schema-name

Names the schema associated with shared-record-name. This clause is required.

Shared-schema-name must be the name of a schema, already defined in the dictionary, in which shared-record-name participates. The schema must have a status of VALID (see 14.8, “VALIDATE Statement”)

version-specification

Uniquely qualifies shared-schema-name with a version number. The default for existing versions is the current session option.

Note: Expanded syntax for version-specification is presented in Chapter 13, “Parameter Expansions”.

RECord ID is

Assigns a number that uniquely identifies each schema record type. Record IDs are used internally only by CA IDMS/DB software: user-written code never refers to record IDs.

Important! Do not change record IDs for existing databases. Use the RECORD ID clause only when adding new records or when changing records in a schema for which a database is not yet defined.

record-id-number

Specifies an absolute record ID; it must be an unsigned integer in the range 10 through 9999. Record IDs can be duplicated across areas in the schema, however, record IDs must be unique for all records within one area

AUTo

For ADD operations only, indicates that the compiler automatically assigns the record ID. If the record is the first in the schema to be assigned a record ID, AUTO assigns the value specified in the ASSIGN RECORD IDS clause in the SCHEMA statement; otherwise, AUTO assigns a value 1 greater than the highest record ID in the schema, until 9999 is reached. When 9999 is reached, the AUTO attribute assigns the highest unused record ID.

The compiler assigns the ID when the ADD RECORD statement is processed; subsequent displays of the record show the actual ID, rather than the word AUTO.

INClude record-synonym-specification

Identifies a record synonym to be associated with the primary record name. A synonym is an alternate name for a record. You can associate more than one record synonym with a record.

record-synonym-name

Names the record synonym. Record-synonym-name must follow the rules for the host language with which the synonym is being used and must follow the rules specified above for record names. Record synonyms that will be copied into a subschema or used with OLQ must not exceed 16 characters.

language

Specifies the host language with which the record synonym will be used. Valid values are any of the languages defined in the dictionary, including those defined when CA IDMS/DB is installed: COBOL, PL/I, ASSEMBLER, OLQ, SQL, and CULPRIT. A single synonym may be associated with any number of languages. A record may have only one record synonym associated with language SQL.

You can specify the language variable before or after the record-synonym-name variable.

EXClude record-synonym-specification

Disassociates the named record synonym from the record, provided it is not associated with any other schemas, subschemas, maps, or logical records. If you specify the optional FOR LANGUAGE clause, CA IDMS/DB disassociates the record synonym from the named language.

LOCation MODe is

Defines the technique that CA IDMS/DB will use to physically store occurrences of the record type. Each record type must be assigned only one location mode. Note, however, that a record type's location mode does not restrict retrieval of record occurrences to a single technique.

calc-location-mode-specification

Specifies that occurrences of the record are to be stored on or near a page that CA IDMS/DB calculates from values in the record element(s) defined by calc-elecalc-element-name (the record's CALC key).

calc-element-name

Names any elementary or group data element defined as a record element (see 14.5, “Element Substatement"), with the following restrictions:

Multiple calc-element-name values can be coded, forming a compound CALC control element and thereby allowing record placement to be keyed on more than one element within the record. The element names that form the CALC control element need not be contiguous within the member record. The combined lengths of the elements (as defined in the PICTURE and USAGE clauses of the ELEMENT substatement) must not exceed 256 bytes.

If the calc key is to be referenced as a primary key in a set definition, calc-element-name must not identify a group element.

DUPlicates are

Specifies whether occurrences of a record type with duplicate CALC key values are allowed and, if allowed, how they are logically positioned relative to the duplicate record already stored.

FIRst

Logically positions record occurrences with a duplicate CALC key before the duplicate record already stored.

LASt

Logically positions record occurrences with a duplicate CALC key after the duplicate record already stored.

by DBKey

Logically positions record(s) occurrences with a duplicate CALC key according to the db-key.

NOT allowed

Indicates that record occurrences with duplicate CALC keys are not allowed.

DIRect

Specifies that occurrences of the record are to be stored on or near a page specified at runtime by the user program.

VIA set-name set

Specifies that occurrences of the record are to be stored relative to their owner in a specific set:

Set-name specifies the name of a set in which the record type participates as a member. In most cases, records are defined before sets, so set-name need not identify an existing set. However, until the set is defined, the VALIDATE statement will detect errors in the schema.

displacement-specification

Specifies how far away member records are stored from the owner record.

DISplacement USIng symbolic-displacement-name

Names a symbol used to represent the displacement. The symbol is assigned a value in a corresponding physical area definition.

DISplacement page-count pages

Specifies how far away member records cluster from the owner record when the member and owner record occurrences are assigned to the same page range. The member records cluster starting at the page on which the owner record resides plus page-count pages (wrapping around to the beginning of the page range if necessary).

Page-count must be an unsigned integer in the range 0 through 32,767. If page-count exceeds the number of pages in the record page range, the displacement wraps around to the beginning of the page range.

VSAm

Specifies that the record is a native VSAM record for which CALC access is required.

vsam-calc-location-mode-specification

Specifies the CALC key used to access occurrences of the record type from a native VSAM file.

USIng calc-element-name

Names the element representing the key of a native VSAM file. For KSDS files, calc-element-name identifies the primary key; for PATH files, it identifies an alternate index on a KSDS or ESDS file. It also must be defined through an ELEMENT substatement, with the same restrictions as those for the CALC element in the CALC USING clause above.

DUPlicates are

Specifies whether native VSAM record occurrences are allowed to have duplicate CALC keys and if allowed. The DUPLICATES option must correspond to the duplicates option specified when the file was defined to VSAM.

UNORDered

Indicates that CA IDMS/DB stores record occurrences with duplicate CALC keys and always retrieves the duplicate record occurrences in the order in which they were stored (whether retrieving forward or backward through the area).

NOT allowed

Indicates that CA IDMS/DB does not store record occurrences with duplicate CALC keys.

WIThin AREa area-name

Identifies the area in which occurrences of the record type will be located. Area-name must name an area associated with the current schema.

SUBAREA symbolic-subarea-name

Names a symbol used to represent a page range (a subarea). Within the physical area definition, the symbolic subarea is assigned the actual range of pages. in which CA IDMS/DB will store occurrences of the record type.

offset-expression

Specifies a relative range of pages, in terms of either a percentage of the physical area or a number of pages in which CA IDMS/DB will store occurrences of the record type. By default, CA IDMS/DB uses the entire physical area.

offset-page-count PAGES

Determines the lowest page that CA IDMS/DB should use as the first page to store occurrences of the record type. CA IDMS/DB calculates the actual page, using the formula shown next, when you generate the DMCL that contains the physical area:

record's lopage = (LPN + offset-page-count)

     where LPN = the lowest page number in the physical area

Offset-page-count must be an integer in the range 0 through the number of pages in physical-area-name minus 1.

offset-percent PERcent

Determines the first page in which CA IDMS/DB will store occurrences of the record type based on the initial page range of the physical area:

record's lopage = (LPN + (INP * offset-percent * .01))

     where LPN = the lowest page number in the physical area
       and INP = the initial number of pages in the physical area

Offset-percent must be an integer in the range 0 through 100.

FOR page-count PAGes

Determines the last page in which CA IDMS/DB will store occurrences of the record type based on record's low page.

record's hipage = (RLP + page-count - 1)

     where RLP = the first page in which occurrences of the
                 record will be stored

The calculated page must not exceed the highest page number in the physical area.

FOR percent PERcent

Determines the last page in which CA IDMS/DB will store occurrences of the record type based on the record's low page and the total number of pages in the physical area:

record's hipage = (RLP + (TNP * percent * .01) - 1)

     where RLP = the first page in which occurrences of the record
                 will be stored
       and TNP = the total number of pages in the physical area

Percent must be an integer in the range 1 through 100. The default is 100. If percent causes the calculated high page to be greater than the highest page number in the physical area, CA IDMS/DB will ignore the excessive page numbers and will store the record occurrences up to and including the last page in the physical area. The following example is valid and causes EMPLOYEE records to be stored over the last 3/4ths of the area:

add record name is employee
    within area emp-demo-region
        offset 25 percent for 100 percent.
VSAm TYPe is

Identifies the record as a native VSAM data record and removes or supplies information about how the file containing the record was defined to VSAM. Unless NULL is specified, the options must match those of the VSAM file being described.

For a schema definition to be valid, VSAM TYPE must be supplied for all native VSAM records; this clause is valid only for those records.

FIXed LENgth

Specifies a fixed length record.

VARiable LENgth

Specifies a variable length record.

SPAnned

Specifies that occurrences of the record can span VSAM control intervals.

NONSPAnned

Specifies that occurrences of the record cannot span VSAM control intervals.

NULl

Removes information previously specified in a VSAM TYPE clause.

MINimum ROOT length is

Specifies (or removes the specification for) the minimum portion of a variable-length record that can be stored on a database page. During DML STORE operations, if CA IDMS/DB cannot find a page with enough space to accommodate the minimum root, it will not store the record.

root-length characters

Specifies that the initial portion of the record must be the specified number of bytes (characters). Root-length must include all CALC, index, and sort control elements. It must be an unsigned integer; if it is not a multiple of 4, the compiler will make it so by rounding up.

CONtrol length

Specifies that the initial portion of the record must include all bytes up to and including the last CALC, index, or sort control element. If the record contains an element defined with an OCCURS DEPENDING ON clause, or if a PROCEDURE NAME or DCTABLE clause is used to indicate compression, CONTROL LENGTH is the default.

RECord length

Specifies that the initial portion of the record must be the entire record (that is, the record is not to be fragmented).

NULl

Removes information previously specified in a MINIMUM ROOT LENGTH clause.

MINimum FRAgment length is

Either specifies the minimum length of subsequent segments (fragments) of a variable-length record or removes such specification (NULL). During DML STORE and MODIFY operations, if CA IDMS/DB cannot find a page with enough space to accommodate the specified portion of the record, it will not store or modify the record.

fragment-length characters

Specifies that subsequent portions of the record must include at least fragment-length bytes (an exception is the last fragment, which can be smaller). Fragment-length must be an unsigned integer; if it is not a multiple of 4, the compiler will make it so by rounding up. If the record contains an element defined with an OCCURS DEPENDING ON clause, the default is 4.

If the record does not contain an OCCURS DEPENDING ON clause but does contain either a PROCEDURE NAME or a DCTABLE clause (indicating that it is compressed), the default is 40, or (record-length - control-length), whichever is smaller.

RECord length

Specifies that subsequent portions of the record must include the remainder of the record. No more than one fragment will ever be created.

NULl

Removes information previously specified in a MINIMUM FRAGMENT LENGTH clause.

DCTable name

For sites that have installed CA IDMS Presspack, specifies the name of a Data Characteristic Table (DCT). A DCT establishes the best way to compress or decompress records, based upon statistics created by the IDMSPASS utility. This parameter is repeatable so you can specify one DCT for compression and another for decompression.

BUILTIN

Specifies the name of a DCT supplied with CA IDMS Presspack that contains generic information that can be used to compress or decompress any record or set of records.

dctable-name

Specifies the name of a customized DCT. Dctable-name is a 1- to 8-character name of a customized DCT created by IDMSPASS.

is used FOR COMPression

Specifies that the named DCT is used to compress records.

is used FOR DECOMpression

Specifies that the named DCT is used to decompress records.

is used FOR BOTh

Specifies that the named DCT is used to compress and decompress records. BOTH is the default.

PROcedure name procedure-name

Specifies the name of a standard compression or decompression procedure. Procedure-name is the name of a system-provided or user-defined database record compression or decompression procedure. It must be the CSECT name or entry point of an existing procedure. If, at runtime, the procedure is link edited alone for dynamic loading, procedure-name must also be the load library member name.

is used FOR COMpression

Specifies that the procedure compresses the record.

is used FOR DECOMpression

Specifies that the procedure decompresses the record.

CALl procedure-name

Specifies the name of a system-provided or user-defined database procedure to be called when the runtime system performs the specified DML function against the record. If no function is specified, the procedure is called for every DML function performed against the record.

Procedure-name is the CSECT name or entry point of an existing procedure. If, at runtime, the procedure is link edited alone for dynamic loading, procedure-name must also be the load library member name.

If multiple procedures are called for the same function, the procedures are invoked in the order specified.

BEFore

Calls the procedure before the DML function is performed against the record.

AFTer

Calls the procedure after the DML function is performed against the record.

on ERRor during

Calls the procedure when a runtime error occurs during the processing of a DML function against the record. A runtime error exists when the error status is not equal to 0000.

CONnect

Calls the database procedure in response to a CONNECT function.

DISCONnect

Calls the database procedure in response to a DISCONNECT function.

ERAse

Calls the database procedure in response to an ERASE function.

FINd

Calls the database procedure in response to a FIND function. To call a database procedure in response to OBTAIN, code this option and the GET option.

GET

Calls the database procedure in response to a GET function. To call a database procedure in response to OBTAIN, code this option and the FIND option.

MODify

Calls the database procedure in response to a MODIFY function.

STOre

Calls the database procedure in response to a STORE function.

estimated OCCurrences are record-count

Specifies an estimated number of record occurrences. CA IDMS/DB uses this value to optimize SQL access to the record. Record-count is an integer in the range 0 to 2,147,483,647. The default is 0.

EXClude ALL CALls

Negates any previously assigned CALL clauses for the record.

ALL COMment TYPes

Displays and punches all information from the categories COMMENTS, CULPRIT HEADERS, and OLQ HEADERS.

AREas

Displays and punches the WITHIN AREA clause of the RECORD statement.

COMments

When ELEMENTS is also specified, displays and punches all comments associated with the record elements through the COMMENTS clause of the ELEMENT substatement.

CULprit headers

When ELEMENTS is also specified, displays and punches all CULPRIT HEADERS specified for the record elements.

DETails

Displays and punches the following information about the record:

ELements

Displays and punches all elements associated with the record.

OLQ headers

When ELEMENTS is also specified, displays and punches all OLQ HEADERS specified for the record elements.

SHAred structures

When DETAILS is also specified, displays and punches the SHARE STRUCTURE clause of the RECORD statement as syntax and the record's elements as comments; WITHOUT SHARED STRUCTURES displays the USES STRUCTURE clause as comments and the record's elements as syntax.

SYNonyms

Displays and punches the record's synonyms; when ELEMENTS is also specified, the record and element synonyms.

ALL

Displays and punches the entire record description

NONe

Displays and punches only the record name