Numeric Super

When a superdescriptor contains all numeric fields, I’ve always seen it defined as a binary field ( eg, 3 fields, N10, N4 & N10 = B24 super). Is this mandatory, best practice or shop standards?

If the super in the example above were defined as N24 instead of B24, would it explain why:

READ file BY super

returns no records while

READ file BY super = #STARTING-VALUE

returns records?

Yes, the binary format is mandatory for superdescriptors comprised entirely of numeric components. Adabas creates a binary descriptor.

I can’t explain this behavior. Use TEST DBLOG to compare the contents of the Value Buffer for each READ.

If Natural is initializing the “super” to spaces (x’4040 …') this may be beyond any data in your file.

There’s no way of knowinf for sure, but that may have been what was happening. The super is now defined properly and everything is working as expected.

The rules are defined here:

http://techcommunity.softwareag.com/ecosystem/documentation/adabas/ada814mfr/adamf/util/flddefs.htm#fndef_supde

  • The superdescriptor format is B (binary) if no element of the superdescriptor is derived from an A (alphanumeric) or W (wide-character) parent field;
    if any element of the superdescriptor is derived from an A or W parent field, the format of the superdescriptor reflects the last occurring A or W element;
    for example, if the last occurring A or W element is W, the format of the superdescriptor is W.