| Previous | Next |
| DB_S_TYPEINFOOVERRIDDEN | DB_S_NONEXTROWSET |
DB_S_BOOKMARKSKIPPED
OLE DB skipped a bookmark for a deleted or nonmember row
DB_S_BOOKMARKSKIPPED is HRESULT 265923 (0x00040EC3) from Microsoft OLE DB. The documented description is “Bookmark was skipped for deleted or nonmember row.” The high-order severity bit is clear, so this is a success result, but it carries more information than plain S_OK.
The rowset operation continued but did not return the row identified by a bookmark because that row was deleted or no longer belongs to the rowset.
Evidence to preserve
- Preserve bookmark bytes and source rowset identity.
- Preserve rowset change model.
- Preserve deleted-row notifications.
- Preserve rows actually obtained.
- Preserve next fetch position.
Where the result is encountered
- This result can appear in IRowsetLocate and IRowsetFind; record the producing interface and method.
- This result can appear in dynamic rowsets under concurrent updates; record the producing interface and method.
- It can appear in bookmark-based paging or resume logic; record the producing interface and method.
State to verify
The central question is whether the consumer distinguishes a stale bookmark from end-of-rowset and continues from a defined position.
Diagnostic sequence
- Capture the raw HRESULT
0x00040EC3immediately after the returning method and record whether the caller usedSUCCEEDED,FAILED, equality testing, or exception translation. - Verify the method-specific state: the consumer distinguishes a stale bookmark from end-of-rowset and continues from a defined position.
Difference from nearby HRESULT values
DB_S_BADROWHANDLE concerns an HROW; it concerns a bookmark whose row disappeared or left the membership set.
Correct handling, retry, and recovery
Discard or refresh the stale bookmark, process other returned rows, and obtain a new bookmark from the current rowset. Do not reuse bookmarks across unrelated rowset instances.
Practical validation scenario
A live result set is paged by bookmarks while another transaction deletes a row. The consumer logs the skipped bookmark, continues with remaining rows, and rebuilds its resume token.
Developer and administrator guidance
References
Looking for a different code? Search another status or error code.