Consultor Eletrônico



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 ""