Thread: Error with newer version of DataDirect odbc

Error with newer version of DataDirect odbc

From
"John E. Vincent"
Date:
I've posted in the past about issues with DataDirect but we have a new
product that we're attempting to get talking to our warehouse - Actuate
iServer.

I've done various tests with the 7.0/8.0 driver (compiling with an
without win_unicode.c) and here's what I've got.

When I compile without win_unicode.c on the version 7 driver, DataDirect
kicks back an error about "General Error: Unicode conversion failed".
I've sent that back to Actuate as a possible issue with DataDirect. The
commlog shows the records being selected but DataDirect doesn't seem to
know what to do with them.

Now with the version 8 driver compiled with various flags and with or
without win_unicode.c included, DataDirect spits back the following in
the trace file:

ppid=22789:pid= 593f:b75ec7e0   ENTER SQLAllocConnect
                 HENV                0xb6c60258
                 HDBC *              0xb6c5d708

ppid=22789:pid= 593f:b75ec7e0   ENTER SQLSetConnectAttr
                 SQLHDBC             0xb6c60e38
                 SQLINTEGER                1061
                 SQLPOINTER          [Unknown attribute 1061]
                 SQLINTEGER                   0

ppid=22789:pid= 593f:b75ec7e0   ENTER SQLDriverConnectW
                 HDBC                0xb6c60e38
                 HWND                0x00000000
                 WCHAR *             0xbfff88f0 [      -3] "******"
                 SWORD                       -3
                 WCHAR *             0xbfff88f0
                 SWORD                        0
                 SWORD *             0xbfff896e
                 UWORD                        0 <SQL_DRIVER_NOPROMPT>

I've search through the source and it seems that under windows, this
would prompt for a dialog to enter the username and password but under
*nix, it just returns an error. The fact that it happens only with the
new driver which seems to only support ODBCVER=0x0300 or higher leads me
to believe that this is some missing ODBC 3 functionality in the
psqlodbc driver. Mind you, I can barely read code so I could be wrong.

I'm just trying to get Actuate talking to Postgres8. Interestingly
enough that under Windows, no matter what username and password I put in
the system DSN or when I create the connection from within the Actuate
tool, it always pops up and asks me for a username and password. I'm
guessing that the windows driver responds fine and understands how to
"pop up" a dialog but under linux that just isn't possible when compiled
without a GUI. I've tried building the driver with various versions of
unixODBC and even iODBC but it just won't work.

I know we're working with a third-party closed-source product but these
are the kinds of environments that people will want to use postgres.
We're also looking at using the Openlink drivers or possibly the
Easysoft ODBCtoJDBC driver just to get this working. CommandPrompt, we
would love to buy your driver if it worked!

Can anyone provide any ideas? Thanks in advance and let me know if I can
provide any more information.
--
John E. Vincent