3.2.5.2 Processing RopSetColumns
When a RopSetColumns ROP request ([MS-OXCROPS] section 2.2.5.1) is received, the server MUST remember the requested columns and apply them to the table when executing other ROPs that act on that table. The columns that are set by the RopSetColumns ROP MUST be the ones sent in the responses to subsequent RopQueryRows ([MS-OXCROPS] section 2.2.5.4), RopFindRow ([MS-OXCROPS] section 2.2.5.13), or RopExpandRow ([MS-OXCROPS] section 2.2.5.16) ROPs executed on that table.
If any of the following ROPs are sent before a successful RopSetColumns ROP, then the server fails that ROP with a ecNullObject error.<21>
RopCollapseRow
RopExpandRow
RopFindRow
RopFreeBookmark
RopGetCollapseState
RopQueryRows
RopSeekRowBookmark
RopSetCollapseState
If a RopSetColumns ROP request fails, the server SHOULD invalidate the table column set until a successful RopSetColumns ROP request is made. The server can restore the previous column set.
If the TBL_ASYNC bit of the SetColumnsFlags field is set, the server can execute the ROP as a table-asynchronous ROP,<22> as specified in section 3.2.5.1.
The RopSetColumns ROP MUST be supported for all types of tables.
If a column has the MultivalueInstance bit set in a PropertyTag structure, as specified in [MS-OXCDATA] section 2.9, the server MUST expand the rows that have multiple values for the property into multivalue instances in subsequent RopQueryRows, RopFindRow, or RopExpandRow ROPs that are executed on the table.
The following specific error codes apply to this ROP. For more details about ROP errors returned, see [MS-OXCDATA] section 2.4.
Error code name |
Value |
Description |
---|---|---|
ecInvalidParam |
0x80070057, %x57.00.07.80 |
A property tag in the column array is of type PT_UNSPECIFIED, PT_ERROR, or an invalid type. These property types are specified in [MS-OXCDATA] section 2.11.1. |
ecNotSupported |
0x80040102, %x02.01.04.80 |
The object on which this ROP was sent is not of type table. |