Informix Error -4384
-4384 The symbol name does not represent the element of any record.
The name shown is used where 4GL expects the name of a record component. Check the spelling of the name. If it is spelled as you intended, go back to the definition of the record variable and see why it does not include name as a component field.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4384 fires when a name is used where 4GL expects a record component name, but it isn't one at all — per the official guidance, check the spelling, and if it's correct, review the record variable's definition to find out why the name isn't included as a component.
- A name used as a record component that isn't a component of any record in scope, per the official guidance — the direct, only cause.
Solutions / Resolution
- Check the spelling of the name, per the official guidance.
- If it's spelled as intended, review the record variable's definition to find out why it doesn't include the name as a component field, per the official guidance.
Examples
A THRU reference to a non-component name
DEFINE rec RECORD
a INTEGER,
b INTEGER
END RECORD
DISPLAY rec.a THRU c
-- -4384: c is not a component of any record
Corrected
DISPLAY rec.a THRU rec.b
Diagnostic Checks
- Check the spelling of the flagged name, and whether it's genuinely a component of the record it's expected to belong to.
Related Errors / Related Topics
- -4383 — "The elements name-1 and name-2 do not belong to the same parent record." A related record-component error, about two names belonging to different records rather than one name not being a component at all.
- -4007 — "Record member "name" is undefined." A closely related error covering the same
condition in the
record.namedot-notation context.
A name is used as a record component but isn't one — check its spelling and the record's definition.