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.