滚动和提取行

若要使用可滚动游标,ODBC 应用程序必须:

  • 使用 SQLSetStmtAttr 设置游标功能。

  • 使用 SQLExecuteSQLExecDirect 打开游标。

  • 使用 SQLFetchSQLFetchScroll 滚动并提取行。

SQLFetchSQLFetchSroll 每次都可以提取若干行块。通过使用 SQLSetStmtAttr 以设置 SQL_ATTR_ROW_ARRAY_SIZE 参数,可以指定返回的行数。

ODBC 应用程序可以使用 SQLFetch 通过只进游标执行提取。

SQLFetchScroll 用于围绕游标滚动。除了相对提取(从距离当前行集起始处 n 行的位置提取行集)和绝对提取(提取从行 n 开始的行集)以外,SQLFetchScroll 还支持提取下一个、上一个、第一个和最后一个行集。如果在绝对提取中 n 是负数,则从结果集的末尾开始对行进行计数。绝对提取行 -1 表示提取从结果集中最后一行开始的行集。

仅对其块游标功能(比如报表)使用 SQLFetchScroll 的应用程序很可能只穿越该结果集一次,从而仅使用此选项提取下一个行集。另一方面,基于屏幕的应用程序可以利用 SQLFetchScroll 的所有功能。如果应用程序将行集大小设置为屏幕上显示的行数,并将屏幕缓冲区绑定到结果集,则它可以将滚动条操作直接转换为对 SQLFetchScroll 的调用。

滚动条操作

SQLFetchScroll 滚动选项

向上翻页

SQL_FETCH_PRIOR

向下翻页

SQL_FETCH_NEXT

向上移动一行

SQL_FETCH_RELATIVE,FetchOffset 等于 -1

向下移动一行

SQL_FETCH_RELATIVE,FetchOffset 等于 1

滚动框移到顶部

SQL_FETCH_FIRST

滚动框移到底部

SQL_FETCH_LAST

滚动框位于随机位置

SQL_FETCH_ABSOLUTE