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.
[Mark G. Adams]