This document is archived and information here might be outdated. Recommended version. |
Gets the values for the non-geometry fields in the current record.
[Visual Basic .NET] Public Sub FastQueryValues ( _ ByRef values As FieldValue _ )
[C#] public void FastQueryValues ( ref FieldValue values );
[C++]
HRESULT FastQueryValues(
FieldValue* values
);
[C++] Parameters values [in]
values is a parameter of type FieldValue*
Copies data from the current record into the array of field values. The record and field map are constant, but the array of field values is modified.
This method should never copy the shape field, as QueryShape deals with that.
The field map is an array of longs that maps fields in the record into the values array. The method should get the field set from the dataset. For each field in the field set, get the corresponding value in the field map. If the value is -1, don�t copy the field. Otherwise, the value in the field map is the index in the values array where the data should be copied.
The field values array is an array of FieldValue structures which represents a row. Each FieldValue structure has a variant (m_value) which is the value of that field. This method is responsible for copying the data from the record into these variants. The plug-in data source often reuses the field values array, so the variants may already have values. Therefore, pointer-type variants must release these pointers before assigning new values. In particular, BSTR variants that already have a string assigned should assign the new string with ::SysReallocString, and use ::SysAllocString only if the variant does not yet have a string assigned.
This method is only appropriate for plug-in data sources implemented in C++.