com.esri.arcgis.geodatabase
Interface ISQLSyntax

All Superinterfaces:
Serializable
All Known Implementing Classes:
ISQLSyntaxProxy, Sde3Workspace, Sde4Workspace, SqlWorkspace, VersionedWorkspace, Workspace

public interface ISQLSyntax
extends Serializable

Provides access to members that supply information about SQL functionality.

Description

ISQLSyntax is an interface that returns which SQL predicates, clauses, and other database specific constraints are supported by a workspace.

Remarks

Applications should use the ISQLSyntax interface to help them construct SQL queries and where clauses using database-specific clauses, predicates and special characters.

Product Availability

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


Method Summary
 boolean getDelimitedIdentifierCase()
          True if DBMS's quoted identifiers are case sensitive.
 String getFunctionName(int sqlFunc)
          DBMS dependent SQL function names.
 boolean getIdentifierCase()
          True if DBMS's identifiers are case sensitive.
 String getInvalidCharacters()
          The list of invalid characters used in literals (if any).
 String getInvalidStartingCharacters()
          The list of invalid characters used in literals (if any).
 IEnumBSTR getKeywords()
          The list of DBMS specific reserved keywords.
 String getSpecialCharacter(int sqlSC)
          Special DBMS dependent SQL characters.
 boolean getStringComparisonCase()
          True if string comparisons are case sensitive.
 int getSupportedClauses()
          Supported SQL clauses.
 int getSupportedPredicates()
          Supported SQL predicates.
 void parseColumnName(String fullName, String[] dbName, String[] ownerName, String[] tableName, String[] columnName)
          Given a column name, determine its qualification parts.
 void parseTableName(String fullName, String[] dbName, String[] ownerName, String[] tableName)
          Given a table name, determine its qualification parts.
 String qualifyColumnName(String tableName, String columnName)
          Given a table name and column name, returns its fully qualified name.
 String qualifyTableName(String dbName, String ownerName, String tableName)
          Given a database, owner, and table name, return its fully qualified name.
 

Method Detail

qualifyTableName

String qualifyTableName(String dbName,
                        String ownerName,
                        String tableName)
                        throws IOException,
                               AutomationException
Given a database, owner, and table name, return its fully qualified name.

Remarks

Applications should use the QualifyTableName and QualifyColumnName methods to construct fully qualified dataset and column names.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
dbName - The dbName (in)
ownerName - The ownerName (in)
tableName - The tableName (in)
Returns:
The fullName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

qualifyColumnName

String qualifyColumnName(String tableName,
                         String columnName)
                         throws IOException,
                                AutomationException
Given a table name and column name, returns its fully qualified name.

Remarks

Applications should use the QualifyTableName and QualifyColumnName methods to construct fully qualified dataset and column names.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

parseTableName

void parseTableName(String fullName,
                    String[] dbName,
                    String[] ownerName,
                    String[] tableName)
                    throws IOException,
                           AutomationException
Given a table name, determine its qualification parts.

Remarks

Applications should use the ParseTableName method to split the fully qualified name of a table into its components (database, owner, table). ParseTableName can also be used to return the components of any fully qualified name of a dataset such as feature classes, feature datasets, geometric networks and topologies.

Applications that wish to be RDBMS independent should not assume that ‘.’ is the delimiter used to separate the components of a fully qualified dataset name. Use the QualifyTableName method to determine the qualified name of a dataset for a given workspace.

The FullName parameter refers to the fully qualified name of the dataset and is returned by the IDataset::Name property for a dataset in a geodatabase and the IDatasetName::Name property for a dataset name object. Both methods return the fully qualified name for the dataset.

Empty strings will be returned for arguments that do not apply to the underlying DBMS. For example, supplying a FullName parameter of "MyTable" to a Personal or File Geodatabase will result in:

dbName = ""

ownerName = ""

TableName = "MyTable"

While supplying a FullName parameter of "gdb.MyTable" to an ArcSDE Geodatabase on Oracle will result in:

dbName = ""

ownerName = "gdb"

