I have a wierd ODBC problem here.
Here is the situation:
We have a Crystal Reports report that pulls data from an OpenEdge 10.2B database engine.
Our end users get a syntax error message from the ODBC driver. The error message is:
HY000:[DataDirect][ODBC Progress OpenEdge Wire Protocl driver][OPENEDGE]Syntax error in SQL statement at or about "} WHERE "FundDetailHistory"."fundid"='0" (10713)
[Database Vendor Code: -210056]
Users run Crystal Reports via terminal services on Windows Server 2008 SP2, 64-bit. The database engine runs on the same machine.
The report runs fine when it is run as the domain administrator (ie DOMAIN\administrator).
What's wierd is the ODBC driver reports a syntax error when the report is run as any other user, regardless of the user's permissions on the machine. It doesn't matter whether the user is a member of the "Domain Admins" group.
UAC is turned off.
Has anyone seen anything like this before?
How is the ODBC DataSource setting is setup? Is the ODBC DSN defined as User DSN or System DSN. If User DSN then you will need to add that DSN for every user.
The ODBC data source is set up as a system DSN.
The problem here isn't that the ODBC is misconfigured. I get a mysterious SQL syntax error when I run the Crystal Report as any user other than the domain administrator.
"} WHERE "FundDetailHistory"."fundid"='0"
Maybe the message is truncated, but can you verify if "fundid"='0 should be "fundid"='0'
Can you post the full sql statement?
Should be able to get this via the crystal report itself, or logging on the Progress side.
Initial things to check;
1) do you have a keyword forget list, and is the accessible by users other than 'Administrator'?
2) do you format modifiers, for example date formats - again are the definitions accessible by other users?
3) failing modifiers ... are the regional settings of both user sets the same?
Given that the query will be resolved on the server, and the server instance is started under the same account it should not be a factor.
However if any of the above is specified via the client, ie as parameters of the odbc connection, you may se problems.