2.2.1.43 CTableColumn

The CTableColumn structure contains a column of a CPMSetBindingsIn message.


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

PropSpec (variable)

...

_padding_vtype (variable)

...

vType

AggregateUsed

AggregateType (optional)

ValueUsed

_padding1 (optional)

ValueOffset (optional)

ValueSize (optional)

StatusUsed

_padding2 (optional)

StatusOffset (optional)

LengthUsed

_padding3 (optional)

LengthOffset (optional)

PropSpec (variable): A CFullPropSpec structure.

_padding_vtype (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following vType field begins at an offset that is a multiple of 4 bytes from the beginning of the message. If this field is present (that is, length nonzero), the value it contains is arbitrary. The content of this field MUST be ignored by the receiver.

vType (4 bytes): A 32-bit unsigned integer that specifies the type of data value contained in the column. See the vType field in section 2.2.1.1 for the list of values for this field.

AggregateUsed (1 byte):  MUST be set to one of the following values.

Value

Meaning

0x00

No aggregation is used, and the AggregateType field MUST NOT be present.

0x01

This column is used to aggregate the values for query results, as specified in AggregateType.

AggregateType (1 byte): This field MUST be set to one of the aggregation type values specified under the type field in section 2.2.1.25.

ValueUsed (1 byte): A 1-byte field that MUST be set to one of the following values.

Value

Meaning

0x00

The value of the column is not transferred in the row.

0x01

The value of the column is transferred within the row.

_padding1 (1 byte): A padding field.

This field MUST be inserted before ValueOffset if, without it, ValueOffset would not begin at an even offset from the beginning of the message. The value of this byte is arbitrary and MUST be ignored. If ValueUsed is set to 0x00, this field MUST NOT be present.

ValueOffset (2 bytes): An unsigned 2-byte integer specifying the offset of the column value in the row. If ValueUsed is set to 0x00, this field MUST NOT be present. The offset value is within row size(CPMSetBindingsIn._cbRow), and the offset + ValueSize is within row size too.

ValueSize (2 bytes): An unsigned 2-byte integer specifying the size of the column value in bytes. If ValueUsed is set to 0x00, this field MUST NOT be present.

StatusUsed (1 byte): MUST be set to one of the following values.

Value

Meaning

0x00

The status of the column is not transferred within the row.

0x01

The status of the column is transferred within the row.

_padding2 (1 byte): A padding field.

This field MUST be inserted before StatusOffset if, without it, the StatusOffset field would not begin at an even offset from the beginning of the message. The value of this byte is arbitrary and MUST be ignored. If StatusUsed is set to 0x00, this field MUST NOT be present.

StatusOffset (2 bytes): An unsigned 2-byte integer.

Specifies the offset of the column status in the row. If StatusUsed is set to 0x00, this field MUST NOT be present. The offset value is within row size(CPMSetBindingsIn._cbRow), and the offset + 1 is within row size too.

LengthUsed (1 byte): A 1-byte field that MUST be set to one of the following values.

Value

Meaning

0x00

The length of the column MUST NOT be transferred within the row.

0x01

The length of the column is transferred within the row.

_padding3 (1 byte): A padding field.

This field MUST be inserted before LengthOffset if, without it, LengthOffset would not begin at an even offset from the beginning of a message. The value of this byte is arbitrary and MUST be ignored. If LengthUsed is set to 0x00, this field MUST NOT be present.

LengthOffset (2 bytes): An unsigned 2-byte integer specifying the offset of the column length in the row. In CPMGetRowsOut, length is represented by a 32-bit unsigned integer by the offset specified in LengthOffset. If LengthUsed is set to 0x00, this field MUST NOT be present. The offset value is within row size(CPMSetBindingsIn._cbRow), and the offset + 4 is within row size too.