The LF command reads the characteristics of all fields in a file.
We recommend that you set unused ACB and ACBX fields to binary zeros before the direct call is initiated.
This document covers the following topics:
The LF command is used to read the field definition information for a file. This command is used primarily by Adabas subsystems; it is normally not used by an application program.
The user specifies the file number for which the field definitions are to be returned.
Adabas provides the field information in the record buffer in one of four formats, according to the setting of the Command Option 2 field. The timestamp when the field definitions were created or last updated is returned in the record buffer with the Command Option 2 field is set to X or F. If a file is stored with ADAORD or restored with ADASAV, the timestamp of the store or restore is not stored; the original timestamp of the file when it was reordered or saved is kept.
This section describes ACB interface direct calls for the LF command.
It covers the following topics:
| Field | Position | Format | Before Adabas Call | After Adabas Call |
|---|---|---|---|---|
| 1-2 | -- | -- | -- | |
| Command Code | 3-4 | alphanumeric | F | U |
| 5-8 | -- | -- | -- | |
| File Number | 9-10 | binary | F | U |
| Response Code | 11-12 | binary | -- | A |
| 13-26 | -- | -- | -- | |
| Record Buffer Length | 27-28 | binary | F | U |
| 29-35 | -- | -- | -- | |
| Command Option 2 | 36 | alphanumeric | F | U |
| 37-48 | -- | -- | -- | |
| Additions 3 | 49-56 | alphanumeric | F | A |
| 57-72 | -- | -- | -- | |
| Command Time | 73-76 | binary | -- | A |
| User Area | 77-80 | -- | -- | U |
| Buffer | Before Adabas Call | After Adabas Call |
|---|---|---|
| Format | * | -- |
| Record | -- | A |
where:
| F | Supplied by user before Adabas call |
| A | Supplied by Adabas |
| U | Unchanged after Adabas call |
| * | Not used but must be included in parameter list of call statement |
| -- | Not used |
We recommend that you set unused ACB fields to binary zeros before the direct call is initiated.
- Command Code (ACBCMD)
LF
- File Number (ACBFNR)
The number of the file for which the field definition information is to be returned.
Note
When using two-byte file numbers and database IDs, a X'30' must be coded in the first byte of the control block.- Response Code (ACBRSP)
Adabas returns the response code for the command in this field. Response code 0 (ADARSP000) indicates that the command was executed successfully. If the LF command returns a nonzero response code, the rightmost two bytes of Adabas control block bytes 45-48 (Additions 2 field) may contain a subcode defining the exact response code meaning. Response codes and their subcodes are defined in the Adabas Messages and Codes Manual documentation.
- Record Buffer Length (ACBRBL)
The record buffer length (in bytes). The length specified must be large enough to contain all field definition information for the file, but not larger than the size of the record buffer area defined in the user program. If your FDT is larger than 32,767 bytes use an ACBX call (with its APLX/ADACBX interface) where larger buffers are supported.
- Command Option 2: Type of Information to Be Displayed (ACBCOP2)
The setting of the Command Option 2 field determines the format and type of field information to be returned in the record buffer.
Option Description F This option delivers the same information as the "X" option (below), including information on logically deleted fields and descriptors. Logically deleted fields will be returned with a specific indicator. All entries with logically deleted descriptors will be returned with a specific indicator.
I Returns all field information in Adabas internal format. S Returns all field information, including collation descriptor, subfield and superfield, subdescriptor, superdescriptor, hyperdescriptor, and phonetic descriptor information. However, this information may not be complete; in particular, new features introduced beginning with Adabas Version 8.2 are not included.
Note
Very large FDTs cannot be read with the ACB interface if the required space exceeds the record buffer size limit of 32 KB (minus 1 byte) length.X Returns extended field information, including collation descriptor, subfield, superfield, subdescriptor, superdescriptor, hyperdescriptor, and phonetic descriptor information with extended date and time formats. For logically deleted fields, no entry will be returned. For logically deleted descriptors on fields, subdescriptors, and superdescriptors, an entry will be returned with the descriptor options reset. For collation descriptors, hyperdescriptors, and phonetic descriptors, no entry will be returned.
Note
Very large FDTs cannot be read with the ACB interface if the required space exceeds the record buffer size limit of 32 KB (minus 1 byte) length.If this field is left blank or contains binary zero, the LF command returns field information excluding sub-/super-/hyper-/phonetic or collation descriptor information. This is the same format as provided in Adabas version 4.
- Additions 3: Password (ACBADD3)
This field is used to provide a security password. If the file to be used is not security-protected, this field should be set to blanks. If the file is security-protected, the user must provide a valid password.
If the accessed file is password-protected, Adabas replaces the password with blanks during command processing to protect password integrity.
The field definition information for file 1 is to be read.
| Command Code | LF | |
|---|---|---|
| File Number | 1 | field definitions requested for file 1 |
| Record Buffer Length | 100 | |
| Command Option 2 | S | information for all types of descriptors and sub/superfields is to be returned |
| Additions 3 | bbbbbbbb (blanks) | file is not security-protected |
This section describes ACBX interface direct calls for the LF command.
It covers the following topics:
| Field | Position | Format | Before Adabas Call | After Adabas Call |
|---|---|---|---|---|
| 1-2 | --- | --- | --- | |
| Version Indicator | 3-4 | binary | F | U |
| 5-6 | --- | --- | --- | |
| Command Code | 7-8 | alphanumeric | F | U |
| 9-10 | --- | --- | --- | |
| Response Code | 11-12 | binary | --- | A |
| 13-16 | --- | --- | --- | |
| Database ID | 17-20 | numeric | F | U |
| File Number | 21-24 | numeric | F | U |
| 25-49 | --- | --- | --- | |
| Command Option 2 | 50 | alphanumeric | F | U |
| 51-68 | --- | --- | --- | |
| Additions 3 | 69-76 | alphanumeric/ binary | F | A |
| 77-114 | --- | --- | --- | |
| Error Subcode | 115-116 | binary | --- | A |
| 117-128 | --- | --- | --- | |
| Compressed Record Length | 129-136 | binary | --- | A |
| Decompressed Record Length | 137-144 | binary | --- | A |
| Command Time | 145-152 | binary | --- | A |
| User Area | 153-168 | not applicable | --- | U |
| --- | 169-193 | do not touch | --- | --- |
| ABD and Buffer | Before Adabas Call | After Adabas Call |
|---|---|---|
| Format | * | -- |
| Record | -- | A |
where:
| F | Supplied by user before Adabas call |
| A | Supplied by Adabas |
| U | Unchanged after Adabas call |
| * | Not used but should be included in Adabas call or one will be automatically generated. |
| -- | Not used |
We recommend that you set unused ACBX fields to binary zeros before the direct call is initiated.
- Version Indicator (ACBXVER)
F2
- Command Code (ACBXCMD)
LF
- Response Code (ACBXRSP)
Adabas returns the response code for the command in this field. Response code 0 (ADARSP000) indicates that the command was executed successfully. Non-zero response codes, which can also have accompanying subcodes returned in the Error Subcode (ACBXERRC) field, are described in the Adabas Messages and Codes Manual documentation.
- Database ID (ACBXDBID)
Use this field to specify the database ID. The Adabas call will be directed to this database.
This field is a four-byte binary field, but at this time only two-byte database IDs are supported. Therefore, the database ID should be specified in the low-order part (rightmost bytes) of the field, with leading binary zeros.
If this field is set to binary zeros, the Adabas API uses either the database ID from the ADARUN cards provided in DDDDCARD input data or the default database ID value provided in the LNKGBLS module linked with or loaded by the link routine.
- File Number (ACBXFNR)
Use this field to specify the number of the file for which the field definition information is to be returned.
This field is a four-byte binary field, but the file number should be specified in the low-order part (rightmost bytes) of the field, with leading binary zeros.
- Command Option 2: Type of Information to Be Displayed (ACBXCOP2)
The setting of the Command Option 2 field determines the format and type of field information to be returned in the record buffer.
Option Description F his option delivers the same information as the "X" option (below), including information on logically deleted fields and descriptors. Logically deleted fields will be returned with a specific indicator. All entries with logically deleted descriptors will be returned with a specific indicator.
I Returns all field information in Adabas internal format. S Returns all field information, including collation descriptor, subfield and superfield, subdescriptor, superdescriptor, hyperdescriptor, and phonetic descriptor information. Note
Beginning with Adabas 8.2, new field options (e.g. date-time and system fields) are not returned when Command Option 2 is set to "S", due to the fixed length of the field information output element. We recommend you set Command Option 2 to "X" instead.X Returns extended field information, including collation descriptor, subfield, superfield, subdescriptor, superdescriptor, hyperdescriptor, and phonetic descriptor information with extended date and time formats. For logically deleted fields, no entry will be returned. For logically deleted descriptors on fields, subdescriptors, and superdescriptors, an entry will be returned without descriptor options set. For collation descriptors, hyperdescriptors, and phonetic descriptors, no entry will be returned.
If this field is left blank or contains binary zero, the LF command returns field information excluding sub-/super-/hyper-/phonetic or collation descriptor information. This is the same format as provided in Adabas version 4.
- Additions 3: Password (ACBXADD3)
This field is used to provide a security password. If the file to be used is not security-protected, this field should be set to blanks. If the file is security-protected, the user must provide a valid password.
If the accessed file is password-protected, Adabas replaces the password with blanks during command processing to protect password integrity.
- Error Subcode (ACBXERRC)
If the command returns a nonzero response code, this field contains a subcode defining the exact response code meaning. Response codes and their subcodes are defined in the Adabas Messages and Codes Manual documentation.
- Compressed Record Length (ACBXLCMP)
This field returns the compressed record length when a record was read or written. This is the length of the compressed data processed by the successful Adabas call. If the logical data storage record spans multiple physical data records, the combined length of all associated physical records may not be known. In this case, Adabas returns high values in the low-order word of this field.
- Decompressed Record Length (ACBXLDEC)
This field returns the decompressed record length. This is the length of the decompressed data processed by the successful call. If multiple record buffer segments are specified, this reflects the total length across all buffer segments.
A format buffer is not used by the LF command, but should be included in the Adabas call.
All field definition information is returned in the record buffer, in one of four formats, depending on the setting of the Command Option 2 field.
This section covers the following topics:
A format buffer is not used by the LF command, but should be included in the Adabas call. If this is an ACB interface direct call and a format buffer is not specified, a processing error will occur; ACB interface direct calls expect buffers to be specified in a set sequence. If this is an ACBX interface direct call and a format buffer is not specified, one will be automatically generated.
If the Command Option 2 field is set to "S", all field information, including collation descriptor, subdescriptor, superdescriptor, hyperdescriptor, and phonetic descriptor and sub-/superfield information is returned in the following format:
Note
If you are using Adabas 8, and an LF command with Command Option 2 set to
"S" is run, and large object (LB) fields are encountered,
the LB field description is returned in an F-type FDT field definition. Bit 6 in the
second format byte (at offset 7 or byte 8 in the element) is set to indicate that the
LB (large object) option is set for the field. In addition, bit 1 of the second format
byte indicates whether the LB field is defined with the NB (no blank compression)
option.
| Bytes | Usage |
|---|---|
| 1-2 | total length of information |
| 3-4 | number of fields in the FDT (including SDTs, as described below) |
| 5-N | field entries; each entry is 8 bytes, maximum number of entries is 3214 |
| (N+1) - M | special descriptor table (SDT) including
|
The following sections provide details of this format:
The syntax of FDT field entry is:
'F' field-name option level length format
The following table describes this syntax:
| Notation | Bytes | Usage |
|---|---|---|
| F | 1 | "F" indicates an FDT field entry |
| field-name | 2-3 | field name |
| option | 4 | definition options:
|
| level | 5 | level number (in binary) |
| length | 6 | length |
| format | 7 | type of data:
|
| 8 | options (continued):
|
Note
A field within a periodic group has the following characteristics: - an option
field (byte 4) with bit 5=1; and - a level field (byte 5) with level number
greater than 1. The periodic group field itself always has option bit 5=1
and a level number of 1.
x SDT-definition
where x is one of the following:
| Value of x | Description |
|---|---|
| C | Collation descriptor; see the section Collation Descriptor Entries |
| H | Hyperdescriptor; see the section Hyperdescriptor Entries |
| P | Phonetic descriptor; see the section Phonetic Descriptor Entries |
| S | Subfield or subdescriptor;, see the section Subfield/Subdescriptor Entries |
| T | Superfield or superdescriptor; see the sectionSuperdescriptor/Superfield Entries |
| X'00' | Element continuation |
'C' name option exit length p-field-name
| Notation | Bytes | Usage | |
|---|---|---|---|
| 'C' | 1 | 'C' indicates collation descriptor | |
| name | 2-3 | collation descriptor name | |
| option | 4 | definition options: | |
| bit 1=1 | descriptor | ||
| bit 2=1 | exclude PE occurrence number from UQ | ||
| bit 3=1 | multiple-value format | ||
| bit 4=1 | null-value suppression | ||
| bit 5=1 | periodic-group field | ||
| bits 6-7 | (unused) | ||
| bit 8=1 | unique descriptor | ||
| exit | 5 | collation exit number (binary, values 1-8 permitted) | |
| length | 6 | length | |
| p-field-name | 7-8 | parent-field name | |
'H' name option exit length format X'00' X'00' X'00' p-fieldname-list ...
| Notation | Bytes | Usage | |
|---|---|---|---|
| 'H' | 1 | 'H' indicates a hyperdescriptor definition | |
| name | 2-3 | hyperdescriptor name | |
| option | 4 | definition options: | |
| bit 1 | (unused) | ||
| bit 2=1 | fixed length | ||
| bit 3=1 | multiple value | ||
| bit 4=1 | null-value suppression | ||
| bit 5=1 | periodic group | ||
| bit 6-7 | (unused) | ||
| bit 8=1 | unique descriptor | ||
| level | 5 | hyperdescriptor exit number (binary; values 1-31 permitted) | |
| length | 6 | length | |
| format | 7 | format | |
| A | alphanumeric | ||
| B | binary | ||
| F | fixed point | ||
| G | floating point | ||
| P | packed decimal | ||
| U | unpacked decimal | ||
| X'00' | 8 | options (continued) | |
| bits 1-3 | (unused) | ||
| bit 4=1 | XI (exclude PE occurrence number from UQ) option | ||
| bits 5-8 | (unused) | ||
A hyperdescriptor parent-field name list is an extension of a hyperdescriptor definition. It has the following format for all eight-byte groups after the first:
| Notation | Bytes | Explanation |
|---|---|---|
| X'00' | 1 | X'00' indicates continuation |
| X'00' | 2 | (unused) |
| p-fieldname-list... | 3-8 | parent-field name list: each name is two bytes; six bytes total (that is, three names. If fewer than three names are provided, the additional bytes are filled with X'00'). |
'P' desc-name option p-field-name X'0000'
| Notation | Bytes | Explanation |
|---|---|---|
| 'P' | 1 | 'P' indicates phonetic descriptor |
| desc-name | 2-3 | phonetic descriptor name |
| option | 4 | (unused) |
| p-field-name | 5-6 | parent-field name |
| X'0000' | 7-8 | (unused; set to nulls) |
'S' s-name option p-field-name from to
| Notation | Bytes | Usage | |
|---|---|---|---|
| 'S' | 1 | 'S' indicates subdescriptor/subfield | |
| s-name | 2-3 | subdescriptor or subfield name | |
| option | 4 | definition options: | |
| bit 1=1 | descriptor | ||
| bit 2=1 | exclude PE occurrence number from UQ | ||
| bit 3=1 | multiple-value format | ||
| bit 4=1 | null-value suppression | ||
| bit 5=1 | periodic-group field | ||
| bit 6-7 | (unused) | ||
| bit 8=1 | unique descriptor | ||
| p-field-name | 5-6 | parent-field name | |
| from | 7 | starting (inclusive) byte | |
| to | 8 | ending (inclusive) byte | |
'T' sup-name option p-field-name from to X'00' X'000000'p-field-name from to
| Notation | Bytes | Usage | |
|---|---|---|---|
| 'T' | 1 | 'T' indicates superdescriptor/superfield | |
| sup-name | 2-3 | superdescriptor name | |
| option | 4 | definition options: | |
| bit 1=1 | descriptor | ||
| bit 2=1 | exclude PE occurrence number from UQ | ||
| bit 3=1 | multiple-value format | ||
| bit 4=1 | null-value suppression | ||
| bit 5=1 | periodic-group field | ||
| bit 6-7 | (unused) | ||
| bit 8=1 | unique descriptor | ||
| p-field-name | 5-6 | parent-field name | |
| from | 7 | starting (inclusive) byte | |
| to | 8 | ending (inclusive) byte | |
Extension of a superdescriptor or superfield definition has the following format on all eight-byte groups after the first:
| Notation | Bytes | Explanation |
|---|---|---|
| X'00' | 1 | indicates continuation |
| X'000000' | 2-4 | (unused) |
| p-field-name | 5-6 | parent-field name |
| from | 7 | starting (inclusive) byte |
| to | 8 | ending (inclusive) byte |
If the Command Option 2 field is set to "F" or "X", extended field information, including collation descriptor, subdescriptor, superdescriptor, hyperdescriptor, and phonetic descriptor and sub-/superfield information is returned in the following format:
The "F" option delivers the same information as the "X" option, including information on logically deleted fields and descriptors. Logically deleted fields will be returned with a specific indicator; entries with logically deleted descriptors will be returned with the specific indicator.
| Bytes | Usage |
|---|---|
| 1-4 | Total length of information |
| 5 | Structure level |
| 6 | Flag byte for future use |
| 7-8 | Number of field definition entries in the FDT (including SDTs, as described below). The maximum number of entries is 3214. |
| 9-16 | UNIX timestamp (the number of microseconds since 1970) |
| 17-N | FDT Field entries: each entry is 16 bytes long. Future versions of Adabas may introduce additional, larger entries. Therefore, unknown entry types should not be considered in error. |
| (N+1) - M | Special descriptor table (SDT) entries including:
|
| (M+1) - L | Referential integrity constraint table (RIT). This table is not applicable to mainframe systems; it is used in Adabas open systems environments only. |
The following sections provide format details of the field and descriptor entries included in the record buffer:
These entries may be larger with each Adabas version. Therefore, you should always use the entry field length (in byte 2) to skip to the next entry. The length of each entry is aligned to four bytes so you can access 4-byte integer values without alignment problems.
The following table describes the FDT field entry format when Command Option 2 is set to "F" or "X".
| Bytes | Usage |
|---|---|
| 1 | "F" indicates an FDT field definition |
| 2 | Total length of FDT field entry |
| 3-4 | Field name |
| 5 | Field format:
|
| 6 | Definition options:
|
| 7 | Additional options:
|
| 8 | Level number (in binary) |
| 9 | Date/time edit masks:
|
| 10 | For the datetime/edit masks, the following additional
information is supplied:
bit 0x01: TZ (timezone) option For the SY option, the following additional information is supplied: bit 0x40: CR option in use |
| 11 | SY function options or the user exit number:
|
| 12 | Additional field status information*:
*: This information will only be given when Command Option 2 is set to "F"; other descriptor-related flags also remain set. When Command Option 2 is set to "X", the field entry for the logically deleted field will be suppressed entirely; descriptor-related flags for logically deleted descriptors will be reset. |
| 13-16 | Field length |
Note
A field within a periodic group has the following characteristics: - an option
field (byte 6) with bit 5=1; and - a level field (byte 8) with level number
greater than 1. The periodic group field itself always has option bit 5=1
and a level number of 1.
x SDT-definition
where x is one of the following:
| Value of x | Description |
|---|---|
| C | Collation descriptor entry; see the section Collation Descriptor Entries |
| H | Hyperdescriptor entry; see the section Hyperdescriptor Entries |
| P | Phonetic descriptor entry; see the section Phonetic Descriptor Entries |
| S | Subfield or subdescriptor entry; see the section Subfield/Subdescriptor Entries |
| T | Superfield or superdescriptor entry; see the sectionSuperdescriptor/Superfield Entries |
| X'00' | Element continuation |
The following table describes the format of collation descriptor entries:
| Bytes | Usage |
|---|---|
| 1 | "C" indicates a collation descriptor |
| 2 | Total length of collation descriptor entry. |
| 3-4 | Collation descriptor name |
| 5 | Parent field format (only "W" is possible in Adabas open systems environments; both "A" and "W" are possible in Adabas mainframe environments). |
| 6 | Definition options:
|
| 7-8 | Standard length |
| 9-10 | Parent field name |
| 11-12 | Maximum internal length |
| 13 | Additional options:
*: This information will only be given when Command Option 2 is set to "F"; descriptor-related flags also remain set. When Command Option 2 is set to "X", the entry for the logically deleted descriptor will be suppressed entirely. |
| 14 | String length of the collation attribute string (length byte and termination null character not included) |
| 15-(14+byte14) | Collation attribute string as null terminated string.
For example: "'de',PRIMARY"
If the collation is defined via the collation exit, the exit number as a
null terminated string is placed here. For example:
|
Notes:
The following table describes the format of hyperdescriptor entries:
| Bytes | Usage |
|---|---|
| 1 | "H" indicates a hyperdescriptor definition |
| 2 | Total length of the hyperdescriptor entry |
| 3-4 | Hyperdescriptor name |
| 5 | Field format |
| 6 | Definition options:
|
| 7-8 | Hyperdescriptor length |
| 9 | Exit number |
| 10 | Additional field status information:*
bit 0x02: Descriptor logically deleted (mainframe only) *: This information will only be given when Command Option 2 is set to "F"; descriptor-related flags remain set. When Command Option 2 is set to "X", the field entry for the logically deleted field will be suppressed entirely. |
| 11 | Unused |
| 12 | Number of parent fields |
| 13-(12+2* byte-12) | Parent field names |
Note
The hyperdescriptor entry length is aligned to four bytes.
The following table describes the format of phonetic descriptor entries:
| Bytes | Usage |
|---|---|
| 1 | "P " identifies a phonetic descriptor |
| 2 | Total length of phonetic descriptor entry |
| 3-4 | Phonetic descriptor name |
| 5 | Field format (currently only "A"-format supported) |
| 6 | Additional field status information:*
*: This information will only be given when Command Option 2 is set to "F". When Command Option 2 is set to "X", the field entry for the logically deleted field will be suppressed entirely. |
| 7-8 | Phonetic descriptor length |
| 9-10 | unused |
| 11-12 | Phonetic descriptor parent field name |
The following table describes the format of subfield or subdescriptor entries:
| Bytes | Usage |
|---|---|
| 1 | "S" identifies a subdescriptor or subfield |
| 2 | Total length of the subfield or subdescriptor entry. |
| 3-4 | Subdescriptor or subfield name |
| 5 | Field format |
| 6 | Definition options:
|
| 7-8 | Descriptor length |
| 9 |
Additional field status information:
*
bit 0x02: Descriptor logically deleted (mainframe systems only) *: This information will only be given when Command Option 2 is set to "F"; descriptor-related flags also remain set. When Command Option 2 is set to "X", the entry for the logically deleted descriptor will appear with all descriptor related flags reset. |
| 10 | Number of parent fields ("1" for every subfield) |
| 11-(10+ 6 * byte10) | Parent field entries. For each parent field, the
following format is used:
|
Note
The subdescriptor entry length is aligned to four bytes.
The following table describes the format of superfield or superdescriptor entries:
| Bytes | Usage |
|---|---|
| 1 | "T" identifies a superdescriptor or superfield |
| 2 | Total length of the superfield or superdescriptor entry. |
| 3-4 | Superdescriptor or superfield name |
| 5 | Field format |
| 6 | Definition options:
|
| 7-8 | Descriptor length |
| 9 |
Additional field status information:
*
bit 0x02: Descriptor logically deleted (mainframe systems only) *: This information will only be given when Command Option 2 is set to "F"; descriptor-related flags also remain set. When Command Option 2 is set to "X", the entry for the logically deleted descriptor will appear with all descriptor related flags reset. |
| 10 | Number of parent fields ("1" for every superdescriptor) |
| 11-(10+ 6 * byte10) | Parent field entries. For each parent field, the
following format is used:
|
If "I" is set for Command Option 2, field information is returned in Adabas internal format:
| Bytes | Contents | |
|---|---|---|
| 1 | X'80' | |
| 2 | B'00000xyz'
where xyz are ciphering bits: 1=yes; 0=no |
|
| x | user | |
| y | new | |
| z | old | |
| 3-4 | binary zeros | |
| 5-8 | total inclusive length of FDT, including field definition table (FDT proper), FDT index, and special descriptor table (SDT) [ = p – 4] | |
| 9-12 | Inclusive length of field definition table (FDT proper) [ = n – 8] | |
| 13-n | FDT field descriptor elements (20 bytes per element; see the following description) | |
| n+1 to n+4 | Inclusive length of FDT index [ = m – n] | |
| n+5 to m | FDT index | |
| m+1 to m+4 | Inclusive length of special descriptor table (SDT) [ = p – m] | |
| m+5 to p | Special descriptor table (SDT) | |
The format of each FDT field descriptor elements is described in the following table:
| Offset | Contents |
|---|---|
| 0 | field level |
| 1 - 2 | field name |
| 3 | special field options |
| 4 - 6 | reserved |
| 7 | default field length |
| 8 | field format |
| 9 | descriptor definition options |
| 10 | special descriptor parent options |
| 11 | periodic group count field |
| 12-13 | FDT element chain pointer |
| 14 | field security levels |
| 15 - 19 | reserved |
The meaning of FDT elements is described in the Adabas architecture training information.
Note
Command option 2 may be set to values other than "I" or
"S" to support older programs; these values do not
support newer features. Software AG recommends "I" or
"S" for new programs.
If the Command Option 2 field contains neither "I" nor "S", the field information returned excludes collation descriptor and sub-/super-/hyper-/phonetic descriptor information. The information is provided in the same format as provided in Adabas version 4:
n field-def
where:
| n | is the number of fields in the file. The number is provided as a four-byte binary number in the first four bytes of the record buffer. |
| field-def | is the field definition information for each field within the file. The information for each field is provided in six bytes according to the following format: |
| Bytes | Usage | |
|---|---|---|
| 1 | level number (binary) | |
| 2 - 3 | name (alphanumeric) | |
| 4 | standard length (binary) | |
| 5 | standard format (alphanumeric): | |
| A | alphanumeric | |
| B | binary | |
| F | fixed point | |
| G | floating point | |
| P | packed decimal | |
| U | unpacked decimal | |
| W | wide-character | |
| 6 | definition options: | |
| bit1=1 | descriptor | |
| bit 2=1 | fixed storage | |
| bit 3=1 | multiple-value field | |
| bit 4=1 | null-value suppression | |
| bit 5=1 | periodic group field | |
| bit 6=1 | phonetic source field | |
| bit 7=1 | sub-/superdescriptor source field | |
| bit 8=1 | unique descriptor | |
The information for the next field immediately follows the information for the preceding field with no intervening spaces.