[unixODBC-support] [Spam 3.00] Re: unixODBC not working with psqlodbc 08.04.0200 on Linux x64

Nick Gorham nick at lurcher.org
Sun Feb 14 22:07:46 GMT 2010


Luke Coldiron wrote:
> Nick Gorham wrote:
>> Luke Coldiron wrote:
>>> I am trying to get unixODBC version 2.2.12 to work with psqlodbc 
>>> version 08.04.0200.  Has anyone been able to get this to work?  I am 
>>> running on Linux x64.  I could not get unixODBC version 2.2.14 or 
>>> 2.2.15pre to compile but I was able to get 2.2.12 to compile.  I can 
>>> connect to my Postgres 8.4.2 database using the Postgres 7.1 driver 
>>> that comes with unixODBC but I am not able to with the psqlodbc 
>>> 08.04.0100 or 08.04.0200 drivers.  These are the only others that I 
>>> tried.  I tried turning on sql logging but it does not seem to get 
>>> to the point where it actually logs anything.  So I am wondering if 
>>> there is anything that I have overlooked in theory that would 
>>> prevent the psqlodbc driver from working with unixODBC.  Any help 
>>> would be much appreciated.
>>> Luke
>>> _______________________________________________
>>> unixODBC-support mailing list
>>> unixODBC-support at mailman.unixodbc.org
>>> http://mailman.unixodbc.org/mailman/listinfo/unixodbc-support
>> Hi,
>>
>> Not that I can think of, did you build the postgres drivers with the 
>> --with-unixODBC flag so it used the ini libs?
> I went ahead and re-compiled again to see if I forgot that, its 
> possible I did.
>>
>> The only area of problem is/was with the size of unicode characters, 
>> but I think thats resolved now.
>>
>> What problem was there getting2.2.15pre to compile?
> I tried it again and it worked this time.  Go figure, I must have not 
> had a clean dist to start from. Oh, wait:
>
> When I compile the psqlodbc driver with unixODBC 2.2.15pre I am 
> getting an error.
>
> ../configure --enable-static --enable-unicode=no 
> --with-unixodbc=/usr/local/bin/odbc_config
>
> ../odbcapi.c: At top level:
> ../odbcapi.c:1115: error: expected declaration specifiers or '...' 
> before 'SQLROWSETSIZE'
> ../odbcapi.c:1120: error: conflicting types for 'SQLExtendedFetch'
> /usr/local/include/sqlext.h:1927: error: previous declaration of 
> 'SQLExtendedFetch' was here
> ../odbcapi.c: In function 'SQLExtendedFetch':
> ../odbcapi.c:1133: error: 'pcrow' undeclared (first use in this function)
> ../odbcapi.c:1133: error: (Each undeclared identifier is reported only 
> once
> ../odbcapi.c:1133: error: for each function it appears in.)
>
> Any ideas? I would like to use the lastest of both driver if possible.
I think the defs in the unixODBC are different from the PG drivers. I 
will take a look, is it a 64 bit build? SQLROWSETSIZE was depreciated by 
MS and the PG driver may be expecting older definitions.

A simple fix would be to edit odbcapi.c and change the definition of 
SQLExtendedFetch to match the types in sqlext.h

SQLRETURN SQL_API SQLExtendedFetch(
    SQLHSTMT           hstmt,
    SQLUSMALLINT       fFetchType,
    SQLLEN             irow,
    SQLULEN                *pcrow,
    SQLUSMALLINT           *rgfRowStatus);



>
> However compiling psqlodbc with unixODBC 2.2.12 I do not get an error.
The defs changed between the two

-- 
Nick


More information about the unixODBC-support mailing list