Kbase 20057: Informix - A syntax Error has Ocurred - Dsrv ODBC 9.0B
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  04/09/2008 |
|
Status: Verified
FACT(s) (Environment):
Progress 9.0B
ODBC DataServer
Informix
SYMPTOM(s):
This problem is not see in Progress 9.1A
The following error message is encountered when running a program against the Informix database
ERROR:
37000[MERANT][ODBC PROGRESS driver][PROGRESS]A syntax error has ocurred
CAUSE:
This problem occurs when running a FOR EACH command with a BY clause and the BY clause references a character field that is indexed. The definition of the field in the schema holder might be the cause. The error appears if the character field doesn't have the CASE-SENSITIVE enabled.
FIX:
As a workaround, following these steps:
1) Dump the definitions for this table from the schema
Holder.
2) Edit the .df file to add the line CASE-SENSITIVE
immediately after the ORDER line for the field definition.
3) Delete the table.
4) Add the table back to the schema holder.
For example:
ADD FIELD "name" OF "customer" AS character
FORMAT "x(20)"
INITIAL ?
POSITION 12
LENGTH 20
ORDER 5030
CASE-SENSITIVE <--- Line added
FOREIGN-POS 3
FOREIGN-NAME "name"
FOREIGN-TYPE "CHAR"
DSRVR-PRECISION 20
DSRVR-SCALE 0
DSRVR-LENGTH 20
DSRVR-FLDMISC 0
SHADOW-COL "Y"
MISC-PROPERTIES ""