LOCAT Data Dictionary File
Field |
Description |
Type |
Comments |
FILE_ID |
File alias (key) |
C(16) |
|
FIELD_ID |
Field Name |
C(16) |
|
SEQ |
Field Sequence |
U(2) |
Logical field number within the record. |
TYPE |
Dictionary Type |
C(16) |
Either a BASE type (as identified below) or a reference to the TYPDEF file. |
|
|
|
C Character. |
|
|
|
N Numeric. |
|
|
|
I Signed Integer. |
|
|
|
U Unsigned Integer. |
|
|
|
D BCD. |
|
|
|
F IEEE Floating point. |
|
|
|
B Business Math. |
|
|
|
X Resident C Language float type, system dependent. |
|
|
|
Y Resident C Language double type, system specific. |
FLAG |
Flag Bits |
U(1) |
This is specified in the same format at the second byte from the PRO/5 FATTR() function: |
|
|
|
$80$ Variable length field. |
|
|
|
$40$ Field terminator is used. |
|
|
|
$04$ Swap adjacent 4-byte groups. |
|
|
|
$02$ Swap adjacent 2-byte groups. |
|
|
|
$01$ Swap adjacent bytes. |
TERM |
Field Terminator |
U(1) |
In a traditional PRO/5 environment, this is typically $0A$ (decimal 10) - the linefeed character. |
DIM |
Array Dimension |
U(2) |
This is the number of elements in a repeating (array) field, or 1 for a nonrepeating field. |
NUM |
Field Number |
U(2) |
Physical field number. This is based on the record layout and counts fields based only on $0A$ delimiters. Field #0 implies the entire record, ignoring delimiters. |
OFFSET |
Offset within field |
U(2) |
Offset within the physical field (offset is zero-based). |
LENGTH |
Field Length |
U(2) |
|
KNUM |
Index Name |
Field(s) |
0 |
INDEX00 |
FILE_ID+FIELD_ID |
1 |
FIELD |
FIELD_ID |
2 |
INDEX02 |
FILE_ID+SEQ |
3 |
INDEX03 |
FILE_ID+NUM+OFFSET+LENGTH |
4 |
TYPE |
TYPE_ID |
5 |
FILE |
FILE_ID |
FATTR() Correlation
The LOCAT file contains all data necessary for understanding the physical structure of a record. Most of the data in LOCAT may be directly related to fields in the string template FATTR() function, as follows:
Field |
FATTR() Function |
Description |
|
TYPE |
FATTR(1,1) |
This contains similar data, but is not in the same format. LOCAT stores TYPE information as a 16-character base type or TYPEDEF name, while FATTR() contains a binary number from $01$ to $09$ indicating the base type. The correlation between numbers and base types is: |
|
|
|
$01$ C |
Character (string) |
|
|
$02$ N |
Numeric |
|
|
$03$ I |
Integer (binary) |
|
|
$04$ U |
Unsigned Integer (binary) |
|
|
$05$ F |
IEEE floatingpoint |
|
|
$06$ D |
BCD (binary-coded decimal) |
|
|
$07$ B |
Business Math |
|
|
$08$ X |
Resident C language float type (system specific) |
|
|
$09$ Y |
Resident C language double type (system specific) |
FLAG |
FATTR(2,1) |
Flag bits. |
|
TERM |
FATTR(3,1) |
Field terminator (if used). |
|
DIM |
FATTR(4,2) |
Dimension of repeating field. |
|
NUM |
FATTR(6,2) |
Field number. |
|
OFFSET |
FATTR(8,2) |
Offset within the field. |
|
LENGTH |
FATTR(10,2) |
Field length. |