Re: unixODBC, psqlodbcw.so, and Wine...

From: Raiford(at)labware(dot)com
To: the6campbells <the6campbells(at)gmail(dot)com>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: unixODBC, psqlodbcw.so, and Wine...
Date: 2010-01-22 14:52:13
Message-ID: OFE7D75190.9A5277A9-ON852576B3.00500265-852576B3.0051AD9F@labware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Are you saying I need to rebuild the Postgres driver or unixODBC? Looking
at the sources for both, it looks like you are talking about Postgres -
its the only one with a config.h.in file. I see #undef SQL_WCHART_CONVERT
is already in the file. Are you suggesting I remove this reference? Or
are you suggesting that I add an additional #undef SQL_WCHAR_CONVERT?

Thanks for your help.. I would have never thought of doing something like
this :)

Jon

From:
the6campbells <the6campbells(at)gmail(dot)com>
To:
Raiford(at)labware(dot)com
Cc:
pgsql-odbc(at)postgresql(dot)org
Date:
01/21/2010 05:21 PM
Subject:
Re: [ODBC] unixODBC, psqlodbcw.so, and Wine...

this looks like the issue I noted to the list. the ucs-2 data being passed
to the unixodbc driver manager was not working with the driver. it was
suggested that I re-build it having edited the config.h file #undef
SQL_WCHAR_CONVERT which did the trick.

On Thu, Jan 21, 2010 at 5:00 PM, <Raiford(at)labware(dot)com> wrote:
I have been beating my head over this all day and I'm not turning anything
up at Google. I'm basically trying to get an ODBC app to run in Wine and
use the PostgreSQL ODBC driver configured in unixODBC. Here is a brief
rundown of my problem:

First, to prove I have unixODBC set up properly:

* Run /usr/bin/odbctest
* Select the Conn -> Full Connect ... menu item
* Select my Data Source, enter a User and Password, and click OK
* "Full Connect Succeeded" is displayed (yay!)

** Note that this works regardless of whether I choose the ANSI or Unicode
ODBC driver.

Now, from within Wine, I run a very similar test:

* Run Unicode ODBCTEST.EXE from
http://www.datadirect.com/support/downloads/tools/index.ssp
* Select the Conn -> Full Connect ... menu item
* Select my Data Source, enter the exact same User and Password, and
click OK
* This fails with the text "[unixODBC]c"

** Note that I can connect via Wine if I use the ANSI ODBC driver, but
when I try to access a Unicode Postgres database, there are errors that
invalid data types are being used

Everything looks correct in the ODBC tracing output. I've tried a few
other scenarios, but this is the most direct test case to show you. In
all cases, the Unicode driver only passes a single character back to the
app running under Wine. I have been trying to turn on Postgres specific
logging, but I can't seem to figure out how. I also considered that maybe
the Unicode encoding between Wine and unixODBC may be a problem, but I
didn't see any way to check or change this.

Please help! I'm willing to put more effort in to document this better.
At this point I'm not sure if its a Postgres error, unixODBC error, or a
Wine error. Doing this exact same test with FreeTDS and MDBTools had
errors as well, although the connections did succeed.

I'm running 32-bit Ubuntu 9.10 (Karmic). I have updated Wine to the
latest available in the Wine PPA with no change in behavior.

Jon

In response to

Browse pgsql-odbc by date

  From Date Subject
Next Message noreply 2010-01-28 18:41:25 [ psqlodbc-Bugs-1010758 ] Potential memory leak with savepoints and cursors
Previous Message Hiroshi Inoue 2010-01-22 01:25:52 Re: buffer overflow in 08.04.0100 und 08.04.0200?