游标行为
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 |
默认结果集(只进,只读) |
基于版本的乐观并发要求基础表包含 timestamp 列。 如果在不包含 timestamp 列的表上请求基于版本的乐观并发控制,服务器则使用基于值的乐观并发。
可滚动性
将 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 时,游标不能反映数据修改。