Kbase 13175: Indices Missing During Schemaholder Dump/Create -- Check DDS
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  02/04/2001 |
|
SUMMARY:
This Knowledge Base describes two examples of Data Definition Specification (DDS) for logical files which are unacceptable to Progress/400. NOTE: All the "unacceptable" ways to code your DDS apply to Progress/400 ONLY. These DDS will compile on the AS/400 with no problem.
EXPLANATION:
When used, these DDS methods will not create secondary indices.
Secondary indices are represented by logical files on the AS/400. The
Progress versions used for this test are 6.2M07, 6.2M09 and 6.2M10. Behavior differences among these 3 versions will be specifically noted in the examples below.
-- Example I
DDS for physical file, customer:
A R custfmt
A cnum 8P 0
A cname 30A
A cadr 30A
A cadr2 30A
A ccity 10A
A camtdue 15S 2
A k cnum
If the logical file, cust_name:
A UNIQUE
A R custfmt01 PFILE(Customer)
A cnum
A cname
A ccity
A cadr
A cadr2
A K cname
A K cnum
There are three reasons PROUPDPXD will fail to add cust_name as index for the customer file:
1) The format name for the logical file must be same as the physical
file. Notice it was specified as "custfmt" in customer and then as
"custfmt01" in cust_name.
*** This is true only for version 6.2M07 and before.
2) There is a difference in the number of fields in these 2 files.
Cust_num does not have "camtdue" field.
***This is true only for version 6.2M09 and before.
NOTE: If this is not a "truncated" format then the index will
not be added regardless of version used. Truncation of format
refers to the absence of the last field OR a number of contiguous
last fields from a file. Progress/400 uses 1 file format,
that is physical file format, when accessing any file.
Therefore all logical files are required to have the same format
unless it is a format truncation in version 6.2M10 where
IGNORE INTEGRITY CHECK *YES is specified during PROUPDPXD.
3) The order of the fields are different. Notice in cust_name "ccity"
comes first before "cadr" and "cadr2".
-- Example II
DDS for physical file customer:
A REF(fieldref)
A R custfmt R
A cnum R
A cname R
A cadr R
A cadr2 R
A ccity R
A camtdue R
DDS for logical file cust_name:
A UNIQUE
A R custfmt PFILE(customer)
A cnum R
A cname R
A cadr R
A cadr2 R
A ccity R
A camtdue R
In this example the logical file will not be added as an index because of the "R" after the fields.
***This is true only for version 6.2M07 and before.
References to Written Documentation:
IBM DDS Reference - for detailed explanation on creating DDS
Progress Knowledge Base Solution 13177, "Data Description Specifications DDS Supported by Progress"