SQLSetStmtOption Mapping
If fOption indicates an ODBC-defined statement attribute that is a string, then the
Driver Manager calls:
Because the Driver Manager does not know whether the driver-defined statement
attribute needs a string or 32-bit integer value, it has to pass in a valid
value for the StringLength argument of SQLSetStmtAttr. If the driver has defined special semantics for driver-defined statement
attributes and needs to be called using SQLSetStmtOption, then it must support SQLSetStmtOption.
If an application calls SQLSetStmtOption to set a driver-specific statement option in an ODBC 3.0 driver, and the
option was defined in an ODBC 2.x version of the driver, a new manifest constant should be defined for the
option in the ODBC 3.0 driver. If the old manifest constant is used in the call to SQLSetStmtOption, the Driver Manager will call SQLSetStmtAttr with the StringLength argument set to 0.
When an application calls SQLSetStmtAttr to set SQL_ATTR_USE_BOOKMARKS to SQL_UB_ON in an ODBC 3.0 driver, the
SQL_ATTR_USE_BOOKMARKS statement attribute is set to SQL_UB_FIXED. SQL_UB_ON is the
same constant as SQL_UB_FIXED. The Driver Manager passes SQL_UB_FIXED through to
the driver. SQL_UB_FIXED has been deprecated in ODBC 3.0, but an ODBC 3.0
driver must implement it to work with ODBC 2.x applications that use fixed-length bookmarks.
For an ODBC 3.0 driver, the Driver Manager no longer checks to see if Option is in between SQL_STMT_OPT_MIN and SQL_STMT_OPT_MAX, or is greater than
SQL_CONNECT_OPT_DRVR_START.