SQLGetData(游标库)

重要

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

本主题讨论在游标库中使用 SQLGetData 函数。 有关 SQLGetData 的一般信息,请参阅 SQLGetData 函数

游标库通过首先使用 WHERE 子句构造 SELECT 语句来实现 SQLGetData,该子句枚举存储在当前行中每个绑定列的缓存中的值。 然后,它执行 SELECT 语句以重新选择行,并在驱动程序中调用 SQLGetData 以从数据源 (检索数据,而不是从缓存) 检索数据。

注意

由游标库构造的用于标识当前行的 WHERE 子句可能无法识别任何行、无法标识其他行或标识多行。 有关详细信息,请参阅 构造搜索语句

如果 SQL_ATTR_USE_BOOKMARKS 语句属性设置为 SQL_UB_VARIABLE,则可以在列 0 上调用 SQLGetData 以返回书签数据。

SQLGetData 的调用受到以下限制:

  • 不能为仅向前游标调用 SQLGetData

  • 仅当满足以下条件时,才能调用 SQLGetData:生成结果集的 SELECT 语句;SELECT 语句不包含联接、UNION 子句或 GROUP BY 子句;和选择列表中使用别名或表达式的任何列未与 SQLBindCol 绑定

  • 如果驱动程序仅支持一个活动语句,则游标库在执行 SELECT 语句和调用 SQLGetData 之前提取结果集的其余部分。