除了資料外, SQLFetch 和 SQLFetchScroll 還能回傳一個陣列,顯示列集中每一列的狀態。 此陣列透過 SQL_ATTR_ROW_STATUS_PTR 陳述句屬性指定。 此陣列由應用程式分配,且必須包含與 SQL_ATTR_ROW_ARRAY_SIZE 陳述屬性所指定的元素數量相同。 陣列中的值由 SQLBulkOperations、 SQLFetch、 SQLFetchScroll 及 SQLSetPos 設定。 這些值描述了該列的狀態,以及自上次擷取以來該狀態是否改變。
| 列狀態陣列值 | 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。 此值並非由 SQLFetch 或 SQLFetchScroll 設定。 |
| SQL_ROW_NOROW | 行集超出結果集的界限,沒有回傳對應於該列狀態陣列元素的列。 |