|
[ms-wsp]: Windows Search Protocol Intellectual Property Rights Notice for Open Specifications Documentation
|
bet | 18/28 | Sana | 25.03.2020 | Hajmi | 349,46 Kb. | | #8793 |
CPMSetBindingsIn
The CPMSetBindingsIn message requests the binding of columns to a rowset. The server will reply to the CPMSetBindingsIn request message using the header section of the CPMSetBindingsIn message with the results of the request contained in the _status field. The format of the CPMSetBindingsIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_hCursor (optional)
|
_cbRow (optional)
|
_cbBindingDesc (optional)
|
_dummy (optional)
|
cColumns (optional)
|
aColumns (variable)
|
...
|
_hCursor (4 bytes): A 32-bit value representing the handle from the CPMCreateQueryOut message that identifies the query for which to set bindings. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server.
_cbRow (4 bytes): A 32-bit unsigned integer indicating the size, in bytes, of a row. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server.
_cbBindingDesc (4 bytes): A 32-bit unsigned integer indicating the length, in bytes, of the fields following the _dummy field. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server.
_dummy (4 bytes): This field is unused and MUST be ignored. It can be set to any arbitrary value. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server.
cColumns (4 bytes): A 32-bit unsigned integer indicating the number of elements in the aColumns array. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server.
aColumns (variable): An array of CTableColumn structures describing the columns of a row in the rowset. This field MUST be present when the message is sent by the client and MUST be absent when the message is sent by the server. Structures in the array MUST be separated by 0 to 3 padding bytes such that each structure has a 4-byte alignment from the beginning of a message. Such padding bytes can be set to any arbitrary value when sent and MUST be ignored on receipt.
CPMGetRowsIn
The CPMGetRowsIn message requests rows from a query. The format of the CPMGetRowsIn message that follows the header is shown in the following diagram.
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
1
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
2
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
3
0
|
1
|
_hCursor
|
_cRowsToTransfer
|
_cbRowWidth
|
_cbSeek
|
_cbReserved
|
_cbReadBuffer
|
_ulClientBase
|
_fBwdFetch
|
eType
|
_chapt
|
SeekDescription (variable)
|
...
|
_hCursor (4 bytes): A 32-bit value representing the handle from the CPMCreateQueryOut message identifying the query for which to retrieve rows.
_cRowsToTransfer (4 bytes): A 32-bit unsigned integer indicating the maximum number of rows that the client will receive in response to this message.
_cbRowWidth (4 bytes): A 32-bit unsigned integer indicating the length of a row, in bytes.
_cbSeek (4 bytes): A 32-bit unsigned integer indicating the size of the message beginning with eType.
_cbReserved (4 bytes): A 32-bit unsigned integer indicating the size, in bytes, of a CPMGetRowsOut message (without the Rows and SeekDescriptions fields). This value in this field is added to the value of the _cbSeek field, and then is to be used to calculate the offset of Rows field in the CPMGetRowsOut message.
_cbReadBuffer (4 bytes): A 32-bit unsigned integer.
Note This field MUST be set to the maximum of the value of _cbRowWidth or 1000 times the value of _cRowsToTransfer, rounded up to the nearest 512 byte multiple. The value MUST NOT exceed 0x00004000.
_ulClientBase (4 bytes): A 32-bit unsigned integer indicating the base value to use for pointer calculations in the row buffer. If 64-bit offsets are being used, the reserved2 field of the message header is used as the upper 32-bits and _ulClientBase as the lower 32-bits of a 64-bit value. See section 2.2.3.12.
_fBwdFetch (4 bytes): A 32-bit unsigned integer indicating the order in which to fetch the rows that MUST be set to one of the following values.
Value
|
Meaning
|
0x00000000
|
The rows are to be fetched in forward order.
|
0x00000001
|
The rows are to be fetched in reverse order.
|
eType (4 bytes): A 32-bit unsigned integer that MUST contain one of the following values indicating the type of operation to perform.
Value
|
Meaning
|
0x00000000
|
There is no SeekDescription; the SeekDescription field is omitted.
|
eRowSeekNext
0x00000001
|
SeekDescription contains a CRowSeekNext structure.
|
eRowSeekAt
0x00000002
|
SeekDescription contains a CRowSeekAt structure.
|
eRowSeekAtRatio
0x00000003
|
SeekDescription contains a CRowSeekAtRatio structure.
|
eRowSeekByBookmark
0x00000004
|
SeekDescription contains a CRowSeekByBookmark structure.
|
_chapt (4 bytes): A 32-bit value representing the handle of the rowset chapter.
SeekDescription (variable): This field MUST contain a structure of the type indicated by the eType value.
The _fBwdFetch argument affects the retrieval of rows from the results. Rows are taken from the beginning of the seek in the direction determined by the value of _fBwdFetch. In the following, a number of records have been retrieved. The figure shows how the buffer will be filled depending on the value of the _fBwdFetch. For more information about the structure of the buffer, see CPMGetRowsOut.
Figure 2: Effect of _fBwdFetch Parameter
Notice that the _fBwdFetch argument changes the order in which records are presented for placement in the buffer but does not change the order (forward order) in which the buffer itself is filled.
|
| |