Informix Error -4029
-4029 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.