附录 F:ODBC 游标库

重要

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

ODBC 游标库 (Odbccr32.dll) 支持任何符合级别 1 API 一致性级别的驱动程序的块可滚动游标,并且开发人员可以使用其应用程序或驱动程序重新分发。 游标库还支持由 SELECT 语句生成的结果集的定位更新和删除语句。 尽管它仅支持静态游标和仅向前游标,但游标库可满足许多应用程序的需求。 此外,它可以提供良好的性能,尤其是对于小型到中型的结果集,以及没有良好游标支持的应用程序。

游标库是位于驱动程序管理器和驱动程序之间的动态链接库 (DLL) 。 当应用程序调用函数时,驱动程序管理器会调用游标库中的函数,该函数要么执行函数,要么在指定的驱动程序中调用它。 对于给定的连接,应用程序指定是始终使用游标库、在驱动程序不支持可滚动游标时使用还是从未使用。

游标库显示为驱动程序管理器的驱动程序。 如果游标库位于驱动程序管理器和 ODBC 2.x 驱动程序之间,则游标库显示为 ODBC 2.x 驱动程序。 如果游标库位于驱动程序管理器和 ODBC 3.x 驱动程序之间,则游标库显示为 ODBC 3.x 驱动程序。 游标库显示的行为取决于它正在使用的驱动程序的版本,绑定偏移除外,ODBC 2.x 和 ODBC 3.x 驱动程序都支持绑定偏移量。

为了在 SQLFetchSQLFetchScroll 中实现块游标,游标库在驱动程序中重复调用 SQLFetch 。 为了实现滚动,它会将检索到的数据缓存在内存和磁盘文件中。 当应用程序请求新的行集时,游标库会根据需要从驱动程序或缓存中检索它。

为了实现定位的更新和删除语句,游标库使用 WHERE 子句构造 UPDATEDELETE 语句,该子句指定行中每个绑定列的缓存值。 执行定位的更新语句时,游标库会从行集缓冲区中的值更新其缓存。

有关 ODBC 游标库的详细信息,请参阅本附录的以下部分: