滚动和提取行
若要使用可滚动游标,ODBC 应用程序必须:
使用 SQLSetStmtAttr 设置游标功能。
使用 SQLExecute 或 SQLExecDirect 打开游标。
使用 SQLFetch 或 SQLFetchScroll 滚动并提取行。
SQLFetch 和 SQLFetchSroll 每次都可以提取若干行块。通过使用 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 |