行状态数组

除了数据,SQLFetch 和 SQLFetchScroll 还可以返回一个数组,该数组提供行集中每一行的状态。 此数组是通过 SQL_ATTR_ROW_STATUS_PTR 语句属性指定的。 此数组由应用程序分配,并且必须具有 SQL_ATTR_ROW_ARRAY_SIZE 语句属性指定数量的元素。 数组中的值由 SQLBulkOperations、SQLFetch、SQLFetchScroll 和 SQLSetPos 设置。这些值描述行的状态以及自上次提取以来该状态是否已更改。

行状态数组值 说明
SQL_ROW_SUCCESS 该行已成功提取,自上次提取以来未更改。
SQL_ROW_SUCCESS_WITH_INFO 该行已成功提取,自上次提取以来未更改。 但是,返回了有关该行的警告。
SQL_ROW_ERROR 提取该行时出现错误。
SQL_ROW_UPDATED 该行已成功提取,自上次提取以后经历过更新。 如果 SQLSetPos 再次提取或刷新该行,则其状态将更改为新状态。

某些驱动程序无法检测数据更改,因此无法返回此值。 若要确定驱动程序是否可以检测再次提取行的更新,应用程序可使用 SQL_ROW_UPDATES 选项调用 SQLGetInfo
SQL_ROW_DELETED 自上次提取行以后,该行已被删除。
SQL_ROW_ADDED 该行由 SQLBulkOperations 插入。 如果该行被再次提取或由 SQLSetPos 刷新,则其状态为 SQL_ROW_SUCCESS。

此值不由 SQLFetch 或 SQLFetchScroll 设置。
SQL_ROW_NOROW 行集与结果集的末尾重叠,并且没有返回与行状态数组的此元素对应的行。