DBROWSTATUS Enumerated Type
Providers use DBROWSTATUS values to return information about the status of a row and whether an operation succeeds or fails for each row in the rowset.
The values of DBROWSTATUS have the following meanings.
Value |
Description |
---|---|
DBROWSTATUS_S_OK |
The operation upon the row succeeded. |
DBROWSTATUS_S_MULTIPLECHANGES |
Occurs when updating or deleting a single row caused more than one row to be updated or deleted in the data store. For more information, see DBPROP_REPORTMULTIPLECHANGES. |
DBROWSTATUS_S_PENDINGCHANGES |
Can occur after a consumer has called IRowset::ReleaseRows, and the row had a pending change. The row will be released, and the corresponding element of rgRowStatus will contain this value. |
DBROWSTATUS_S_ROWSETCOLUMN |
IRowSchemaChange::DeleteColumns may return this row status when asked to delete a rowset column from a row. The value is actually nulled, but the column remains in the row and rowset. |
DBROWSTATUS_S_NOCHANGE |
Occurs when an operation succeeds for a row but no changes were made. IRowSetRefresh::RefreshVisibleData often returns this row status as a status flag to indicate that the row has not changed. |
DBROWSTATUS_E_CANCELED |
Operation on a row was canceled during notification. The row operation was not completed, and the corresponding row status contains this value. |
DBROWSTATUS_E_CANTRELEASE |
The operation upon the row failed because the row could not be released. |
DBROWSTATUS_E_CONCURRENCYVIOLATION |
The row was not updated because someone else already updated the row. Presumably, the data from the first update conflicts with the data that was part of the second concurrently attempted update. |
DBROWSTATUS_E_DELETED |
The row has already been deleted at the server. This indicates an error and that the requested operation failed. Under these circumstances, the status for the corresponding row contains this value. |
DBROWSTATUS_E_PENDINGINSERT |
This can occur when the rowset is in deferred update mode, which occurs when you insert or create a new row in the client application but the change has not yet been transmitted to the server. For example, if the consumer inserts a new row, and then tries to resynchronize with the data source, the newly inserted row was not yet transmitted to data source, so the requested operation failed. Another example would be where IRowsetRefresh:RefreshVisibleData is called with fOverwrite set to False. In that case, the server can't overwrite the newly inserted row, so the provider returns an error. |
DBROWSTATUS_E_NEWLYINSERTED |
If the DBPROP_CHANGEINSERTEDROWS is set to false and consumer calls IRowsetChange::DeleteRows or IRowsetChange::SetData for newly inserted rows, DeleteRows returns a status of DBROWSTATUS_E_NEWLYINSERTED for the row and SetData returns DB_E_NEWLYINSERTED. |
DBROWSTATUS_E_INTEGRITYVIOLATION |
Occurs when the provider recognizes that deleting a referred row violates the integrity constraints for the column or table. |
DBROWSTATUS_E_INVALID |
Row handle or bookmark was invalid. Operation for the row failed. This can happen because either the consumer used a row handle or bookmark that was not valid or it might have referred to a row that the current thread does not have access to. Under these circumstances, the status for the corresponding row contains this value. |
DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED |
The operation upon the row failed because the maximum number of pending changes was exceeded. |
DBROWSTATUS_E_OBJECTOPEN |
Consumer referred to a row on which a storage object was open, and the operation is not allowed until storage object is released. For example, when rowset is in deferred update mode, the consumer cannot undo any pending changes made through storage object that is still open. |
DBROWSTATUS_E_OUTOFMEMORY |
The rowset ran out of memory and was unable to perform operation for the row. |
DBROWSTATUS_E_PERMISSIONDENIED |
The consumer did not have sufficient permission to perform operation for the row. |
DBROWSTATUS_E_LIMITREACHED |
The row was not fetched for the following reason: Fetching rows required further execution of the command, such as when the rowset uses a server-side cursor. Execution has been stopped and cannot be resumed because a resource limit has been reached. Under these circumstances, the status for the corresponding row contains this value. |
DBROWSTATUS_E_SCHEMAVIOLATION |
The operation upon the row failed because of a schema violation. This row status indicates an error and that the data in the row would conflict with the requirements imposed by the database schema. |
DBROWSTATUS_E_FAIL |
The consumer encountered a recoverable, provider-specific error, such as an RPC failure when transmitting the change to a remote server. Under these circumstances, the status for the corresponding row contains this value. |