com.esri.arcgis.geodatabase
Interface IPlugInFastQueryValues

All Superinterfaces:
Serializable
All Known Implementing Classes:
IPlugInFastQueryValuesProxy

public interface IPlugInFastQueryValues
extends Serializable

Provides access to members that query record values quickly.

Description

This is a special interface that may be implemented by the plug-in cursor helper class of a plug-in data source. IPlugInFastQueryValues cannot be implemented in Visual Basic. Its FastQueryValues method is more efficient than the QueryValues method on IPlugInCursorHelper.

This interface is only appropriate for plug-in data sources implemented in C++.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 void fastQueryValues(tagFieldValue values)
          Gets the values for the non-geometry fields in the current record.
 

Method Detail

fastQueryValues

void fastQueryValues(tagFieldValue values)
                     throws IOException,
                            AutomationException
Gets the values for the non-geometry fields in the current record.

Description

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++.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

The field values array is an array of FieldValue structures which represents a row. Each FieldValue structure has an Object (m_value) which is the value of that field. This method is responsible for copying the data from the record into these Objects.

Parameters:
values - A Structure: com.esri.arcgis.geodatabase.tagFieldValue (A com.esri.arcgis.geodatabase.tagFieldValue COM typedef) (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.