--- title: "Row Status Array | Microsoft Docs" ms.custom: "" ms.date: "01/19/2017" ms.prod: sql ms.prod_service: connectivity ms.reviewer: "" ms.technology: connectivity ms.topic: conceptual helpviewer_keywords: - "row status array [ODBC]" - "cursors [ODBC], block" - "result sets [ODBC], row status array" - "block cursors [ODBC]" - "result sets [ODBC], block cursors" - "rowset status [ODBC]" ms.assetid: 4b69f189-2722-4314-8a02-f4ffecd6dabd author: David-Engel ms.author: v-daenge --- # Row Status Array In addition to data, **SQLFetch** and **SQLFetchScroll** can return an array that gives the status of each row in the rowset. This array is specified through the SQL_ATTR_ROW_STATUS_PTR statement attribute. This array is allocated by the application and must have as many elements as are specified by the SQL_ATTR_ROW_ARRAY_SIZE statement attribute. The values in the array are set by **SQLBulkOperations**, **SQLFetch**, **SQLFetchScroll**, and **SQLSetPos.** The values describe the status of the row and whether that status has changed since it was last fetched. |Row status array value|Description| |----------------------------|-----------------| |SQL_ROW_SUCCESS|The row was successfully fetched and has not changed since it was last fetched.| |SQL_ROW_SUCCESS_WITH_INFO|The row was successfully fetched and has not changed since it was last fetched. However, a warning was returned about the row.| |SQL_ROW_ERROR|An error occurred while fetching the row.| |SQL_ROW_UPDATED|The row was successfully fetched and has been updated since it was last fetched. If the row is fetched again or refreshed by **SQLSetPos**, its status is changed to the new status.

Some drivers cannot detect changes to data and therefore cannot return this value. To determine whether a driver can detect updates to refetched rows, an application calls **SQLGetInfo** with the SQL_ROW_UPDATES option.| |SQL_ROW_DELETED|The row has been deleted since it was last fetched.| |SQL_ROW_ADDED|The row was inserted by **SQLBulkOperations**. If the row is fetched again or is refreshed by **SQLSetPos**, its status is SQL_ROW_SUCCESS.

This value is not set by **SQLFetch** or **SQLFetchScroll**.| |SQL_ROW_NOROW|The rowset overlapped the end of the result set, and no row was returned that corresponded to this element of the row status array.|