Hi,
SQLGetData expects the buffer length parameter to be a SQLLEN variable,
which is a signed type.
SQL_NULL_DATA is defined as -1, which is 4294967295 if you interpret it
as an unsigned type.
Your my_buff_len variable is being set to SQL_NULL_DATA correctly, but
you are looking at it wrong.
Change it to be the correct type, and it will work as you expect.
Regards,
Harun
On 14/05/14 13:23, Dev Kumkar wrote:
> Hi,
>
> I have a question regarding ODBC call SQLGetData.
>
> SQLGetData(my_stmt, my_col_no, SQL_C_CHAR, &my_max_len, 0, &my_buff_len)
>
> In case the column value is 'PG' then the value of my_buff_length gets
> populated as 2 which is the expected value but in the call above in
> case the table's column has value NULL then value of my_buff_len gets
> populated as 4294967295 which is 4GB,
> instead shouldn't my_buff_len get populated as SQL_NULL_DATA?
>
> Postgres ODBC Driver version - 9.2.1
> Platform - RHEL 5
>
> Regards..