Re: ODBC : SQLGetData question - Mailing list pgsql-odbc

From Nick Gorham
Subject Re: ODBC : SQLGetData question
Date
Msg-id 5373408E.2070404@lurcher.org
Whole thread Raw
In response to Re: ODBC : SQLGetData question  (Dev Kumkar <devdas.kumkar@gmail.com>)
Responses Re: ODBC : SQLGetData question
List pgsql-odbc
On 14/05/14 10:07, Dev Kumkar wrote:

On Wed, May 14, 2014 at 2:17 PM, aihtdikh <aihtdikh@gmail.com> wrote:
That will work around the issue, but I'm stumped as to why it was not working for you already.

It seems like your platform must be 64bit, and something somewhere is converting what should be a 64bit SQLLEN into a 32bit value, but I can't find anywhere in the source that does anything unsafe in this regard - it's SQLLEN all the way.

Edit: Ah, Nick may be on the right path there.
Could the driver have been compiled with a different sqltypes.h than the application?
If so, you could try compiling the driver under the same setup as your application to see if that fixes it.


Regards,
Harun
Yes, the platform is 64-bit.
We are deploying the driver as it is and not compiling it in-house currently.

In that case compile the application with the same setup as the driver.

Do you see any issues with the (int) typecast done for SQLLEN?

Yes, if your app ever expects the driver to return an array of results (for example) it will go badly wrong very quickly. Also, if the driver is 64 bit SQLLEN and the application 32 bit, a SQLGetData will be writing to memory that happens to be after the indicator variable, that will not end well.

--
Nick

pgsql-odbc by date:

Previous
From: aihtdikh
Date:
Subject: Re: ODBC : SQLGetData question
Next
From: Adrian Klaver
Date:
Subject: Re: psqlODBC text length with no records