com.esri.arcgis.geodatabase
Class IPlugInFastQueryValuesProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.geodatabase.IPlugInFastQueryValuesProxy
All Implemented Interfaces:
IPlugInFastQueryValues, Externalizable, Serializable

public class IPlugInFastQueryValuesProxy
extends com.esri.arcgis.interop.Dispatch
implements IPlugInFastQueryValues, 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.

See Also:
Serialized Form

Field Summary
 boolean noncastable
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, objRef
 
Constructor Summary
  IPlugInFastQueryValuesProxy()
           
  IPlugInFastQueryValuesProxy(Object obj)
           
protected IPlugInFastQueryValuesProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 void fastQueryValues(tagFieldValue values)
          Gets the values for the non-geometry fields in the current record.
 void removeListener(String iidStr, Object theListener)
           
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, constructVtblPosTable, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, getVtblPos, hashCode, initDispatch, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, optimizedVtblInvoke, queryInterface, readExternal, release, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

noncastable

public boolean noncastable
Constructor Detail

IPlugInFastQueryValuesProxy

public IPlugInFastQueryValuesProxy()

IPlugInFastQueryValuesProxy

public IPlugInFastQueryValuesProxy(Object obj)
                            throws IOException
Throws:
IOException

IPlugInFastQueryValuesProxy

protected IPlugInFastQueryValuesProxy(Object obj,
                                      String iid)
                               throws IOException
Throws:
IOException
Method Detail

addListener

public void addListener(String iidStr,
                        Object theListener,
                        Object theSource)
                 throws IOException
Overrides:
addListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

fastQueryValues

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

Specified by:
fastQueryValues in interface IPlugInFastQueryValues
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.