Restriction: This topic applies only when a Database Connectors license has been installed via the
Micro Focus License Management System, and applies to Windows platforms only.
You can compile the preceding program with just the
to generate the XFD. The compiled program builds the database table shown at the end of this section.
The database table builds as follows.
- First, any fields listed in the KEY IS clause of the SELECT are included (p-o-number in this example).
- The compiler then takes the largest record (p-o-detail-record) and lists the fields that make up that record.
The rest of this section shows the specific fields that are placed into the table.
All data from the COBOL program is stored in and retrieved from the database, even though not all fields are explicitly named in the database table. For a description of how this works, see XFDs.
The underlined fields are the only ones entered into the table:
fd p-o-file.
01 p-o-record.
03 p-o-division-number pic 9(3).
03 p-o-record-type pic x.
88 header-record value "h".
88 detail-record value "d".
03 p-o-number pic 9(10).
03 p-o-number-detail redefines p-o-number.
05 picking-ticket-number pic 9(6).
05 shipping-region pic 9(2).
05 p-o-customer-type pic 9(2).
05 p-o-customer-breakdown redefines
p-o-customer-type.
07 customer-category pic x.
88 p-o-customer-retail value "r".
88 p-o-customer-whlsale value "w".
07 customer-pay-format pic x.
88 is-net-30 value "3".
88 is-net-10 value "1".
03 p-o-date.
05 p-o-yy pic 9(2).
05 p-o-mm pic 9(2).
05 p-o-dd pic 9(2).
01 p-o-detail-record.
03 p-o-dept-number pic 9(3).
03 p-o-record-type pic x.
03 detail-p-o-number pic 9(10).
03 p-o-shipping-info.
05 p-o-quantity-to-ship pic s9(4) comp.
05 p-o-total-quantity pic s9(4) comp.
03 p-o-notes.
05 notes-line occurs 3 times pic x(40).
As the table is built:
- Any hyphens in the COBOL field names are converted to underscores
- Field names longer than 18 characters generate a warning if the first 18 characters are not unique. Some databases limit you to 18 total characters. Use the least number of characters for optimal portability and end-user efficiency. You can use the NAME XFD directive for this to avoid changing your procedure division code.
- Fields in OCCURS clauses get special handling, because the run time system must assign a unique name to each data item. Sequential index numbers are appended to the item named in the OCCURS. Limits vary between databases. See to the documentation for your RDBMS. In some instances, the name may be truncated by the Connector if necessary before the index is added.
Note: detail-p-o-number is not part of the table because the key overlays this area.
The following table is built in the database:
Column Name
|
Type
|
p_o_number
|
number(10)*
|
p_o_dept_number
|
number(3)*
|
p_o_record_type
|
char(1)
|
p_o_quantity_to_ship
|
number(4)*
|
p_o_total_quantity
|
number(4)*
|
notes_line_1
|
char(40)
|
notes_line_2
|
char(40)
|
notes_line_3
|
char(40)
|
* The actual database data type may vary.
See the Limits and Ranges topic for your specific RDBMS for a list of supported data types and their COBOL equivalents.