滚动和提取行
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)
若要使用可滚动游标,ODBC 应用程序必须:
使用 SQLSetStmtAttr 设置游标功能。
使用 SQLExecute 或 SQLExecDirect 打开游标。
使用 SQLFetch 或 SQLFetchScroll 滚动和提取行。
SQLFetch 和 SQLFetchSroll 一次可以提取行块。 返回的行数是使用 SQLSetStmtAttr 设置SQL_ATTR_ROW_ARRAY_SIZE参数指定的。
ODBC 应用程序可以使用 SQLFetch 通过仅向前游标提取。
SQLFetchScroll 用于滚动游标。 SQLFetchScroll 除了相对提取(从当前行集的开头提取行集 n 行)和绝对提取(提取从第 n 行开始的行集)外,还支持提取下一个、上一行集和最后一个行集。 如果 n 在绝对提取中为负值,则从结果集末尾对行进行计数。 绝对提取行 -1 表示提取从结果集中最后一行开始的行集。
仅将 SQLFetchScroll 用于其块游标功能(例如报告)的应用程序可能会一次传递结果集,仅使用用于提取下一行集的选项。 另一方面,基于屏幕的应用程序可以利用 SQLFetchScroll 的所有功能。 如果应用程序将行集大小设置为屏幕上显示的行数并将屏幕缓冲区绑定到结果集,则可以将滚动条操作直接转换为对 SQLFetchScroll 的调用。
滚动条操作 | SQLFetchScroll 滚动选项 |
---|---|
Page Up | SQL_FETCH_PRIOR |
Page Down | SQL_FETCH_NEXT |
向上移动一行 | SQL_FETCH_RELATIVE,FetchOffset 等于 -1 |
向下移动一行 | SQL_FETCH_RELATIVE,FetchOffset 等于 1 |
滚动框移到顶部 | SQL_FETCH_FIRST |
滚动框移到底部 | SQL_FETCH_LAST |
滚动框位于随机位置 | SQL_FETCH_ABSOLUTE |