ODBC 支持 ISO 选项,通过指定游标的可滚动性和敏感度来指定游标的行为。 通过在调用 SQLSetStmtAttr 时设置SQL_ATTR_CURSOR_SCROLLABLE和SQL_ATTR_CURSOR_SENSITIVITY选项来指定这些行为。 SQL Server Native Client ODBC 驱动程序通过请求具有以下特征的服务器游标来实现这些选项。
| 游标行为设置 | 请求的服务器游标特征 | 
|---|---|
| SQL_SCROLLABLE和SQL_SENSITIVE | 键集驱动的游标和基于版本的乐观并发 | 
| SQL_SCROLLABLE和SQL_INSENSITIVE | 静态游标和只读并发 | 
| SQL_SCROLLABLE和SQL_UNSPECIFIED | 静态游标和只读并发 | 
| SQL_NONSCROLLABLE和SQL_SENSITIVE | 仅向前游标和基于版本的乐观并发 | 
| SQL_NONSCROLLABLE和SQL_INSENSITIVE | 默认结果集(仅向前、只读) | 
| SQL_NONSCROLLABLE和SQL_UNSPECIFIED | 默认结果集(仅向前、只读) | 
基于版本的乐观并发需要基础表中的 时间戳 列。 如果对没有 时间戳 列的表请求基于版本的乐观并发控制,则服务器使用基于值的乐观并发。
可滚动性
SQL_ATTR_CURSOR_SCROLLABLE设置为SQL_SCROLLABLE时,游标支持 SQLFetchScroll的 FetchOrientation 参数的所有不同值。 当SQL_ATTR_CURSOR_SCROLLABLE设置为SQL_NONSCROLLABLE时,游标仅支持SQL_FETCH_NEXT 的 FetchOrientation 值。
敏感性
当SQL_ATTR_CURSOR_SENSITIVITY设置为SQL_SENSITIVE时,游标将反映当前用户或其他用户提交的数据修改。 当SQL_ATTR_CURSOR_SENSITIVITY设置为SQL_INSENSITIVE时,游标不会反映数据修改。