Preprocessor Error Messages
The following is a list of error messages specific to the C language:
E_DC000A
"Table 'employee' contains column(s) of unlimited length."
Reason:
Character strings(s) of zero length have been generated. This causes a compile-time error.
Action:
Modify the output file to specify an appropriate length.
E_E00001
"The #define statement may be used only with values, not names. Use typedef if you wish to make '%0c' a synonym for a type."
Reason:
The #define directive accepts only integer, floating-point or string literals as the replacement token. You may not use arbitrary text as the replacement token.
Action:
To define type names you should use typedef. The embedded preprocessor #define is not as versatile as the C #define.
E_E00002
"Cast of #define value is ignored."
Reason:
The preprocessor ignores a cast of the replacement value in a #define statement. Casts, in general, are not supported by the embedded C preprocessor.
Action:
Remove the cast from the #define statement.
E_E00003
"Incorrect indirection on variable'%0c'. Variable is subscripted, [], or dereferenced, *,%1c time(s) but declared with indirection of%2c."
Reason:
This error occurs when the address or value of a variable is incorrectly expressed because of faulty indirection. For example, the name of an integer array has been given instead of a single array element, or, in the case of character string variables, a single element of the string (that is, a character) has been given instead of a pointer to the string or the name of the array.
Action:
Either redeclare the variable with the intended indirection or change its use in the current statement.
E_E00004
"Last component of structure reference'%0c' is illegal."
Reason:
This error occurs when the preprocessor encounters an unrecognized name in a structure reference. The user may have incorrectly typed the name of structure element or may have failed to declare it to the preprocessor.
Action:
Check for misspellings in component names and that all of the structure components have been declared to the preprocessor.
E_E00008
"Incorrect declaration of C varchar variable is ignored. The members of a varchar structure variable may consist only of a short integer and a fixed length character array."
Reason:
Varchar variables (variables declared with the varchar storage class) must conform to an exact varying length string template so that Ingres can map to and from them at runtime. The length field must be exactly two bytes (derived from a short), and the character string field must be a single-dimensioned C character array. The varchar clause must be associated with a variable declaration and not with a type definition or structure tag declaration.
Action:
Check the varchar structure declaration. Make sure that both structure members are declared properly.
E_E00009
"Missing'=' in the initialization part of a C declaration."
Reason:
The preprocessor allows automatic initialization of variables and expects the regular C syntax.
Action:
Insert an equals sign between the variable and the initializing value.