ODBC Row Status Array (SQL_ATTR_ROW_STATUS_PTR) Populated As SQLUINTEGER Rather Than SQLUSMALLINT
Last updated on JULY 05, 2017
Applies to:Oracle ODBC Driver - Version 18.104.22.168 to 22.214.171.124 [Release 11.2]
Information in this document applies to any platform.
Using the Oracle 11gR1 or later ODBC driver, having called SQLSetStmtAttr to set up SQL_ATTR_ROW_STATUS_PTR, after a subsequent fetch the row status is being returned as 4 byte values (writing off the end of allocated memory) rather than as 2 byte values.
This issue reproduces with all versions of the Oracle ODBC driver since 126.96.36.199. It is a 32-bit-only problem; in 64-bit mode the status values are 64-bit and this has been correctly implemented (the bug being due most likely to a simple oversight and some inconsistency between 32-bit and 64-bit Windows: if a value is 64 bits in 64-bit mode then it would be expected to be 32 bits in 32-bit mode, but in fact it is 16 bits in 32-bit mode).
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms