滚动和提取行 (ODBC)

使用可滚动游标时,应用程序调用 SQLFetchScroll 来定位游标并提取行。 SQLFetchScroll 支持相对滚动(下一行、上一行和相对 n 行)、绝对滚动(第一行、最后一行和第 n 行),以及按书签定位。 SQLFetchScroll 中的 FetchOrientationFetchOffset 参数指定要提取的行集,如下图所示。

提取下一行集、上一行集、第一行集和最后一行集

提取下一行集、上一行集、第一行集和最后一行集

提取绝对行集、相对行集和书签行集

提取绝对行集、相对行集和书签行集

SQLFetchScroll 将游标定位到指定行,并返回以该行开头的行集中的行。 如果指定的行集与结果集的末尾重叠,则返回部分行集。 如果指定的行集与结果集的开头重叠,则通常会返回结果集中的第一个行集;有关完整详细信息,请参阅 SQLFetchScroll 函数说明。

在某些情况下,应用程序可能需要定位游标而不检索任何数据。 例如,它可能想要测试行是否存在,或者只获取该行的书签,而无需在整个网络中引入其他数据。 为此,它将 SQL_ATTR_RETRIEVE_DATA 语句属性设置为 SQL_RD_OFF。 绑定到书签列(如果有)的变量始终更新,而不考虑此语句属性的设置。

检索到行集后,应用程序可以调用 SQLSetPos 以定位到行集中的特定行或刷新行集中的行。 有关使用 SQLSetPos 的详细信息,请参阅使用 SQLSetPos 更新数据

注意

SQLExtendedFetch 使 ODBC 2.x 驱动程序支持滚动。 有关详细信息,请参阅“附录 G:驱动程序后向兼容性指南”中的块游标、可滚动游标和后向兼容性