com.esri.arcgis.geodatabase
Class TableQueryName

java.lang.Object
  extended by com.esri.arcgis.geodatabase.TableQueryName
All Implemented Interfaces:
IDatasetName, IQueryName, IQueryName2, com.esri.arcgis.interop.RemoteObjRef, IName, IPersist, IPersistStream, Externalizable, Serializable

public class TableQueryName
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IName, IDatasetName, IQueryName, IQueryName2, IPersist, IPersistStream, Externalizable

ESRI Table Query Name object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
TableQueryName()
          Constructs a TableQueryName using ArcGIS Engine.
TableQueryName(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
TableQueryName theTableQueryName = (TableQueryName) obj;
 
Method Summary
 boolean equals(Object o)
          Compare this object with another
 String getCategory()
          The category of the dataset.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 String getName()
          The name of the dataset.
 String getNameString()
          The name string of the object.
 String getPrimaryKey()
          The primary key field names.
 IQueryDef getQueryDef()
          QueryDef of feature class name.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 IEnumDatasetName getSubsetNames()
          Subset names contained within this dataset name.
 int getType()
          The type of the dataset.
 IWorkspaceName getWorkspaceName()
          The WorkspaceName of the DatasetName.
 int hashCode()
          the hashcode for this object
 boolean isCopyLocally()
          Indicates if the data must be copied locally.
 void isDirty()
          isDirty
 void load(IStream pstm)
          load
 Object open()
          Opens the object referred to by this name.
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void setCategory(String category)
          The category of the dataset.
 void setCopyLocally(boolean copyLocally)
          Indicates if the data must be copied locally.
 void setName(String name)
          The name of the dataset.
 void setNameString(String nameString)
          The name string of the object.
 void setPrimaryKey(String fieldNames)
          The primary key field names.
 void setQueryDef(IQueryDef queryDef)
          QueryDef of feature class name.
 void setWorkspaceNameByRef(IWorkspaceName workspaceName)
          The WorkspaceName of the DatasetName.
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

TableQueryName

public TableQueryName()
               throws IOException,
                      UnknownHostException
Constructs a TableQueryName using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

TableQueryName

public TableQueryName(Object obj)
               throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
TableQueryName theTableQueryName = (TableQueryName) obj;

Construct a TableQueryName using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to TableQueryName.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

setNameString

public void setNameString(String nameString)
                   throws IOException,
                          AutomationException
The name string of the object.

Remarks

The NameString property is reserved for future use. When implemented, it will return a string representation of the locational component of the name object that may be persisted by applications.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setNameString in interface IName
Parameters:
nameString - The nameString (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNameString

public String getNameString()
                     throws IOException,
                            AutomationException
The name string of the object.

Remarks

The NameString property is reserved for future use. When implemented, it will return a string representation of the locational component of the name object that may be persisted by applications.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNameString in interface IName
Returns:
The nameString
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

open

public Object open()
            throws IOException,
                   AutomationException
Opens the object referred to by this name.

Remarks

The Open method lets you instantiate the actual object given the name object.

Note: Opening a feature class that participates in a topology or geometric network will also open all other feature classes participating in the topology or geometric network in memory.

Example:

IName   pName = pFeatureClassName; 
pFeatureClass = new IFeatureClassProxy(pName.open());

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
open in interface IName
Returns:
A reference to another Object (IUnknown)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getName

public String getName()
               throws IOException,
                      AutomationException
The name of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getName in interface IDatasetName
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setName

public void setName(String name)
             throws IOException,
                    AutomationException
The name of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setName in interface IDatasetName
Parameters:
name - The name (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getType

public int getType()
            throws IOException,
                   AutomationException
The type of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getCategory

public String getCategory()
                   throws IOException,
                          AutomationException
The category of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCategory in interface IDatasetName
Returns:
The category
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCategory

public void setCategory(String category)
                 throws IOException,
                        AutomationException
The category of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setCategory in interface IDatasetName
Parameters:
category - The category (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getWorkspaceName

public IWorkspaceName getWorkspaceName()
                                throws IOException,
                                       AutomationException
The WorkspaceName of the DatasetName.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setWorkspaceNameByRef

public void setWorkspaceNameByRef(IWorkspaceName workspaceName)
                           throws IOException,
                                  AutomationException
The WorkspaceName of the DatasetName.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setWorkspaceNameByRef in interface IDatasetName
Parameters:
workspaceName - A reference to a com.esri.arcgis.geodatabase.IWorkspaceName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSubsetNames

public IEnumDatasetName getSubsetNames()
                                throws IOException,
                                       AutomationException
Subset names contained within this dataset name.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getQueryDef

public IQueryDef getQueryDef()
                      throws IOException,
                             AutomationException
QueryDef of feature class name.

Description

public void IQueryName__(IWorkspace workspace)
{
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
IQueryDef queryDef = featureWorkspace.CreateQueryDef();
//examples of query def construction

//Valid sub fields
queryDef.SubFields = "Parcel.Area, Parcel.Parcel_ID";
//Invalid sub fields
//queryDef.SubFields = "max(Parcel.Area) as Max_Area";

//Valid tables
queryDef.Tables = "Parcels, Owners";
//Invalid tables
//queryDef.Tables = "Parcels p, Owners o";
//queryDef.Tables = "Owners INNER JOIN parcels ON Owners.Parcel_id = parcels.Parcel_id";

//Valid where clause
queryDef.WhereClause = "Owner.Name like '%Smith%' and Owner.Address like '%Main Street%'";
//Invalid where clause
//queryDef.WhereClause = "Owner.Name like '%Smith%' group by Owner.City_Address";

//set QueryDef property
IQueryName queryName = new TableQueryNameClass();
queryName.QueryDef = queryDef;
}

Remarks

The IQueryDef::Subfields, IQueryDef::Tables and IQueryDef::WhereClause properties of the QueryDef are used to generate a SQL statement. This is executed against the database to return the rows represented by the table or feature class opened from the name object. If the QueryDef properties are not set properly, you may get errors or incorrect results. The following describes how to define these properties properly:

IQueryDef::Subfields - This must be a comma delimited list of field names or a * to indicate all columns. Column aliases and functions are invalid.

IQueryDef::Tables - This needs to be a comma delimited list of tables. Join statements or table aliases are invalid.

IQueryDef::WhereClause - Most WhereClauses are valid, but additonal statements like Order by and Group by are not.


See the IQueryDef interface for more information on QueryDefs.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getQueryDef in interface IQueryName
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.

setQueryDef

public void setQueryDef(IQueryDef queryDef)
                 throws IOException,
                        AutomationException
QueryDef of feature class name.

Description

public void IQueryName__(IWorkspace workspace)
{
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
IQueryDef queryDef = featureWorkspace.CreateQueryDef();
//examples of query def construction

//Valid sub fields
queryDef.SubFields = "Parcel.Area, Parcel.Parcel_ID";
//Invalid sub fields
//queryDef.SubFields = "max(Parcel.Area) as Max_Area";

//Valid tables
queryDef.Tables = "Parcels, Owners";
//Invalid tables
//queryDef.Tables = "Parcels p, Owners o";
//queryDef.Tables = "Owners INNER JOIN parcels ON Owners.Parcel_id = parcels.Parcel_id";

//Valid where clause
queryDef.WhereClause = "Owner.Name like '%Smith%' and Owner.Address like '%Main Street%'";
//Invalid where clause
//queryDef.WhereClause = "Owner.Name like '%Smith%' group by Owner.City_Address";

//set QueryDef property
IQueryName queryName = new TableQueryNameClass();
queryName.QueryDef = queryDef;
}

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setQueryDef in interface IQueryName
Parameters:
queryDef - A reference to a com.esri.arcgis.geodatabase.IQueryDef (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCopyLocally

public void setCopyLocally(boolean copyLocally)
                    throws IOException,
                           AutomationException
Indicates if the data must be copied locally.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setCopyLocally in interface IQueryName2
Parameters:
copyLocally - The copyLocally (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IQueryName2.getPrimaryKey(), IQueryName2

isCopyLocally

public boolean isCopyLocally()
                      throws IOException,
                             AutomationException
Indicates if the data must be copied locally.

Remarks

By default, CopyLocally is set to False.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isCopyLocally in interface IQueryName2
Returns:
The copyLocally
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPrimaryKey

public void setPrimaryKey(String fieldNames)
                   throws IOException,
                          AutomationException
The primary key field names.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setPrimaryKey in interface IQueryName2
Parameters:
fieldNames - The fieldNames (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPrimaryKey

public String getPrimaryKey()
                     throws IOException,
                            AutomationException
The primary key field names.

Remarks

The name of the field or fields to use for assigning Object ID's to the rows in the QueryDef. Provide a comma delimited string of field names for cases where more than one field is needed to provide a unique value for each row (i.e. composite keys)

Always provide fully qualified field names.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getPrimaryKey in interface IQueryName2
Returns:
The fieldNames
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassID

public void getClassID(GUID[] pClassID)
                throws IOException,
                       AutomationException
getClassID

Description

IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getClassID in interface IPersist
Parameters:
pClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public void isDirty()
             throws IOException,
                    AutomationException
isDirty

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isDirty in interface IPersistStream
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

load

public void load(IStream pstm)
          throws IOException,
                 AutomationException
load

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
load in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

save

public void save(IStream pstm,
                 int fClearDirty)
          throws IOException,
                 AutomationException
save

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
save in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
fClearDirty - The fClearDirty (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeMax

public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
                throws IOException,
                       AutomationException
getSizeMax

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSizeMax in interface IPersistStream
Parameters:
pcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException