Error when getting text longer than MaxLongVarcharSize - Mailing list pgsql-odbc

From Åsmund Kveim Lie
Subject Error when getting text longer than MaxLongVarcharSize
Date
Msg-id 442BD087.4080309@nosyko.no
Whole thread Raw
Responses Re: Error when getting text longer than MaxLongVarcharSize  (Hiroshi Inoue <inoue@tpf.co.jp>)
List pgsql-odbc
Hi,

When fetching text data longer than MaxLongVarcharSize, the driver
returns the length of the actual data in the database rather than the
truncated length to retrieve.

The last parameter (StrLen_or_IndPtr) to SQLBindCol() is a pointer to
where to place the length of the data to get. When we later call
SQLExtendedFetch() it will update this value to be the length of the
string. If you have a text in the database which is longer than the
MaxLongVarcharSize the ODBC will truncate the value to return down to
MaxLongVarcharSize (as printed in the log file).

The bug is that in version 08.01.200 (ANSI) SQLExtendedFetch() updates
the string length to be the length in the database and NOT the length of
the actual (truncated) value returned. We later rely on this value to
get the string value from memory. We use PostgreSQL 8.1.3 on Debian
Sarge and ODBC on Windows.

I hope this is enough information to enable you locate the bug. If you
need more information or MyLog please let me know, but I have not
attached it because my posts with log attachments does not seem to get
through on this mailing list.

Best regards,

Åsmund Lie



pgsql-odbc by date:

Previous
From:
Date:
Subject: [ psqlodbc-Bugs-1000601 ] Strange different behaviour of with SQLColAttribute with SQL_DESC_OCTET or SQL_DESC_LENGHT
Next
From: Johann Zuschlag
Date:
Subject: Unicode is not UTF-8. was :psqlODBC-Driver Test / text fields