Re: ODBC : SQLGetData question

From: Nick Gorham <nick(at)lurcher(dot)org>
To: pgsql-odbc(at)postgresql(dot)org
Subject: Re: ODBC : SQLGetData question
Date: 2014-05-14 10:08:14
Message-ID: 5373408E.2070404@lurcher.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

On 14/05/14 10:07, Dev Kumkar wrote:
>
> On Wed, May 14, 2014 at 2:17 PM, aihtdikh <aihtdikh(at)gmail(dot)com
> <mailto:aihtdikh(at)gmail(dot)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

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Barry Bell 2014-05-14 12:51:14 Re: psqlODBC text length with no records
Previous Message aihtdikh 2014-05-14 09:23:26 Re: ODBC : SQLGetData question