Informix Error -4029: The type of expression on which member "name" is selected is not an object reference or record.
Cause and resolution
The type of expression on which member "name" is selected is not an object reference or record.
This statement refers to .name as if name were a member of a record or of a class. However, the expression that precedes the dot is neither the name of a record nor a reference to an object. If you think name is a member of a record, check the definition of the record, and make sure that its name is correctly spelled immediately preceding the dot. If you think name is a class member, make sure that the dot is preceded by an expression that yields a reference to an object of the right class.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4029 fires when .name is used as if it selected a member of a record or class, but the
expression before the dot isn't a record or an object reference — per the official guidance,
this is neither a correctly-spelled record field access nor a valid object-member access.
- The expression before the dot doesn't evaluate to a record or object reference, per the official guidance — the direct, only cause.
Solutions / Resolution
- If
nameis meant to be a record member, check the record's definition and confirm the preceding name is correctly spelled, per the official guidance. - If
nameis meant to be a class member, confirm the dot is preceded by an expression yielding a reference to an object of the right class, per the official guidance.
Examples
Selecting a member on a non-record, non-object expression
DEFINE qty INTEGER
LET x = qty.total
-- -4029: qty is a plain INTEGER, not a record or object
Corrected
DEFINE rec RECORD
total DECIMAL
END RECORD
LET x = rec.total
Diagnostic Checks
- Check the type of the expression immediately before the dot, and confirm it's actually a record or object reference.
Related Errors / Related Topics
- -4007 — "Record member "name" is undefined." A related member-access error, about a genuinely missing field on a valid record rather than the preceding expression not being a record/object at all.
- -4020 — "Function "member" is not a member of class "class"." A related member-access error, about a missing function member on a valid object rather than the preceding expression not being an object at all.
The expression before the dot isn't a record or object reference — check its spelling/type.