使用 ODBC 游标库
重要
Windows 的未来版本中将移除此功能。 避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 Microsoft 建议使用驱动程序的游标功能。
若要使用 ODBC 游标库,应用程序:
调用属性为 SQL_ATTR_ODBC_CURSORS 的 SQLSetConnectAttr,以指定游标库应如何用于特定连接。 游标库始终可以 (SQL_CUR_USE_ODBC) 使用,仅当驱动程序不支持可滚动游标 (SQL_CUR_USE_IF_NEEDED) 时使用,或从未 (SQL_CUR_USE_DRIVER) 使用。
调用 SQLConnect、 SQLDriverConnect 或 SQLBrowseConnect 连接到数据源。
调用 SQLSetStmtAttr 以指定游标类型 (SQL_ATTR_CURSOR_TYPE) 、并发 (SQL_ATTR_CONCURRENCY) 和行集大小 (SQL_ATTR_ROW_ARRAY_SIZE) 。 游标库支持仅向前游标和静态游标。 仅前向游标必须是只读的,而静态游标可以是只读的,也可以使用比较值的乐观并发控制。
分配一个或多个行集缓冲区,并调用 SQLBindCol 一次或多次将这些缓冲区绑定到结果集列。
通过执行 SELECT 语句或过程或调用目录函数来生成结果集。 如果应用程序将执行定位的更新语句,则应执行 SELECT FOR UPDATE 语句以生成结果集。
调用 SQLFetch 或 SQLFetchScroll 一次或多次滚动浏览结果集。
应用程序可以更改行集缓冲区中的数据值。 若要使用游标库缓存中的数据刷新行集缓冲区,应用程序调用 SQLFetchScroll , 其中 FetchOrientation 参数设置为 SQL_FETCH_RELATIVE ,FetchOffset 参数设置为 0。
若要从未绑定的列检索数据,应用程序会调用 SQLSetPos 将光标定位在所需行上。 然后,它会调用 SQLGetData 来检索数据。
为了确定已从数据源检索的行数,应用程序调用 SQLRowCount。