com.esri.arcgis.geodatabase
Interface IQueryDef

All Superinterfaces:
Serializable
All Known Subinterfaces:
IQueryDef2
All Known Implementing Classes:
IQueryDef2Proxy, IQueryDefProxy, QueryDef

public interface IQueryDef
extends Serializable

Provides access to members that control attribute based queries.

Description

IQueryDef sets the parameters needed to create an attribute query. The name of the table and a string defining the where clause are required. An optional list of columns may be included to specify the columns to be retrieved. If no columns are specified, all columns will be returned.

IQueryDef only can be used with ArcSDE, Personal and File Geodatabase data sources. QueryDef cursor are not supported on historical representations of datasets.

Remarks

The IQueryDef interface allows the definition of an attribute query based on one or more tables. Multiple table joins may be defined through the use of this interface.

In order to access the geometry of a feature returned by the query the shape field must be included in the SubFields definition.

If multiple feature classes are specified in the IQueryDef.Tables property it is the application developer's responsibility to ensure that only one shape attribute is specified in the IQueryDef.SubFields property.

Product Availability

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

See Also:
IQueryFilter

Method Summary
 ICursor evaluate()
          Evaluate the query and return a cursor on the result set.
 String getSubFields()
          The comma delimited list of field names for the query.
 String getTables()
          The comma delimited list of table names for the query.
 String getWhereClause()
          The where clause for the query.
 void setSubFields(String subFields)
          The comma delimited list of field names for the query.
 void setTables(String tables)
          The comma delimited list of table names for the query.
 void setWhereClause(String whereClause)
          The where clause for the query.
 

Method Detail

getTables

String getTables()
                 throws IOException,
                        AutomationException
The comma delimited list of table names for the query.

Description

Get or put a comma delimited string of tables for use in the query from the Tables data member.

Remarks

Returns a string containing the name of a single table (or a list of table names when used in a join). When used with an ArcSDE datasource, the table name will be prefixed with the owner name (owner.mytable) if the table is not owned by the current workspace.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Returns:
The tables
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTables

void setTables(String tables)
               throws IOException,
                      AutomationException
The comma delimited list of table names for the query.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
tables - The tables (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSubFields

String getSubFields()
                    throws IOException,
                           AutomationException
The comma delimited list of field names for the query.

Description

SubFields returns or sets a comma delimited list of fields.

Remarks

The following formats are used for the SubFields property of a QueryDef against an ArcSDE datasource:

Format 1: "*"
This returns all fields on all tables. If duplicate column names are found, the field names will be prefixed with the table name (table.field_name).

Format 2: "field1,field2,field3"
Returns only the fields requested. (Separate field names by commas but do not add a space after or before the comma)

Format 3: "table1.*,table2.field1,table3.field2"
Returns all of the fields from table1, field1 from table2 and field 2 from table3.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Returns:
The subFields
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSubFields

void setSubFields(String subFields)
                  throws IOException,
                         AutomationException
The comma delimited list of field names for the query.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
subFields - The subFields (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getWhereClause

String getWhereClause()
                      throws IOException,
                             AutomationException
The where clause for the query.

Remarks

For more information about where clauses, see IQueryFilter.WhereClause.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Returns:
The whereClause
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setWhereClause

void setWhereClause(String whereClause)
                    throws IOException,
                           AutomationException
The where clause for the query.

Remarks

For more information about where clauses, see IQueryFilter.WhereClause.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
whereClause - The whereClause (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

evaluate

ICursor evaluate()
                 throws IOException,
                        AutomationException
Evaluate the query and return a cursor on the result set.

Remarks

The IQueryDef interface is used to set up and define the query and also provides an Evaluate method that is used to execute the query, returning a cursor.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.geodatabase.ICursor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.