# Table Definitions

PxPlus Data Dictionary |

PxPlus data dictionary file definitions created in NOMADS are compatible with the PxPlus SQL ODBC Driver. Data Dictionary Maintenance is a menu-driven utility in NOMADS that allows you to define files by entering pertinent information for each element (variable name, type, length, delimiter, etc.). From this information, PxPlus builds and maintains the data dictionary for your given database and creates corresponding entries in:

| providex.ddf | Table definitions
| providex.dde | Column definitions

In addition, the data dictionary for each of your data source definitions is embedded in the corresponding physical database file. See PxPlus Data Dictionary.

The PxPlus SQL ODBC Driver reads the providex.ddf file to obtain a listing of tables/files from your data dictionary. As each data source defined in the providex.ddf file is accessed, the PxPlus SQL ODBC Driver reads its embedded data dictionary to determine the fields and the format of the data.

Any table defined in the providex.ddf file whose logical name begins with an * (asterisk) will not be made available to the user by the PxPlus SQL ODBC Driver.

The ability to define non-normalized data files (i.e. files with multi-format records) is allowed in Data Dictionary Maintenance; however, the PxPlus SQL ODBC Driver will only recognize and use the first record format. To define non-normalized files, use an INI Definition.

## Fields Used by the PxPlus SQL ODBC Driver

The PxPlus SQL ODBC Driver uses the following fields from the Data Dictionary Maintenance > Element Description dialog in NOMADS:

Field | Description
Name | Column name as displayed. Must be unique within the table. Maximum length is 30 characters.
Class | Optional field used to control the output type of the data. Maximum length is 30 characters. See Classes.
External Only | Enable this flag to identify that the field exists as part of external key only.
Type and Format Mask | Type and format mask elements combined. This describes both the output type (String or Number) and how the data will be formatted in the record. See Type-Format Mask Combinations for the complete list of element combinations.
Length | Precision, or maximum length, of the data field. The scale, or number of digits to the right of the decimal place, is optional. Example:
6 | Describes integer of 6 digits total.
6.2 | Describes numeric of 6 digits total, 2 are right of decimal point.
Maximum length is 6 digits total. Maximum precision is 999999. Maximum scale is 99.
Occurs | Dimensions of an array. If the value is a single number, such as 3, then it is considered to be a single element of an array rather than an entire array. If this field contains two values (colon separated), then the PxPlus SQL ODBC Driver will generate multiple column names (column name + underscore + numeric index) for the elements in the array. Example: If the field MyArray occurs 3 times (has 3 values), the PxPlus SQL ODBC Driver will generate column names, MyArray_1, MyArray_2, MyArray_3, to represent the elements in the array.

## Type-Format Mask Combinations

This table lists all of the Type and Format Mask element combinations used by the PxPlus SQL ODBC Driver. The equivalent of the element combination for the INI definition displays in the column on the right.

Type - Format Mask | Description | INI Equivalent
String - Delimited | (Default) String of variable length up to the size defined by Length. Field delimiter terminates field. | string, variable
String - Fixed | Trailing spaces are stripped during read. If the field is the last segment of an external key, then it will not be padded with spaces during insert/update. Non-external key fields are padded with spaces during insert/update. Field has no field delimiter. | string, fixed
String - Padded | Always padded with spaces during insert/update. Fields are not stripped of trailing spaces during read. Field has no field delimiter. | string, nostrip
String - Substring | Always padded with spaces during insert/update. Fields are not stripped of trailing spaces during read. Field has no field delimiter. | string, substring
String - Last Substring | Always padded with spaces during insert/update. Fields are not stripped of trailing spaces during read. Field delimiter terminates field. | string, padded
Number - Delimited | Number of variable length up to the size defined by Length. Field delimiter terminates field. | numeric, variable
Number - Fixed | Sub-stringed field. Field has an implied decimal point if scale is provided. Field has no field delimiter. | numeric, fixed
Number - Padded | Sub-stringed field. Field has an implied decimal point if scale is provided. Field has no field delimiter. | numeric, nostrip
Number - Substring | Sub-stringed field. Field has no field delimiter. | numeric, substring
Number - Last Substring | Sub-stringed field. Field delimiter terminates field. | numeric, padded
Number - Binary Numeric | Sub-stringed field. Field has no field delimiter. | numeric, binary
Number - Decimal | Sub-stringed field, which is number with an embedded decimal. Field has no field delimiter. | numeric, decimal
Number - Decimal Delimited | Sub-stringed field, which is number with an embedded decimal. Field delimiter terminates field. | numeric, delimited
Number - Sign Fixed Numeric | Sub-stringed field. Field has no field delimiter. | numeric, signed
Number - Unsigned Integer | Sub-stringed field. Field has no field delimiter. | uni