Preprocessor Error Messages
The following is a list of error messages specific to the Fortran language.
E_DC000A
"Table 'employee' contains column(s) of unlimited length."
Reason:
Character string(s) of zero length have been generated. This causes a compile-time error.
Action:
You must modify the output file to specify an appropriate length.
E_E10001
"Unsupported Fortran type '%0c' used. Double assumed. Ingres does not support the Fortran types complex and double complex."
Reason:
There is no Ingres type corresponding to complex or double complex, so the preprocessor does not map this declaration to a Ingres type. The preprocessor will continue to generate code as if you had declared the variable in question to be of type double precision.
Action:
If you want to store the two real (or double precision) components of a complex (or double complex) variable, declare a pair of real (or double precision) variables to the preprocessor, copy the components to them, and then store the copies.
E_E10002
"Fortran parameter may only be used with values. Type names, variable names, and parameter names are not allowed."
Reason:
You have used the Fortran "parameter name = value" statement, but value is not an integer constant, a floating constant, or a string constant. You may have used the name of a Fortran data type, or a variable (or parameter) name instead of one of the legal constant types.
Action:
If you want Ingres to know about this name, then change the value to be a constant.
E_E10003
"Incorrect indirection on variable '%0c'. The variable is declared as an array and is not subscripted, or is subscripted but is not declared as an array (%1c, %2c)."
Reason:
This error occurs when the 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 string variables, a single element of the string (for example, a character) has been given instead of the name of the array. The preprocessor will continue to generate code, but the program will not execute correctly if it is compiled and run.
Action:
Either redeclare the variable with the intended indirection, or change its use in the current statement.
E_E10004
"Last Fortran structure field referenced in '%0c' is unknown."
Reason:
This error occurs when the preprocessor encounters an unrecognized name in a structure reference. The preprocessor will continue to generate code, but this statement will either cause a runtime error or produce the wrong result if the resulting program is compiled and run.
Action:
Check for misspellings in field names and ensure that all of the structure fields have been declared to the preprocessor.
E_E1000A
"Undefined structure name '%0c' used in record declaration."
Reason:
You have declared a record variable using the name of a structure that is unknown to the preprocessor. The preprocessor will continue to generate code, but the resulting program will not run properly.
Action:
If you do not use this variable with a Ingres statement, remove the record declaration. Otherwise, ensure that the corresponding structure declaration is made known to the preprocessor.
E_E1000B
"Field '%0c' in record '%1c' is not an elementary variable."
Reason:
Record variables used in SQL as a single object must contain only scalar fields. Arrays and nested records are not allowed in this context. For example the following will cause an error on "obj.oname" in the select statement because it is an array variable:
exec sql begin declare section
structure /object/
character*10 oname
integer ovals(4)
end structure
record/object/ obj
exec sql end declare section
exec sql select * into :obj from objects
Action:
Either flatten the record variable declaration or enumerate all fields when using the variable.
E_E1000C
"Illegal length specified for Fortran numeric variable."
Reason:
Fortran integer variables can be 1, 2, or 4 bytes, and floating-point variables can be either 4 or 8 bytes. Specifying any other value is illegal.
Action:
Specify a valid length for the integer variable or floating-point variable that triggered the error.