使用 ODBC 游标库

重要

Windows 的未来版本中将移除此功能。 避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 Microsoft 建议使用驱动程序的游标功能。

若要使用 ODBC 游标库,应用程序:

  1. 调用属性为 SQL_ATTR_ODBC_CURSORS 的 SQLSetConnectAttr,以指定游标库应如何用于特定连接。 游标库始终可以 (SQL_CUR_USE_ODBC) 使用,仅当驱动程序不支持可滚动游标 (SQL_CUR_USE_IF_NEEDED) 时使用,或从未 (SQL_CUR_USE_DRIVER) 使用。

  2. 调用 SQLConnectSQLDriverConnectSQLBrowseConnect 连接到数据源。

  3. 调用 SQLSetStmtAttr 以指定游标类型 (SQL_ATTR_CURSOR_TYPE) 、并发 (SQL_ATTR_CONCURRENCY) 和行集大小 (SQL_ATTR_ROW_ARRAY_SIZE) 。 游标库支持仅向前游标和静态游标。 仅前向游标必须是只读的,而静态游标可以是只读的,也可以使用比较值的乐观并发控制。

  4. 分配一个或多个行集缓冲区,并调用 SQLBindCol 一次或多次将这些缓冲区绑定到结果集列。

  5. 通过执行 SELECT 语句或过程或调用目录函数来生成结果集。 如果应用程序将执行定位的更新语句,则应执行 SELECT FOR UPDATE 语句以生成结果集。

  6. 调用 SQLFetchSQLFetchScroll 一次或多次滚动浏览结果集。

应用程序可以更改行集缓冲区中的数据值。 若要使用游标库缓存中的数据刷新行集缓冲区,应用程序调用 SQLFetchScroll其中 FetchOrientation 参数设置为 SQL_FETCH_RELATIVE ,FetchOffset 参数设置为 0。

若要从未绑定的列检索数据,应用程序会调用 SQLSetPos 将光标定位在所需行上。 然后,它会调用 SQLGetData 来检索数据。

为了确定已从数据源检索的行数,应用程序调用 SQLRowCount