Form DI Command

PURPOSE:  The FORM command causes a DI to be built or rebuilt.

Syntax

FORM DI name [IN DBL dbl_name] [CHECK]

The FORM DI command is a unique part of the data definition language.  Once a Data Index (DI) definition has been saved, this command can be used to do the actual indexing of Data Set (DS) records if automatic indexing is not desired.

FORM DI

causes all domains of the named DI to be formed or reformed.

name

specifies the name of a DI in the current Data Base Library (DBL).

[IN DBL dbl_name]

is used to form a DI residing in a DBL other than the current one.

[CHECK]

checks each domain in the current DI.  Only those domains marked as obsolete are reformed, and any new domains are formed.

EXAMPLE

*FORM DI AUTHORS

NOTES:  After a DI has been defined, the domains themselves are formed, by default, the first time the DI is accessed by a command.  It is also possible to form the DI by using the FORM DI command.  The FORM command can also be used to reform the DI at any time.

It is advisable to form all DI’s used by auxiliary Data Sets (DS) before the Process Module (PM) is used.  ACCENT R does form all DI’s that are obsolete or unformed at run time, but the process is less efficient than a prior FORM or FORM CHECK command.  This is because the PM must load again after the FORM takes place.

ACCENT R automatically reforms a DI, when it is used, if any of the following conditions exist:

  1. DS has been changed externally to a DBL and the STATIC option was not specified when the DI was defined.

  2. DS has been changed without the specified index being declared with the USE DI command and the STATIC option was not specified when the DI was defined.

  3. DS has been used as an output set in one of the following commands: MERGE, SELECT, APPEND, SORT, COPY, or EXTRACT.

ACCENT R permits multiple DI’s to be defined to the same DS.  Each DI is treated independently by ACCENT R.  When a set is updated, all domains of the current DI are corrected, and the other DI’s are flagged.  When an attempt is made to use one of the flagged DI’s, it is automatically reformed by default, unless STATIC is in effect.

All domains of a declared DI are automatically updated by any command that adds or deletes records (except APPEND or MERGE).

SEE ALSO:  USE DI, ENABLE INDEX OVERRIDE, DEFINE DI