According to MSDN docs for SQLSetStmtAttr, if you try to request a
cursor type which isn't supported, the driver should fall back to a
supported type, set an appropriate SQLState and return
SQL_SUCCESS_WITH_INFO.
Currently, if a SQL_ATTR_CURSOR_TYPE of SQL_CURSOR_DYNAMIC is requested,
we fall back to SQL_CURSOR_FORWARD_ONLY and no warning is given; this is
simply because we don't explicitly check for SQL_CURSOR_DYNAMIC.
A better solution is to check for SQL_CURSOR_DYNAMIC, fall back to
SQL_CURSOR_KEYSET_DRIVEN and set a warning accordingly.
Also, currently if SQL_CURSOR_KEYSET_DRIVEN is requested and only static
cursors are supported, we fall back without returning a warning.
Attached is a patch implementing both of the above against
psqlodbc-08.00.0101.
//Mark
--
Mark G. Adams
mgadams@ca.stilo.com