3.2.5.14 Processing RopFindRow

The RopFindRow ROP ([MS-OXCROPS] section 2.2.5.13) sets the cursor position to the first row that matches the search criteria specified in the ROP (starting the search from the current cursor position) and returns the found row when there is enough space in the output buffer. Rows that do not match the search criteria MUST remain unchanged in the table, but the cursor position is updated to match the found row. If no rows match the search criteria, the cursor position for the RopFindRow ROP is undefined, and the ReturnValue field MUST be set to "ecNotFound".

If the client requested that the find be performed from a custom bookmark, as specified in section 2.2.2.1.2, but the bookmark has become invalid because of a RopSortTable ([MS-OXCROPS] section 2.2.5.2), RopRestrict ([MS-OXCROPS] section 2.2.5.3), or RopResetTable ([MS-OXCROPS] section 2.2.5.15) ROP request, then the server SHOULD<32> set the ReturnValue field to "ecInvalidBookmark". If the bookmark points to a row that is no longer visible (for example, the row has been deleted, or its properties have changed so that it no longer matches the restriction, or its header row has been collapsed), the server MUST set the RowNoLongerVisible field to "TRUE" (0x01), and perform the find from the next row in the table.

A RopSetColumns ROP request ([MS-OXCROPS] section 2.2.5.1) MUST be sent on the table before sending a RopFindRow ROP request. The columns sent for the row found MUST be the columns that are specified on the RopSetColumns ROP.

The server MUST complete all asynchronous table ROPs before executing this ROP or fail the ROP with "ecBusy",<33> as specified in section 3.2.5.1.

The RopFindRow ROP MUST be supported on contents tables, hierarchy tables, and rules tables.

The following specific error code applies to this ROP. For more details about ROP errors returned, see [MS-OXCDATA] section 2.4.

Error code name

Value

Description

ecNotFound

0x8004010F,

%x0F.01.04.80

The row match the search criteria was not found.

ecNotSupported

0x80040102,

%x02.01.04.80

The object on which this ROP was sent is not a contents table, hierarchy table, or rules table.