Share via


資料列狀態陣列

除了資料之外,SQLFetchSQLFetchScroll 也可以傳回陣列以提供資料列集中各資料列的狀態。 這個陣列可透過 SQL_ATTR_ROW_STATUS_PTR 陳述式屬性來指定。 此陣列由應用程式配置,而且必須具有 SQL_ATTR_ROW_ARRAY_SIZE 陳述式屬性所指定的元素數目。 陣列中的值是由 SQLBulkOperationsSQLFetchSQLFetchScrollSQLSetPos 設定的。這些值會描述資料列的狀態,以及該狀態自上次擷取以來是否有變更。

資料列狀態陣列值 Description
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。

這個值不是由 SQLFetchSQLFetchScroll 所設定的。
SQL_ROW_NOROW 資料列集與結果集的結尾重疊,而且沒有傳回任何對應到資料列狀態陣列中這個元素的資料列。