Informix Error -4161
-4161 This variable has not been defined as a record or object.
The variable indicated has been used with an asterisk or with the THRU or THROUGH keywords. However, it has not been defined as a record or an object. Check the spelling of the name. If it is as you intended, locate the definition of the variable, and find out why it was not defined as expected. Only NewEra returns this error.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4161 fires when a variable used with .* (asterisk expansion) or THRU/THROUGH isn't
actually defined as a record or object — per the official guidance, only NewEra returns this
error.
- A variable used with
.*/THRU/THROUGHthat isn't declared as a record or object, per the official guidance — the direct, only cause.
Solutions / Resolution
- Check the spelling of the name, per the official guidance.
- Locate the variable's definition and find out why it wasn't defined as expected, per the official guidance.
Examples
Expanding a plain variable
DEFINE qty INTEGER
DISPLAY qty.*
-- -4161: qty is not defined as a record or object
Corrected
DEFINE rec RECORD
qty INTEGER,
price DECIMAL
END RECORD
DISPLAY rec.*
Diagnostic Checks
- Check the declaration of any variable used with
.*/THRU/THROUGH, and confirm it's genuinely defined as a record or object.
Related Errors / Related Topics
- -4098 — "Type of expression that is expanded must be class or record." A closely
related error covering the same condition for
.*/THRUexpansion.
A variable used with .*/THRU/THROUGH isn't defined as a record or object — check its
declaration.