Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-odbc by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group