com.esri.arcgis.geodatabase
Class IRelQueryTableInfoProxy

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

public class IRelQueryTableInfoProxy
extends com.esri.arcgis.interop.Dispatch
implements IRelQueryTableInfo, Serializable

Provides access to members that provide information about joins.

Remarks

The IRelQueryTableInfo interface provides properties and methods that return information about a RelQueryTable after it has been created.

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
  IRelQueryTableInfoProxy()
           
  IRelQueryTableInfoProxy(Object obj)
           
protected IRelQueryTableInfoProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 ITable getBaseTableOfField(String column)
          Returns the base table for a particular field.
 int getJoinType()
          Type of table join.
 IQueryDef getQueryDef()
          QueryDef used to create the join.
 boolean isHasDirectAccessLookup()
          Indicates if direct access lookup is used by a RelQueryTable to match records between the source and destination tables.
 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

IRelQueryTableInfoProxy

public IRelQueryTableInfoProxy()

IRelQueryTableInfoProxy

public IRelQueryTableInfoProxy(Object obj)
                        throws IOException
Throws:
IOException

IRelQueryTableInfoProxy

protected IRelQueryTableInfoProxy(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

getJoinType

public int getJoinType()
                throws IOException,
                       AutomationException
Type of table join.

Remarks

The JoinType can be either esriLeftInnerJoin or esriLeftOuterJoin. A left outer join ensures that all records in the source are returned. A left inner join will only return rows that have matching key field values. The diagram below illustrates the difference.

When using ArcMap's user interface to join data, you can choose between either type of join. Clicking the advanced button on the join data dialog box will display a dialog box that allows you to choose the join type. Here, the "Keep all records" option refers to a left outer join when the "Keep only matching records" option specifies a left inner join.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getJoinType in interface IRelQueryTableInfo
Returns:
A com.esri.arcgis.geodatabase.esriJoinType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getQueryDef

public IQueryDef getQueryDef()
                      throws IOException,
                             AutomationException
QueryDef used to create the join. This property will be null if the join is done on the client.

Remarks

The QueryDef property returns the query that is used to retrieve the joined data when processing is done on the server. If the join is processed on the client as apposed to a server, the QueryDef property returns a null value.

If all tables involved are stored on the same ArcSDE, Personal or File Geodatabase, the processing can be performed by the server, which is normally faster. The JoinType must also be esriLeftInnerJoin in order for processing to occur on the server. In any other case, processing occurs on the client.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getQueryDef in interface IRelQueryTableInfo
Returns:
A reference to a com.esri.arcgis.geodatabase.IQueryDef
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getBaseTableOfField

public ITable getBaseTableOfField(String column)
                           throws IOException,
                                  AutomationException
Returns the base table for a particular field.

Remarks

The GetBaseTableofField method will return the underlying Table object that is associated with a field in a RelQueryTable. To ensure that the column will be found, provide a fully qualified field name when executing this method.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getBaseTableOfField in interface IRelQueryTableInfo
Parameters:
column - The column (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITable
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHasDirectAccessLookup

public boolean isHasDirectAccessLookup()
                                throws IOException,
                                       AutomationException
Indicates if direct access lookup is used by a RelQueryTable to match records between the source and destination tables.

Remarks

The HasDirectAccessLookup property returns true if the destination table supports the IRandomAccessCursor interface and the source table has an ObjectID field. This interface allows for faster data access and therefore better join performance. Tables from shapefile and ArcGIS for Desktop Advanced workspace factories support this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isHasDirectAccessLookup in interface IRelQueryTableInfo
Returns:
The directAccess
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.