Kbase P24967: ODBC test connection works fine with MERANT SQL-89 driver bu
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/27/2003 |
|
Status: Unverified
FACT(s) (Environment):
Progress 9.1x
FACT(s) (Environment):
MERANT 3.70 32-BIT Progress SQL-89
SYMPTOM(s):
ODBC test connection works fine with MERANT SQL-89 driver but fails with SELECT statement
Testing connection with the ODBC DSN data source is successful.
MS Excel and other tools work fine with the created ODBC data source.
Running the custom application developed in C results in errors.
From within the C application:
When running the SELECT * FROM system tables the error appears:
[S1C00] [MERANT][ODBC PROGRESS driver]Optional feature not implemented.
[S1000] [MERANT][ODBC PROGRESS driver]msgOpen: unable to open message file: PROMSGS [IM006]
[MERANT][ODBC PROGRESS driver]Driver's SQLSetConnectAttr failed.
From within the C application:
When running the SELECT * FROM usertable the error appears:
(FOC1400) SQLCODE IS 1 (HEX: 00000001)
[S1C00] [MERANT][ODBC PROGRESS driver]Optional feature not implemented.
[S1000] [MERANT][ODBC PROGRESS driver]PROGRESS error returned with no associated message: RC = -1, SQLCODE = -1, SQLSTATE = "".[IM006]
[MERANT][ODBC PROGRESS driver]Driver's SQLSetConnectAttr failed.
(FOC1405) SQL PREPARE ERROR.
CAUSE:
The C application is calling ODBC level 1 functions e.g.:
SQLAllocEnv, SQLAllocConnect and SQLSetConnectOption
which have been deprecated by the ODBC level 3 conformant
functions such as SQLAllocHandle and SQLSetConnectAttr.
The ODBC drivers is performing the mapping between these
two different ODBC level compliant functions and when trying
to execute the SQLSetConnectAttr it fails because one of the
parameters passed to the SQLSetConnectOption was mapped
to the non-supported feature when calling the SQLSetConnectAttr.
FIX:
Modify the code in the C application in order to set the
correct connection parameters and to intercept and handle ODBC
driver connection messages.