TableName = "MyTable"

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
fullName - The fullName (in)
dbName - The dbName (out: use single element array)
ownerName - The ownerName (out: use single element array)
tableName - The tableName (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

parseColumnName

void parseColumnName(String fullName,
                     String[] dbName,
                     String[] ownerName,
                     String[] tableName,
                     String[] columnName)
                     throws IOException,
                            AutomationException
Given a column name, determine its qualification parts.

Remarks

Applications should use the ParseColumnName method to split the fully qualified name for a column in a table into its components (database, owner, table, column).

Applications that wish to be RDBMS independent should not assume that ‘.’ is the delimiter used to separate the components of a fully qualified dataset name. Use the QualifyColumnName method to determine the qualified name of a column of a table for a given workspace.

The FullName paramter can be returned from the IDataset::Name property for a dataset in a Geodatabase and the IDatasetName::Name property for a dataset name object. Both methods return the fully qualified name for the dataset (the name object for the dataset is itself obtained using the IDataset::FullName property).

Empty strings will be returned for arguments that do not apply to the underlying DBMS. For example, supplying a FullName parameter of "gdb.Greeley_Parcels_1.AREA" to an ArcSDE Geodatabase on Oracle will result in:

dbName = ""

ownerName = "gdb"

TableName = "Greeley_Parcels_1"

columnName = "AREA"

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
fullName - The fullName (in)
dbName - The dbName (out: use single element array)
ownerName - The ownerName (out: use single element array)
tableName - The tableName (out: use single element array)
columnName - The columnName (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFunctionName

String getFunctionName(int sqlFunc)
                       throws IOException,
                              AutomationException
DBMS dependent SQL function names.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
sqlFunc - A com.esri.arcgis.geodatabase.esriSQLFunctionName constant (in)
Returns:
The pSqlFunctionName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSpecialCharacter

String getSpecialCharacter(int sqlSC)
                           throws IOException,
                                  AutomationException
Special DBMS dependent SQL characters.

Description

GetSpecialCharacter returns a String value that indicates which character is used to represent the esriSQLSpecialCharacters value specified.

Remarks

The GetSpecialCharacter can be used to return the DBMS dependent character that represents an SQL special character, including the following:

• esriSQL_WildcardManyMatch ( % in SQL_92, * in Jet 4.0)
• esriSQL_WildcardSingleMatch ( _ in SQL_92, ? in Jet 4.0)
• esriSQL_DelimitedIdentifierPrefix ( " in SQL_92, [ in Jet 4.0)
• esriSQL_DelimitedIdentifierSuffix (" in SQL_92, ] in Jet 4.0)

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
sqlSC - A com.esri.arcgis.geodatabase.esriSQLSpecialCharacters constant (in)
Returns:
The pSpecialChar
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSupportedPredicates

int getSupportedPredicates()
                           throws IOException,
                                  AutomationException
Supported SQL predicates.

Description

GetSupportedPredicates returns a Long value that indicates which of the esriSQLPredicates are supported.

A value of -1 indicates that all predicates are supported by the workspace, while a value of 0 indicates that no predicates are supported by the workspace. Bitwise AND operations can be used with the esriSQLPredicates enumeration's values to determine support for individual predicates.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSupportedClauses

int getSupportedClauses()
                        throws IOException,
                               AutomationException
Supported SQL clauses.

Description

GetSupportedClauses returns a Long value that indicates which of the esriSQLClauses are supported.

A value of -1 indicates that all clauses are supported by the workspace, while a value of 0 indicates that no clauses are supported by the workspace. Bitwise AND operations can be used with the esriSQLClauses enumeration's values to determine support for individual clauses.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getIdentifierCase

boolean getIdentifierCase()
                          throws IOException,
                                 AutomationException
True if DBMS's identifiers are case sensitive.

Description

GetIdentifierCase returns a Boolean indicating whether identifiers are case sensitive in the DBMS of the underlying workspace.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getDelimitedIdentifierCase

boolean getDelimitedIdentifierCase()
                                   throws IOException,
                                          AutomationException
True if DBMS's quoted identifiers are case sensitive.

Description

GetDelimitedIdentifierCase returns a Boolean indicating whether delimited identifiers are case sensitive in the DBMS of the underlying workspace.
An identifier is delimited in most DBMSs with square brackets. A notable exception is Access, which uses quotation marks.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getStringComparisonCase

boolean getStringComparisonCase()
                                throws IOException,
                                       AutomationException
True if string comparisons are case sensitive.

Description

GetStringComparisonCase returns a Boolean indicating whether string comparison is case sensitive in the workspace's DBMS.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getKeywords

IEnumBSTR getKeywords()
                      throws IOException,
                             AutomationException
The list of DBMS specific reserved keywords.

Description

GetKeywords returns a IEnumBStr list of keywords that are specific to the DBMS of the Workspace object used as the query interface for ISQLSyntax .

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getInvalidCharacters

String getInvalidCharacters()
                            throws IOException,
                                   AutomationException
The list of invalid characters used in literals (if any).

Description

GetInvalidCharacters returns a String that contains all the invalid characters for the Workspace object used as the query interface for ISQLSyntax .

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getInvalidStartingCharacters

String getInvalidStartingCharacters()
                                    throws IOException,
                                           AutomationException
The list of invalid characters used in literals (if any).

Description

GetInvalidStartingCharacters returns a String containing all the invalid starting characters for the DBMS that the Workspace object that was used as a query interface for the ISQLSyntax uses.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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