ca.idms.jdbc
Class IdmsDatabaseMetaData

java.lang.Object
  extended by ca.idms.io.TraceObject
      extended by ca.idms.jdbc.IdmsJdbcObject
          extended by ca.idms.jdbc.IdmsDatabaseMetaData
All Implemented Interfaces:
Trace, SQLState, java.sql.DatabaseMetaData, java.sql.Wrapper

public class IdmsDatabaseMetaData
extends IdmsJdbcObject
implements java.sql.DatabaseMetaData

This class provides information about the database as a whole.

Many of the methods here return lists of information in ResultSets. You can use the normal ResultSet methods such as getString and getInt to retrieve the data from these ResultSets. If a given form of metadata is not available, these methods should throw a SQLException.

Some of these methods take arguments that are String patterns. These arguments all have names such as fooPattern. Within a pattern String, "%" means match any substring of 0 or more characters, and "_" means match any one character. Only metadata entries matching the search pattern are returned. If a search pattern argument is set to a null ref, it means that argument's criteria should be dropped from the search.

A SQLException will be thrown if a driver does not support a meta data method. In the case of methods that return a ResultSet, either a ResultSet (which may be empty) is returned or a SQLException is thrown.


Field Summary
static int ATTRIBUTES
           
static int BEST_ROWID
           
static int CATALOGS
           
static int CLIENT_INFO
           
static int COLUMN_PRIVILEGES
           
static int COLUMNS
           
static int CROSS_REFERENCE
           
static int EMPTY
           
static int EXPORTED_KEYS
           
static int FUNCTION_COLUMNS
           
static int FUNCTIONS
           
static int IMPORTED_KEYS
           
static int INDEX_INFO
           
static int MAX_QUERY
           
static int PRIMARY_KEYS
           
static int PROCEDURE_COLUMNS
           
static int PROCEDURES
           
static int SCHEMAS
           
static int SUPER_TABLES
           
static int SUPER_TYPES
           
static int TABLE
           
static int TABLE_COLUMNS
           
static int TABLE_PRIVILEGES
           
static int TABLE_TYPES
           
static int TABLES
           
static int TYPE_INFO
           
static int UDT
           
static int VERSION_COLUMNS
           
 
Fields inherited from class ca.idms.jdbc.IdmsJdbcObject
FAKE_METHODS, FAKE_SUPPORT, fakeSupport, MESSAGES
 
Fields inherited from class ca.idms.io.TraceObject
exclude, EXCLUDE, FALSE, include, INCLUDE, logWriter, PREFIX, PROPERTIES_FILE, PROPERTIES_KEY, snap, SNAP, SNAP_BYTES, SNAP_NATIVE, SNAP_OBJECT, SNAP_SQL, snapBytes, snapNative, snapObject, snapSql, stub, trace, TRACE, TRACE_FILE, TRACE_LIFE, TRACE_NATIVE, TRACE_PRODUCT, traceLife, traceNative, traceStream, TRUE
 
Fields inherited from interface java.sql.DatabaseMetaData
attributeNoNulls, attributeNullable, attributeNullableUnknown, bestRowNotPseudo, bestRowPseudo, bestRowSession, bestRowTemporary, bestRowTransaction, bestRowUnknown, columnNoNulls, columnNullable, columnNullableUnknown, functionColumnIn, functionColumnInOut, functionColumnOut, functionColumnResult, functionColumnUnknown, functionNoNulls, functionNoTable, functionNullable, functionNullableUnknown, functionResultUnknown, functionReturn, functionReturnsTable, importedKeyCascade, importedKeyInitiallyDeferred, importedKeyInitiallyImmediate, importedKeyNoAction, importedKeyNotDeferrable, importedKeyRestrict, importedKeySetDefault, importedKeySetNull, procedureColumnIn, procedureColumnInOut, procedureColumnOut, procedureColumnResult, procedureColumnReturn, procedureColumnUnknown, procedureNoNulls, procedureNoResult, procedureNullable, procedureNullableUnknown, procedureResultUnknown, procedureReturnsResult, sqlStateSQL, sqlStateSQL99, sqlStateXOpen, tableIndexClustered, tableIndexHashed, tableIndexOther, tableIndexStatistic, typeNoNulls, typeNullable, typeNullableUnknown, typePredBasic, typePredChar, typePredNone, typeSearchable, versionColumnNotPseudo, versionColumnPseudo, versionColumnUnknown
 
Fields inherited from interface ca.idms.qcli.SQLState
SQL_00000, SQL_01000, SQL_01004, SQL_07001, SQL_07009, SQL_08001, SQL_08002, SQL_08003, SQL_08004, SQL_08006, SQL_08007, SQL_0A000, SQL_21000, SQL_22000, SQL_22001, SQL_22003, SQL_22005, SQL_22007, SQL_24000, SQL_25000, SQL_3C000, SQL_40000, SQL_42000, SQL_HY000, SQL_HY004, SQL_HY009, SQL_HY010, SQL_HY024, SQL_HY106, SQL_HYC00
 
Method Summary
 boolean allProceduresAreCallable()
          IDMS supports CALL starting with 15.0.
 boolean allTablesAreSelectable()
          The current user has SELECT access when the standard the ACCESSIBLE_TABLES is used for getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[]).
 boolean autoCommitFailureClosesAllResultSets()
          CA IDMS closes all result sets if a commit failure occurs.
 boolean dataDefinitionCausesTransactionCommit()
          DDL does not force the transaction to commit.
 boolean dataDefinitionIgnoredInTransactions()
          Indicates that DDL is not ignored within a transaction.
 boolean deletesAreDetected(int param)
          Not currently supported.
 boolean doesMaxRowSizeIncludeBlobs()
          IDMS does not support BLOBs.
protected  void finalize()
          Cleans up when the IDMS JDBC driver object goes away.
protected  java.lang.Object get(java.lang.reflect.Field f)
          Allows the default snap method access to non-public variables.
 java.sql.ResultSet getAttributes(java.lang.String str, java.lang.String str1, java.lang.String str2, java.lang.String str3)
          IDMS does not support user defined types.
 java.sql.ResultSet getBestRowIdentifier(java.lang.String catalog, java.lang.String schema, java.lang.String table, int scope, boolean nullable)
          Get a description of a table's optimal set of columns that uniquely identifies a row.
 java.sql.ResultSet getCatalogs()
          The "CATALOG" name is the CURRENT DATABASE name.
 java.lang.String getCatalogSeparator()
          IDMS does not support catalogs in identifiers.
 java.lang.String getCatalogTerm()
          IDMS does not support catalogs in identifiers.
 java.sql.ResultSet getClientInfoProperties()
          Retrieves a list of supported ClientInfo properties
 java.sql.ResultSet getColumnPrivileges(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String columnNamePattern)
          IDMS does not currently support column privileges.
 java.sql.ResultSet getColumns(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)
          Get a description of table columns available in a catalog.
 java.sql.Connection getConnection()
          Gets the Connection that owns this object.
 java.sql.ResultSet getCrossReference(java.lang.String primaryCatalog, java.lang.String primarySchema, java.lang.String primaryTable, java.lang.String foreignCatalog, java.lang.String foreignSchema, java.lang.String foreignTable)
          Returns a description of the foreign key columns in the given foreign key table that reference the primary key columns of the given primary key table.
 int getDatabaseMajorVersion()
          Gets the IDMS major release.
 int getDatabaseMinorVersion()
          Gets the IDMS minor release.
 java.lang.String getDatabaseProductName()
          Gets the database product name.
 java.lang.String getDatabaseProductVersion()
          Gets the database product version.
 int getDefaultTransactionIsolation()
          Gets the database's default transaction isolation level.
 int getDriverMajorVersion()
          Gets the JDBC driver product major version number.
 int getDriverMinorVersion()
          Gets the JDBC driver product minor version number.
 java.lang.String getDriverName()
          Gets the JDBC driver product name.
 java.lang.String getDriverVersion()
          Gets the JDBC driver product version.
 java.sql.ResultSet getExportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
          Returns a description of the foreign key columns that reference the given table's primary key columns.
 java.lang.String getExtraNameCharacters()
          Get all the "extra" characters that can be used in unquoted identifier names (those beyond a-z, A-Z, 0-9 and _).
 java.sql.ResultSet getFunctionColumns(java.lang.String catalog, java.lang.String schema, java.lang.String function, java.lang.String column)
          Gets a description of user or system function parameters available in a catalog.
 java.sql.ResultSet getFunctions(java.lang.String c, java.lang.String s, java.lang.String f)
          Returns a ResultSet which represents system or user functions defined in the IDMS system.
 java.lang.String getIdentifierQuoteString()
          IDMS uses a double quote character.
 java.sql.ResultSet getImportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
          Returns a description of the primary key columns referenced by the given table's foreign keys.
 java.sql.ResultSet getIndexInfo(java.lang.String catalog, java.lang.String schema, java.lang.String table, boolean unique, boolean approximate)
          Get a description of a table's indices and statistics.
 int getJDBCMajorVersion()
          Gets the major version of JDBC that IDMS supports.
 int getJDBCMinorVersion()
          Gets the minor version of JDBC that IDMS supports.
 int getMaxBinaryLiteralLength()
          IDMS has no number of hex characters allowed in an inline binary literal.
 int getMaxCatalogNameLength()
          IDMS does not currently support catalogs in identifiers.
 int getMaxCharLiteralLength()
          IDMS has no specific max length for a character literal.
 int getMaxColumnNameLength()
          Gets the limit on column name length.
 int getMaxColumnsInGroupBy()
          Gets the maximum number of columns in a GROUP BY clause.
 int getMaxColumnsInIndex()
          Gets the maximum number of columns allowed in an index.
 int getMaxColumnsInOrderBy()
          Gets the maximum number of columns in an ORDER BY clause.
 int getMaxColumnsInSelect()
          Gets the maximum number of columns in a SELECT list.
 int getMaxColumnsInTable()
          Gets the maximum number of columns in a table.
 int getMaxConnections()
          IDMS has no specific limit for connnections.
 int getMaxCursorNameLength()
          Gets the maximum cursor name length.
 int getMaxIndexLength()
          Gets the maximum length of an index (in bytes).
 int getMaxProcedureNameLength()
          Gets the maximum procedure name length.
 int getMaxRowSize()
          Gets the maximum length of a single row.
 int getMaxSchemaNameLength()
          Gets the maximum schema name length.
 int getMaxStatementLength()
          Gets the maximum length of a SQL statement.
 int getMaxStatements()
          Gets the maximum number of Statements that can be open to CA IDMS at one time.
 int getMaxTableNameLength()
          Gets the maximum length of a table name.
 int getMaxTablesInSelect()
          Gets the maximum number of tables in a SELECT.
 int getMaxUserNameLength()
          Gets the maximum length of a user name.
 java.lang.String getNumericFunctions()
          Gets a comma separated list of math functions.
 java.sql.ResultSet getPrimaryKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
          Returns a description of the given table's primary key columns.
 java.sql.ResultSet getProcedureColumns(java.lang.String catalog, java.lang.String schema, java.lang.String procedure, java.lang.String column)
          Gets a description of procedures available in a catalog.
 java.sql.ResultSet getProcedures(java.lang.String catalog, java.lang.String schema, java.lang.String procedure)
          Gets a description of procedures available in a catalog.
 java.lang.String getProcedureTerm()
          Gets the IDMS term for PROCEDURE.
 int getResultSetHoldability()
          Gets the default holdability for this database.
 java.sql.RowIdLifetime getRowIdLifetime()
          Returns the expected lifetime of a RowId value.
 java.sql.ResultSet getSchemas()
          Gets the schema names available in this database.
 java.sql.ResultSet getSchemas(java.lang.String cat, java.lang.String schema)
          Retrieves the schema names available in this database.
 java.lang.String getSchemaTerm()
          Gets the IDMS term for SCHEMA.
 java.lang.String getSearchStringEscape()
          This is the string that can be used to escape '_' or '%' in the string pattern style catalog search parameters.
 java.lang.String getSQLKeywords()
          Gets a comma separated list of all a database's SQL keywords that are NOT also SQL92 keywords.
 int getSQLStateType()
          The SQLSTATEs that IDMS supports.
 java.lang.String getStringFunctions()
          Gets a comma separated list of string functions.
 java.sql.ResultSet getSuperTables(java.lang.String str, java.lang.String str1, java.lang.String str2)
          IDMS does not support user defined types.
 java.sql.ResultSet getSuperTypes(java.lang.String str, java.lang.String str1, java.lang.String str2)
          IDMS does not support user defined types.
 java.lang.String getSystemFunctions()
          Gets a comma separated list of system functions.
 java.sql.ResultSet getTablePrivileges(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern)
          Table privileges are not currently available from the IDMS catalog.
 java.sql.ResultSet getTables(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String[] types)
          Get a description of tables available in a catalog.
 java.sql.ResultSet getTableTypes()
          Gets the table types available in this database.
 java.lang.String getTimeDateFunctions()
          Gets a comma separated list of time and date functions.
 java.sql.ResultSet getTypeInfo()
          Gets a description of all the standard SQL types supported by this database.
 java.sql.ResultSet getUDTs(java.lang.String str, java.lang.String str1, java.lang.String str2, int[] values)
          IDMS does not support user defined types.
 java.lang.String getURL()
          Gets the url for this database.
 java.lang.String getUserName()
          Gets the user id used to sign on.
 java.sql.ResultSet getVersionColumns(java.lang.String catalog, java.lang.String schema, java.lang.String table)
          IDMS does not support "version" columns.
 boolean insertsAreDetected(int param)
          Not currently supported.
 boolean isCatalogAtStart()
          IDMS does not support catalogs in identifiers.
 boolean isReadOnly()
          Checks the read only option.
 boolean locatorsUpdateCopy()
          IDMS does not support locators.
 boolean nullPlusNonNullIsNull()
          For IDMS concatenations between NULL and non-NULL values are NULL.
 boolean nullsAreSortedAtEnd()
          NULL values are not sorted at the end regardless of sort order.
 boolean nullsAreSortedAtStart()
          NULL values not sorted at the start regardless of sort order.
 boolean nullsAreSortedHigh()
          NULL values are sorted high.
 boolean nullsAreSortedLow()
          NULL values are not sorted low.
 boolean othersDeletesAreVisible(int param)
          Not currently supported.
 boolean othersInsertsAreVisible(int param)
          Not implemented yet...
 boolean othersUpdatesAreVisible(int param)
          Not currently supported.
 boolean ownDeletesAreVisible(int param)
          Not currently supported.
 boolean ownInsertsAreVisible(int param)
          Not currently supported.
 boolean ownUpdatesAreVisible(int param)
          Not currently supported.
 boolean storesLowerCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in lower case?
 boolean storesLowerCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in lower case?
 boolean storesMixedCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in mixed case?
 boolean storesMixedCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in mixed case?
 boolean storesUpperCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in upper case?
 boolean storesUpperCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in upper case?
 boolean supportsAlterTableWithAddColumn()
          IDMS supports "ALTER TABLE" with add column.
 boolean supportsAlterTableWithDropColumn()
          IDMS does not support "ALTER TABLE" with drop column.
 boolean supportsANSI92EntryLevelSQL()
          IDMS supports the ANSI92 entry level SQL grammar.
 boolean supportsANSI92FullSQL()
          IDMS does not support the ANSI92 full SQL grammar.
 boolean supportsANSI92IntermediateSQL()
          IDMS does not fullty support the ANSI92 intermediate SQL grammar.
 boolean supportsBatchUpdates()
          The IDMS JDBC driver supports batch updates.
 boolean supportsCatalogsInDataManipulation()
          IDMS does not support catalogs in identifiers.
 boolean supportsCatalogsInIndexDefinitions()
          IDMS does not support catalogs in identifiers.
 boolean supportsCatalogsInPrivilegeDefinitions()
          IDMS does not support catalogs in identifiers.
 boolean supportsCatalogsInProcedureCalls()
          IDMS does not support catalogs in identifiers.
 boolean supportsCatalogsInTableDefinitions()
          IDMS does not support catalogs in identifiers.
 boolean supportsColumnAliasing()
          IDMS supports column alias names.
 boolean supportsConvert()
          IDMS does not support the CONVERT function.
 boolean supportsConvert(int fromType, int toType)
          IDMS does not support the CONVERT function.
 boolean supportsCoreSQLGrammar()
          IDMS supports the the ODBC Core SQL grammar.
 boolean supportsCorrelatedSubqueries()
          IDMS supports correlated subqueries.
 boolean supportsDataDefinitionAndDataManipulationTransactions()
          IDMS supports both DDL and DML within a transaction.
 boolean supportsDataManipulationTransactionsOnly()
          IDMS supports DML within a transaciton..
 boolean supportsDifferentTableCorrelationNames()
          IDMS does not require correlation names to be different from the table names.
 boolean supportsExpressionsInOrderBy()
          IDMS does not supprt expressions in "ORDER BY" lists.
 boolean supportsExtendedSQLGrammar()
          IDMS does not fully support the ODBC Extended SQL grammar.
 boolean supportsFullOuterJoins()
          IDMS supports full outer joins only in r17 and later.
 boolean supportsGetGeneratedKeys()
          IDMS does not support generated keys.
 boolean supportsGroupBy()
          IDMS supports "GROUP BY".
 boolean supportsGroupByBeyondSelect()
          IDMS does not require "GROUP BY" to use columns in the SELECT.
 boolean supportsGroupByUnrelated()
          IDMS does not require "GROUP BY" to use columns in the SELECT.
 boolean supportsIntegrityEnhancementFacility()
          IDMS supports referential integrity with minor variations in the ANSI syntax.
 boolean supportsLikeEscapeClause()
          IDMS supports an escape character in LIKE clauses.
 boolean supportsLimitedOuterJoins()
          IDMS supports outer joins with non standard syntax.
 boolean supportsMinimumSQLGrammar()
          IDMS supports the ODBC Minimum SQL grammar.
 boolean supportsMixedCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case sensitive and as a result store them in mixed case?
 boolean supportsMixedCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case?
 boolean supportsMultipleOpenResults()
          Starting with r17 CA IDMS supports multiple open ResultSets.
 boolean supportsMultipleResultSets()
          Starting with r17 CA IDMS supports multiple ResultSets.
 boolean supportsMultipleTransactions()
          IDMS supports multiple transactions open at once (on different connections).
 boolean supportsNamedParameters()
          IDMS supports named parameters as defined by JDBC, except when the SQL syntax string specifies IDMS proprietary keyword parameters.
 boolean supportsNonNullableColumns()
          IDMS allows columns to be defined as NOT NULL.
 boolean supportsOpenCursorsAcrossCommit()
          IDMS can optionally keep cursors open across commits.
 boolean supportsOpenCursorsAcrossRollback()
          IDMS closes all open cursors on rollback.
 boolean supportsOpenStatementsAcrossCommit()
          IDMS keeps statements open across commits.
 boolean supportsOpenStatementsAcrossRollback()
          IDMS keeps statements open across rollbacks.
 boolean supportsOrderByUnrelated()
          IDMS does not require "ORDER BY" to use columns in the SELECT.
 boolean supportsOuterJoins()
          IDMS supports a form of outer join.
 boolean supportsPositionedDelete()
          IDMS supports dynamic positioned DELETE starting with release 14.0.
 boolean supportsPositionedUpdate()
          IDMS supports dynamic positioned UPDATE starting with release 14.0.
 boolean supportsResultSetConcurrency(int param, int param1)
          Not currently supported.
 boolean supportsResultSetHoldability(int param)
          Reports support for holdability.
 boolean supportsResultSetType(int param)
          Not currently supported.
 boolean supportsSavepoints()
          IDMS does not support Savepoints.
 boolean supportsSchemasInDataManipulation()
          IDMS allows a schema name in in a data manipulation statement.
 boolean supportsSchemasInIndexDefinitions()
          IDMS allows schema names in an index definition statement.
 boolean supportsSchemasInPrivilegeDefinitions()
          IDMS allows schema names in a privilege definition statement.
 boolean supportsSchemasInProcedureCalls()
          IDMS supports procedures starting with release 15.0.
 boolean supportsSchemasInTableDefinitions()
          IDMS allows schema names in a table definition statement.
 boolean supportsSelectForUpdate()
          IDMS supports dynamic SELECT FOR UPDATE starting with release 14.0.
 boolean supportsStatementPooling()
          IDMS Server supports JDBC statement pooling, although starting with release 16.0 IDMS itself supports a global statement cache, which provides most of the performance benefits generally associated with statement pooling in JDBC.
 boolean supportsStoredFunctionsUsingCallSyntax()
          A function in IDMS can only be invoked within value expressions and cannot be the object of a Call command.
 boolean supportsStoredProcedures()
          IDMS supports CALL starting with 15.0.
 boolean supportsSubqueriesInComparisons()
          IDMS supports subqueries in comparison expressions.
 boolean supportsSubqueriesInExists()
          IDMS supports subqueries in EXISTS expressions.
 boolean supportsSubqueriesInIns()
          IDMS supports subqueries in IN statements.
 boolean supportsSubqueriesInQuantifieds()
          IDMS supports subqueries in quantified expressions.
 boolean supportsTableCorrelationNames()
          IDMS supports table correlation names.
 boolean supportsTransactionIsolationLevel(int level)
          Indicates that IDMS supports the given transaction isolation level.
 boolean supportsTransactions()
          IDMS supports transactions.
 boolean supportsUnion()
          IDMS supports UNION.
 boolean supportsUnionAll()
          IDMS supports SQL UNION ALL.
 boolean updatesAreDetected(int param)
          Not currently supported.
 boolean usesLocalFilePerTable()
          IDMS does not use a file for any table.
 boolean usesLocalFiles()
          IDMS does not store tables in a local file.
 
Methods inherited from class ca.idms.jdbc.IdmsJdbcObject
clearWarnings, getWarnings, hasCursor, hasUpdate, isStarted, isSuspended, isWrapperFor, notifyStatementError, unwrap
 
Methods inherited from class ca.idms.io.TraceObject
getBoolean, getClasses, getInteger, getProperty, listProperties, message, parseList, print, print, print, println, println, snap, snap, snap, snap, snap, snap, snap, toHex, toHex, toHex, toHex, toHex, toString, trace, trace, trace, trace, trace, trace, traceEntry, unloadProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
 

Field Detail

EMPTY

public static final int EMPTY
See Also:
Constant Field Values

CATALOGS

public static final int CATALOGS
See Also:
Constant Field Values

SCHEMAS

public static final int SCHEMAS
See Also:
Constant Field Values

PROCEDURES

public static final int PROCEDURES
See Also:
Constant Field Values

PROCEDURE_COLUMNS

public static final int PROCEDURE_COLUMNS
See Also:
Constant Field Values

TABLES

public static final int TABLES
See Also:
Constant Field Values

TABLE

public static final int TABLE
See Also:
Constant Field Values

TABLE_TYPES

public static final int TABLE_TYPES
See Also:
Constant Field Values

TABLE_PRIVILEGES

public static final int TABLE_PRIVILEGES
See Also:
Constant Field Values

COLUMNS

public static final int COLUMNS
See Also:
Constant Field Values

TYPE_INFO

public static final int TYPE_INFO
See Also:
Constant Field Values

COLUMN_PRIVILEGES

public static final int COLUMN_PRIVILEGES
See Also:
Constant Field Values

BEST_ROWID

public static final int BEST_ROWID
See Also:
Constant Field Values

INDEX_INFO

public static final int INDEX_INFO
See Also:
Constant Field Values

VERSION_COLUMNS

public static final int VERSION_COLUMNS
See Also:
Constant Field Values

PRIMARY_KEYS

public static final int PRIMARY_KEYS
See Also:
Constant Field Values

IMPORTED_KEYS

public static final int IMPORTED_KEYS
See Also:
Constant Field Values

EXPORTED_KEYS

public static final int EXPORTED_KEYS
See Also:
Constant Field Values

CROSS_REFERENCE

public static final int CROSS_REFERENCE
See Also:
Constant Field Values

ATTRIBUTES

public static final int ATTRIBUTES
See Also:
Constant Field Values

SUPER_TABLES

public static final int SUPER_TABLES
See Also:
Constant Field Values

SUPER_TYPES

public static final int SUPER_TYPES
See Also:
Constant Field Values

UDT

public static final int UDT
See Also:
Constant Field Values

CLIENT_INFO

public static final int CLIENT_INFO
See Also:
Constant Field Values

FUNCTIONS

public static final int FUNCTIONS
See Also:
Constant Field Values

FUNCTION_COLUMNS

public static final int FUNCTION_COLUMNS
See Also:
Constant Field Values

TABLE_COLUMNS

public static final int TABLE_COLUMNS
See Also:
Constant Field Values

MAX_QUERY

public static final int MAX_QUERY
See Also:
Constant Field Values
Method Detail

finalize

protected void finalize()
                 throws java.lang.Throwable
Cleans up when the IDMS JDBC driver object goes away.

Overrides:
finalize in class TraceObject
Throws:
java.lang.Throwable - unlikely

get

protected java.lang.Object get(java.lang.reflect.Field f)
                        throws java.lang.IllegalAccessException
Allows the default snap method access to non-public variables.

Overrides:
get in class IdmsJdbcObject
Parameters:
f - a Field returned by Class.getDeclaredFields
Returns:
the Object named by f
Throws:
java.lang.IllegalAccessException - should not happen
See Also:
TraceObject.snap, TraceObject.snap()

allProceduresAreCallable

public boolean allProceduresAreCallable()
                                 throws java.sql.SQLException
IDMS supports CALL starting with 15.0.

Specified by:
allProceduresAreCallable in interface java.sql.DatabaseMetaData
Returns:
same as supportsStoredProcedures()
Throws:
java.sql.SQLException - not really.

allTablesAreSelectable

public boolean allTablesAreSelectable()
                               throws java.sql.SQLException
The current user has SELECT access when the standard the ACCESSIBLE_TABLES is used for getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[]).

Specified by:
allTablesAreSelectable in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

getURL

public java.lang.String getURL()
                        throws java.sql.SQLException
Gets the url for this database.

Specified by:
getURL in interface java.sql.DatabaseMetaData
Returns:
the url
Throws:
java.sql.SQLException - not really.

getUserName

public java.lang.String getUserName()
                             throws java.sql.SQLException
Gets the user id used to sign on.

Specified by:
getUserName in interface java.sql.DatabaseMetaData
Returns:
our database user name
Throws:
java.sql.SQLException - not really.

isReadOnly

public boolean isReadOnly()
                   throws java.sql.SQLException
Checks the read only option. CA IDMS database areas can be "retrieval only", but this does not correspond directly to a read only database, since a database can contain multiple areas. Databases can be marked as read only using an "ODBC" style data source definition.

Specified by:
isReadOnly in interface java.sql.DatabaseMetaData
Returns:
true if read only is specified in the local options.
Throws:
java.sql.SQLException - not really.
See Also:
IdmsConnectOptions.READ_ONLY

nullsAreSortedHigh

public boolean nullsAreSortedHigh()
                           throws java.sql.SQLException
NULL values are sorted high.

Specified by:
nullsAreSortedHigh in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

nullsAreSortedLow

public boolean nullsAreSortedLow()
                          throws java.sql.SQLException
NULL values are not sorted low.

Specified by:
nullsAreSortedLow in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

nullsAreSortedAtStart

public boolean nullsAreSortedAtStart()
                              throws java.sql.SQLException
NULL values not sorted at the start regardless of sort order.

Specified by:
nullsAreSortedAtStart in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

nullsAreSortedAtEnd

public boolean nullsAreSortedAtEnd()
                            throws java.sql.SQLException
NULL values are not sorted at the end regardless of sort order.

Specified by:
nullsAreSortedAtEnd in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

getDatabaseProductName

public java.lang.String getDatabaseProductName()
                                        throws java.sql.SQLException
Gets the database product name.

Specified by:
getDatabaseProductName in interface java.sql.DatabaseMetaData
Returns:
"CA IDMS"
Throws:
java.sql.SQLException - not really.

getDatabaseProductVersion

public java.lang.String getDatabaseProductVersion()
                                           throws java.sql.SQLException
Gets the database product version.

Specified by:
getDatabaseProductVersion in interface java.sql.DatabaseMetaData
Returns:
version of CA IDMS in format MM.PP.BBBB.
Throws:
java.sql.SQLException - not really.

getDriverName

public java.lang.String getDriverName()
                               throws java.sql.SQLException
Gets the JDBC driver product name.

Specified by:
getDriverName in interface java.sql.DatabaseMetaData
Returns:
"CA IDMS Server"
Throws:
java.sql.SQLException - not really.

getDriverVersion

public java.lang.String getDriverVersion()
                                  throws java.sql.SQLException
Gets the JDBC driver product version.

Specified by:
getDriverVersion in interface java.sql.DatabaseMetaData
Returns:
16.1
Throws:
java.sql.SQLException - not really.

getDriverMajorVersion

public int getDriverMajorVersion()
Gets the JDBC driver product major version number.

Specified by:
getDriverMajorVersion in interface java.sql.DatabaseMetaData
Returns:
16

getDriverMinorVersion

public int getDriverMinorVersion()
Gets the JDBC driver product minor version number.

Specified by:
getDriverMinorVersion in interface java.sql.DatabaseMetaData
Returns:
1

usesLocalFiles

public boolean usesLocalFiles()
                       throws java.sql.SQLException
IDMS does not store tables in a local file.

Specified by:
usesLocalFiles in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

usesLocalFilePerTable

public boolean usesLocalFilePerTable()
                              throws java.sql.SQLException
IDMS does not use a file for any table.

Specified by:
usesLocalFilePerTable in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsMixedCaseIdentifiers

public boolean supportsMixedCaseIdentifiers()
                                     throws java.sql.SQLException
Does the database treat mixed case unquoted SQL identifiers as case sensitive and as a result store them in mixed case?

A JDBC-Compliant driver will always return false.

Specified by:
supportsMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

storesUpperCaseIdentifiers

public boolean storesUpperCaseIdentifiers()
                                   throws java.sql.SQLException
Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in upper case?

Specified by:
storesUpperCaseIdentifiers in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

storesLowerCaseIdentifiers

public boolean storesLowerCaseIdentifiers()
                                   throws java.sql.SQLException
Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in lower case?

Specified by:
storesLowerCaseIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

storesMixedCaseIdentifiers

public boolean storesMixedCaseIdentifiers()
                                   throws java.sql.SQLException
Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in mixed case?

Specified by:
storesMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsMixedCaseQuotedIdentifiers

public boolean supportsMixedCaseQuotedIdentifiers()
                                           throws java.sql.SQLException
Does the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case?

A JDBC-Compliant driver will always return true.

Specified by:
supportsMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

storesUpperCaseQuotedIdentifiers

public boolean storesUpperCaseQuotedIdentifiers()
                                         throws java.sql.SQLException
Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in upper case?

Specified by:
storesUpperCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

storesLowerCaseQuotedIdentifiers

public boolean storesLowerCaseQuotedIdentifiers()
                                         throws java.sql.SQLException
Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in lower case?

Specified by:
storesLowerCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

storesMixedCaseQuotedIdentifiers

public boolean storesMixedCaseQuotedIdentifiers()
                                         throws java.sql.SQLException
Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in mixed case?

Specified by:
storesMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

getIdentifierQuoteString

public java.lang.String getIdentifierQuoteString()
                                          throws java.sql.SQLException
IDMS uses a double quote character.

Specified by:
getIdentifierQuoteString in interface java.sql.DatabaseMetaData
Returns:
a double quote chracter
Throws:
java.sql.SQLException - not really.

getSQLKeywords

public java.lang.String getSQLKeywords()
                                throws java.sql.SQLException
Gets a comma separated list of all a database's SQL keywords that are NOT also SQL92 keywords.

Specified by:
getSQLKeywords in interface java.sql.DatabaseMetaData
Returns:
the list
Throws:
java.sql.SQLException - not really.

getNumericFunctions

public java.lang.String getNumericFunctions()
                                     throws java.sql.SQLException
Gets a comma separated list of math functions.

Specified by:
getNumericFunctions in interface java.sql.DatabaseMetaData
Returns:
the list, varies by release
Throws:
java.sql.SQLException - not really.

getStringFunctions

public java.lang.String getStringFunctions()
                                    throws java.sql.SQLException
Gets a comma separated list of string functions.

Specified by:
getStringFunctions in interface java.sql.DatabaseMetaData
Returns:
the list
Throws:
java.sql.SQLException - not really.

getSystemFunctions

public java.lang.String getSystemFunctions()
                                    throws java.sql.SQLException
Gets a comma separated list of system functions.

Specified by:
getSystemFunctions in interface java.sql.DatabaseMetaData
Returns:
the list
Throws:
java.sql.SQLException - not really.

getTimeDateFunctions

public java.lang.String getTimeDateFunctions()
                                      throws java.sql.SQLException
Gets a comma separated list of time and date functions.

Specified by:
getTimeDateFunctions in interface java.sql.DatabaseMetaData
Returns:
the list
Throws:
java.sql.SQLException - not really.

getSearchStringEscape

public java.lang.String getSearchStringEscape()
                                       throws java.sql.SQLException
This is the string that can be used to escape '_' or '%' in the string pattern style catalog search parameters.

The '_' character represents any single character.

The '%' character represents any sequence of zero or more characters.

Specified by:
getSearchStringEscape in interface java.sql.DatabaseMetaData
Returns:
a backslash ('\')
Throws:
java.sql.SQLException - not really.

getExtraNameCharacters

public java.lang.String getExtraNameCharacters()
                                        throws java.sql.SQLException
Get all the "extra" characters that can be used in unquoted identifier names (those beyond a-z, A-Z, 0-9 and _).

Specified by:
getExtraNameCharacters in interface java.sql.DatabaseMetaData
Returns:
"@#$"
Throws:
java.sql.SQLException - not really.

supportsAlterTableWithAddColumn

public boolean supportsAlterTableWithAddColumn()
                                        throws java.sql.SQLException
IDMS supports "ALTER TABLE" with add column.

Specified by:
supportsAlterTableWithAddColumn in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsAlterTableWithDropColumn

public boolean supportsAlterTableWithDropColumn()
                                         throws java.sql.SQLException
IDMS does not support "ALTER TABLE" with drop column.

Specified by:
supportsAlterTableWithDropColumn in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsColumnAliasing

public boolean supportsColumnAliasing()
                               throws java.sql.SQLException
IDMS supports column alias names.

Specified by:
supportsColumnAliasing in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

nullPlusNonNullIsNull

public boolean nullPlusNonNullIsNull()
                              throws java.sql.SQLException
For IDMS concatenations between NULL and non-NULL values are NULL.

Specified by:
nullPlusNonNullIsNull in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsConvert

public boolean supportsConvert()
                        throws java.sql.SQLException
IDMS does not support the CONVERT function. IDMS does support the CAST function to convert between SQL types.

Specified by:
supportsConvert in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsConvert

public boolean supportsConvert(int fromType,
                               int toType)
                        throws java.sql.SQLException
IDMS does not support the CONVERT function.

Specified by:
supportsConvert in interface java.sql.DatabaseMetaData
Parameters:
fromType - the type to convert from
toType - the type to convert to
Returns:
false
Throws:
java.sql.SQLException - not really.
See Also:
supportsConvert()

supportsTableCorrelationNames

public boolean supportsTableCorrelationNames()
                                      throws java.sql.SQLException
IDMS supports table correlation names.

Specified by:
supportsTableCorrelationNames in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsDifferentTableCorrelationNames

public boolean supportsDifferentTableCorrelationNames()
                                               throws java.sql.SQLException
IDMS does not require correlation names to be different from the table names.

Specified by:
supportsDifferentTableCorrelationNames in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsExpressionsInOrderBy

public boolean supportsExpressionsInOrderBy()
                                     throws java.sql.SQLException
IDMS does not supprt expressions in "ORDER BY" lists.

Specified by:
supportsExpressionsInOrderBy in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsOrderByUnrelated

public boolean supportsOrderByUnrelated()
                                 throws java.sql.SQLException
IDMS does not require "ORDER BY" to use columns in the SELECT.

Specified by:
supportsOrderByUnrelated in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsGroupBy

public boolean supportsGroupBy()
                        throws java.sql.SQLException
IDMS supports "GROUP BY".

Specified by:
supportsGroupBy in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsGroupByUnrelated

public boolean supportsGroupByUnrelated()
                                 throws java.sql.SQLException
IDMS does not require "GROUP BY" to use columns in the SELECT.

Specified by:
supportsGroupByUnrelated in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsGroupByBeyondSelect

public boolean supportsGroupByBeyondSelect()
                                    throws java.sql.SQLException
IDMS does not require "GROUP BY" to use columns in the SELECT.

Specified by:
supportsGroupByBeyondSelect in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsLikeEscapeClause

public boolean supportsLikeEscapeClause()
                                 throws java.sql.SQLException
IDMS supports an escape character in LIKE clauses. A JDBC-Compliant driver always returns true.

Specified by:
supportsLikeEscapeClause in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsMultipleResultSets

public boolean supportsMultipleResultSets()
                                   throws java.sql.SQLException
Starting with r17 CA IDMS supports multiple ResultSets.

Specified by:
supportsMultipleResultSets in interface java.sql.DatabaseMetaData
Returns:
true if r17 or later, false otherwise
Throws:
java.sql.SQLException - not really.

supportsMultipleTransactions

public boolean supportsMultipleTransactions()
                                     throws java.sql.SQLException
IDMS supports multiple transactions open at once (on different connections).

Specified by:
supportsMultipleTransactions in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsNonNullableColumns

public boolean supportsNonNullableColumns()
                                   throws java.sql.SQLException
IDMS allows columns to be defined as NOT NULL.

Specified by:
supportsNonNullableColumns in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsMinimumSQLGrammar

public boolean supportsMinimumSQLGrammar()
                                  throws java.sql.SQLException
IDMS supports the ODBC Minimum SQL grammar.

Specified by:
supportsMinimumSQLGrammar in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsCoreSQLGrammar

public boolean supportsCoreSQLGrammar()
                               throws java.sql.SQLException
IDMS supports the the ODBC Core SQL grammar.

Specified by:
supportsCoreSQLGrammar in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsExtendedSQLGrammar

public boolean supportsExtendedSQLGrammar()
                                   throws java.sql.SQLException
IDMS does not fully support the ODBC Extended SQL grammar.

Specified by:
supportsExtendedSQLGrammar in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsANSI92EntryLevelSQL

public boolean supportsANSI92EntryLevelSQL()
                                    throws java.sql.SQLException
IDMS supports the ANSI92 entry level SQL grammar.

Specified by:
supportsANSI92EntryLevelSQL in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsANSI92IntermediateSQL

public boolean supportsANSI92IntermediateSQL()
                                      throws java.sql.SQLException
IDMS does not fullty support the ANSI92 intermediate SQL grammar.

Specified by:
supportsANSI92IntermediateSQL in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsANSI92FullSQL

public boolean supportsANSI92FullSQL()
                              throws java.sql.SQLException
IDMS does not support the ANSI92 full SQL grammar.

Specified by:
supportsANSI92FullSQL in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsIntegrityEnhancementFacility

public boolean supportsIntegrityEnhancementFacility()
                                             throws java.sql.SQLException
IDMS supports referential integrity with minor variations in the ANSI syntax.

Specified by:
supportsIntegrityEnhancementFacility in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsOuterJoins

public boolean supportsOuterJoins()
                           throws java.sql.SQLException
IDMS supports a form of outer join.

Specified by:
supportsOuterJoins in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsFullOuterJoins

public boolean supportsFullOuterJoins()
                               throws java.sql.SQLException
IDMS supports full outer joins only in r17 and later.

Specified by:
supportsFullOuterJoins in interface java.sql.DatabaseMetaData
Returns:
false for releases prior to r17; true for r17 and later
Throws:
java.sql.SQLException - not really.

supportsLimitedOuterJoins

public boolean supportsLimitedOuterJoins()
                                  throws java.sql.SQLException
IDMS supports outer joins with non standard syntax. Prior to r17, this was the only join support available. In IDMS r17 and later, both the non-standard syntax and the ANSI/ISO join syntax are supported.

Specified by:
supportsLimitedOuterJoins in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

getSchemaTerm

public java.lang.String getSchemaTerm()
                               throws java.sql.SQLException
Gets the IDMS term for SCHEMA.

Specified by:
getSchemaTerm in interface java.sql.DatabaseMetaData
Returns:
"SCHEMA"
Throws:
java.sql.SQLException - not really.

getProcedureTerm

public java.lang.String getProcedureTerm()
                                  throws java.sql.SQLException
Gets the IDMS term for PROCEDURE.

Specified by:
getProcedureTerm in interface java.sql.DatabaseMetaData
Returns:
"PROCEDURE"
Throws:
java.sql.SQLException - not really.

getCatalogTerm

public java.lang.String getCatalogTerm()
                                throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
getCatalogTerm in interface java.sql.DatabaseMetaData
Returns:
"DATABASE", as in "CURRENT DATABASE".
Throws:
java.sql.SQLException - not really.

isCatalogAtStart

public boolean isCatalogAtStart()
                         throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
isCatalogAtStart in interface java.sql.DatabaseMetaData
Returns:
false.
Throws:
java.sql.SQLException - not really.

getCatalogSeparator

public java.lang.String getCatalogSeparator()
                                     throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
getCatalogSeparator in interface java.sql.DatabaseMetaData
Returns:
null.
Throws:
java.sql.SQLException - not really.

supportsSchemasInDataManipulation

public boolean supportsSchemasInDataManipulation()
                                          throws java.sql.SQLException
IDMS allows a schema name in in a data manipulation statement.

Specified by:
supportsSchemasInDataManipulation in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsSchemasInProcedureCalls

public boolean supportsSchemasInProcedureCalls()
                                        throws java.sql.SQLException
IDMS supports procedures starting with release 15.0.

Specified by:
supportsSchemasInProcedureCalls in interface java.sql.DatabaseMetaData
Returns:
true if 14.0 or later, false otherwise
Throws:
java.sql.SQLException - not really.

supportsSchemasInTableDefinitions

public boolean supportsSchemasInTableDefinitions()
                                          throws java.sql.SQLException
IDMS allows schema names in a table definition statement.

Specified by:
supportsSchemasInTableDefinitions in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsSchemasInIndexDefinitions

public boolean supportsSchemasInIndexDefinitions()
                                          throws java.sql.SQLException
IDMS allows schema names in an index definition statement.

Specified by:
supportsSchemasInIndexDefinitions in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsSchemasInPrivilegeDefinitions

public boolean supportsSchemasInPrivilegeDefinitions()
                                              throws java.sql.SQLException
IDMS allows schema names in a privilege definition statement.

Specified by:
supportsSchemasInPrivilegeDefinitions in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsCatalogsInDataManipulation

public boolean supportsCatalogsInDataManipulation()
                                           throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
supportsCatalogsInDataManipulation in interface java.sql.DatabaseMetaData
Returns:
false.
Throws:
java.sql.SQLException - not really.

supportsCatalogsInProcedureCalls

public boolean supportsCatalogsInProcedureCalls()
                                         throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
supportsCatalogsInProcedureCalls in interface java.sql.DatabaseMetaData
Returns:
false.
Throws:
java.sql.SQLException - not really.

supportsCatalogsInTableDefinitions

public boolean supportsCatalogsInTableDefinitions()
                                           throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
supportsCatalogsInTableDefinitions in interface java.sql.DatabaseMetaData
Returns:
false.
Throws:
java.sql.SQLException - not really.

supportsCatalogsInIndexDefinitions

public boolean supportsCatalogsInIndexDefinitions()
                                           throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
supportsCatalogsInIndexDefinitions in interface java.sql.DatabaseMetaData
Returns:
false.
Throws:
java.sql.SQLException - not really.

supportsCatalogsInPrivilegeDefinitions

public boolean supportsCatalogsInPrivilegeDefinitions()
                                               throws java.sql.SQLException
IDMS does not support catalogs in identifiers.

Specified by:
supportsCatalogsInPrivilegeDefinitions in interface java.sql.DatabaseMetaData
Returns:
false.
Throws:
java.sql.SQLException - not really.

supportsPositionedDelete

public boolean supportsPositionedDelete()
                                 throws java.sql.SQLException
IDMS supports dynamic positioned DELETE starting with release 14.0.

Specified by:
supportsPositionedDelete in interface java.sql.DatabaseMetaData
Returns:
true if 14.0 or later, false otherwise
Throws:
java.sql.SQLException - not really.

supportsPositionedUpdate

public boolean supportsPositionedUpdate()
                                 throws java.sql.SQLException
IDMS supports dynamic positioned UPDATE starting with release 14.0.

Specified by:
supportsPositionedUpdate in interface java.sql.DatabaseMetaData
Returns:
true if 14.0 or later, false otherwise
Throws:
java.sql.SQLException - not really.

supportsSelectForUpdate

public boolean supportsSelectForUpdate()
                                throws java.sql.SQLException
IDMS supports dynamic SELECT FOR UPDATE starting with release 14.0.

Specified by:
supportsSelectForUpdate in interface java.sql.DatabaseMetaData
Returns:
true if felease 14.0 or later, false otherwise.
Throws:
java.sql.SQLException - not really.

supportsStoredProcedures

public boolean supportsStoredProcedures()
                                 throws java.sql.SQLException
IDMS supports CALL starting with 15.0.

Specified by:
supportsStoredProcedures in interface java.sql.DatabaseMetaData
Returns:
true if 5elease 15.0 or later, false otherwise.
Throws:
java.sql.SQLException - not really.

supportsSubqueriesInComparisons

public boolean supportsSubqueriesInComparisons()
                                        throws java.sql.SQLException
IDMS supports subqueries in comparison expressions.

Specified by:
supportsSubqueriesInComparisons in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsSubqueriesInExists

public boolean supportsSubqueriesInExists()
                                   throws java.sql.SQLException
IDMS supports subqueries in EXISTS expressions.

Specified by:
supportsSubqueriesInExists in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsSubqueriesInIns

public boolean supportsSubqueriesInIns()
                                throws java.sql.SQLException
IDMS supports subqueries in IN statements.

Specified by:
supportsSubqueriesInIns in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsSubqueriesInQuantifieds

public boolean supportsSubqueriesInQuantifieds()
                                        throws java.sql.SQLException
IDMS supports subqueries in quantified expressions.

Specified by:
supportsSubqueriesInQuantifieds in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsCorrelatedSubqueries

public boolean supportsCorrelatedSubqueries()
                                     throws java.sql.SQLException
IDMS supports correlated subqueries.

Specified by:
supportsCorrelatedSubqueries in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsUnion

public boolean supportsUnion()
                      throws java.sql.SQLException
IDMS supports UNION.

Specified by:
supportsUnion in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsUnionAll

public boolean supportsUnionAll()
                         throws java.sql.SQLException
IDMS supports SQL UNION ALL.

Specified by:
supportsUnionAll in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsOpenCursorsAcrossCommit

public boolean supportsOpenCursorsAcrossCommit()
                                        throws java.sql.SQLException
IDMS can optionally keep cursors open across commits.

Specified by:
supportsOpenCursorsAcrossCommit in interface java.sql.DatabaseMetaData
Returns:
true if holdability = HOLD_CURSORS_OVER_COMMIT
Throws:
java.sql.SQLException - not really.
See Also:
getResultSetHoldability()

supportsOpenCursorsAcrossRollback

public boolean supportsOpenCursorsAcrossRollback()
                                          throws java.sql.SQLException
IDMS closes all open cursors on rollback.

Specified by:
supportsOpenCursorsAcrossRollback in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

supportsOpenStatementsAcrossCommit

public boolean supportsOpenStatementsAcrossCommit()
                                           throws java.sql.SQLException
IDMS keeps statements open across commits. The driver caches the statement syntax and prepares the statement as needed. Prepared statements are can optionally be preserved on the server.

Specified by:
supportsOpenStatementsAcrossCommit in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.
See Also:
getResultSetHoldability()

supportsOpenStatementsAcrossRollback

public boolean supportsOpenStatementsAcrossRollback()
                                             throws java.sql.SQLException
IDMS keeps statements open across rollbacks. The driver caches the statement syntax and prepares the statement as needed.

Specified by:
supportsOpenStatementsAcrossRollback in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

getMaxBinaryLiteralLength

public int getMaxBinaryLiteralLength()
                              throws java.sql.SQLException
IDMS has no number of hex characters allowed in an inline binary literal.

Specified by:
getMaxBinaryLiteralLength in interface java.sql.DatabaseMetaData
Returns:
max literal length
Throws:
java.sql.SQLException - not really.

getMaxCharLiteralLength

public int getMaxCharLiteralLength()
                            throws java.sql.SQLException
IDMS has no specific max length for a character literal.

Specified by:
getMaxCharLiteralLength in interface java.sql.DatabaseMetaData
Returns:
max literal length
Throws:
java.sql.SQLException - not really.

getMaxColumnNameLength

public int getMaxColumnNameLength()
                           throws java.sql.SQLException
Gets the limit on column name length.

Specified by:
getMaxColumnNameLength in interface java.sql.DatabaseMetaData
Returns:
32
Throws:
java.sql.SQLException - not really.

getMaxColumnsInGroupBy

public int getMaxColumnsInGroupBy()
                           throws java.sql.SQLException
Gets the maximum number of columns in a GROUP BY clause.

Specified by:
getMaxColumnsInGroupBy in interface java.sql.DatabaseMetaData
Returns:
255
Throws:
java.sql.SQLException - not really.

getMaxColumnsInIndex

public int getMaxColumnsInIndex()
                         throws java.sql.SQLException
Gets the maximum number of columns allowed in an index.

Specified by:
getMaxColumnsInIndex in interface java.sql.DatabaseMetaData
Returns:
32
Throws:
java.sql.SQLException - not really.

getMaxColumnsInOrderBy

public int getMaxColumnsInOrderBy()
                           throws java.sql.SQLException
Gets the maximum number of columns in an ORDER BY clause.

Specified by:
getMaxColumnsInOrderBy in interface java.sql.DatabaseMetaData
Returns:
254
Throws:
java.sql.SQLException - not really.

getMaxColumnsInSelect

public int getMaxColumnsInSelect()
                          throws java.sql.SQLException
Gets the maximum number of columns in a SELECT list.

Specified by:
getMaxColumnsInSelect in interface java.sql.DatabaseMetaData
Returns:
1024
Throws:
java.sql.SQLException - not really.

getMaxColumnsInTable

public int getMaxColumnsInTable()
                         throws java.sql.SQLException
Gets the maximum number of columns in a table.

Specified by:
getMaxColumnsInTable in interface java.sql.DatabaseMetaData
Returns:
1024
Throws:
java.sql.SQLException - not really.

getMaxConnections

public int getMaxConnections()
                      throws java.sql.SQLException
IDMS has no specific limit for connnections.

Specified by:
getMaxConnections in interface java.sql.DatabaseMetaData
Returns:
0
Throws:
java.sql.SQLException - not really.

getMaxCursorNameLength

public int getMaxCursorNameLength()
                           throws java.sql.SQLException
Gets the maximum cursor name length.

Specified by:
getMaxCursorNameLength in interface java.sql.DatabaseMetaData
Returns:
18
Throws:
java.sql.SQLException - not really.

getMaxIndexLength

public int getMaxIndexLength()
                      throws java.sql.SQLException
Gets the maximum length of an index (in bytes).

Specified by:
getMaxIndexLength in interface java.sql.DatabaseMetaData
Returns:
256
Throws:
java.sql.SQLException - not really.

getMaxSchemaNameLength

public int getMaxSchemaNameLength()
                           throws java.sql.SQLException
Gets the maximum schema name length.

Specified by:
getMaxSchemaNameLength in interface java.sql.DatabaseMetaData
Returns:
18
Throws:
java.sql.SQLException - not really.

getMaxProcedureNameLength

public int getMaxProcedureNameLength()
                              throws java.sql.SQLException
Gets the maximum procedure name length.

Specified by:
getMaxProcedureNameLength in interface java.sql.DatabaseMetaData
Returns:
18
Throws:
java.sql.SQLException - not really.

getMaxCatalogNameLength

public int getMaxCatalogNameLength()
                            throws java.sql.SQLException
IDMS does not currently support catalogs in identifiers.

Specified by:
getMaxCatalogNameLength in interface java.sql.DatabaseMetaData
Returns:
0
Throws:
java.sql.SQLException - not really.

getMaxRowSize

public int getMaxRowSize()
                  throws java.sql.SQLException
Gets the maximum length of a single row.

The maximum length a row in a compressed table is 32760, an uncompressed table is limited by the page size, which is never larger. The page siez information is not generally available to an SQL transaction.

Specified by:
getMaxRowSize in interface java.sql.DatabaseMetaData
Returns:
32760 bytes
Throws:
java.sql.SQLException - not really.

doesMaxRowSizeIncludeBlobs

public boolean doesMaxRowSizeIncludeBlobs()
                                   throws java.sql.SQLException
IDMS does not support BLOBs.

Specified by:
doesMaxRowSizeIncludeBlobs in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

getMaxStatementLength

public int getMaxStatementLength()
                          throws java.sql.SQLException
Gets the maximum length of a SQL statement.

Specified by:
getMaxStatementLength in interface java.sql.DatabaseMetaData
Returns:
max length in bytes
Throws:
java.sql.SQLException - not really.

getMaxStatements

public int getMaxStatements()
                     throws java.sql.SQLException
Gets the maximum number of Statements that can be open to CA IDMS at one time. The absolute maximum is over 10,000. The effective maximum is limited by resource availability. Use all you need.

Specified by:
getMaxStatements in interface java.sql.DatabaseMetaData
Returns:
0
Throws:
java.sql.SQLException - not really.

getMaxTableNameLength

public int getMaxTableNameLength()
                          throws java.sql.SQLException
Gets the maximum length of a table name.

Specified by:
getMaxTableNameLength in interface java.sql.DatabaseMetaData
Returns:
18 bytes
Throws:
java.sql.SQLException - not really.

getMaxTablesInSelect

public int getMaxTablesInSelect()
                         throws java.sql.SQLException
Gets the maximum number of tables in a SELECT.

Specified by:
getMaxTablesInSelect in interface java.sql.DatabaseMetaData
Returns:
32
Throws:
java.sql.SQLException - not really.

getMaxUserNameLength

public int getMaxUserNameLength()
                         throws java.sql.SQLException
Gets the maximum length of a user name.

Specified by:
getMaxUserNameLength in interface java.sql.DatabaseMetaData
Returns:
8 bytes
Throws:
java.sql.SQLException - not really.

getDefaultTransactionIsolation

public int getDefaultTransactionIsolation()
                                   throws java.sql.SQLException
Gets the database's default transaction isolation level.

Specified by:
getDefaultTransactionIsolation in interface java.sql.DatabaseMetaData
Returns:
TRANSACTION_READ_COMMITTED
Throws:
java.sql.SQLException - not really.

supportsTransactions

public boolean supportsTransactions()
                             throws java.sql.SQLException
IDMS supports transactions.

Specified by:
supportsTransactions in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsTransactionIsolationLevel

public boolean supportsTransactionIsolationLevel(int level)
                                          throws java.sql.SQLException
Indicates that IDMS supports the given transaction isolation level.

Specified by:
supportsTransactionIsolationLevel in interface java.sql.DatabaseMetaData
Parameters:
level - the values are defined in java.sql.Connection
Returns:
true if so
Throws:
java.sql.SQLException - not really.

supportsDataDefinitionAndDataManipulationTransactions

public boolean supportsDataDefinitionAndDataManipulationTransactions()
                                                              throws java.sql.SQLException
IDMS supports both DDL and DML within a transaction.

Specified by:
supportsDataDefinitionAndDataManipulationTransactions in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - not really.

supportsDataManipulationTransactionsOnly

public boolean supportsDataManipulationTransactionsOnly()
                                                 throws java.sql.SQLException
IDMS supports DML within a transaciton..

Specified by:
supportsDataManipulationTransactionsOnly in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

dataDefinitionCausesTransactionCommit

public boolean dataDefinitionCausesTransactionCommit()
                                              throws java.sql.SQLException
DDL does not force the transaction to commit.

Specified by:
dataDefinitionCausesTransactionCommit in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

dataDefinitionIgnoredInTransactions

public boolean dataDefinitionIgnoredInTransactions()
                                            throws java.sql.SQLException
Indicates that DDL is not ignored within a transaction.

Specified by:
dataDefinitionIgnoredInTransactions in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really.

getTableTypes

public java.sql.ResultSet getTableTypes()
                                 throws java.sql.SQLException
Gets the table types available in this database.

For IDMS the result set is:

  1. TABLE_TYPE
  2. "TABLE"
  3. "VIEW"

Specified by:
getTableTypes in interface java.sql.DatabaseMetaData
Returns:
the ResultSet
Throws:
java.sql.SQLException - not really.

getTypeInfo

public java.sql.ResultSet getTypeInfo()
                               throws java.sql.SQLException
Gets a description of all the standard SQL types supported by this database. They are ordered by DATA_TYPE and then by how closely the data type maps to the corresponding JDBC SQL type.

Each type description has the following columns:

  1. TYPE_NAME String => Type name
  2. DATA_TYPE short => SQL data type from java.sql.Types
  3. PRECISION int => maximum precision
  4. LITERAL_PREFIX String => prefix used to quote a literal (may be null)
  5. LITERAL_SUFFIX String => suffix used to quote a literal (may be null)
  6. CREATE_PARAMS String => parameters used in creating the type (may be null)
  7. NULLABLE short => can you use NULL for this type?
    • typeNoNulls - does not allow NULL values
    • typeNullable - allows NULL values
    • typeNullableUnknown - nullability unknown
  8. CASE_SENSITIVE boolean=> is it case sensitive?
  9. SEARCHABLE short => can you use "WHERE" based on this type:
    • typePredNone - No support
    • typePredChar - Only supported with WHERE .. LIKE
    • typePredBasic - Supported except for WHERE .. LIKE
    • typeSearchable - Supported for all WHERE ..
  10. UNSIGNED_ATTRIBUTE boolean => is it unsigned?
  11. FIXED_PREC_SCALE boolean => can it be a money value?
  12. AUTO_INCREMENT boolean => can it be used for an auto-increment value?
  13. LOCAL_TYPE_NAME String => localized version of type name (may be null)
  14. MINIMUM_SCALE short => minimum scale supported
  15. MAXIMUM_SCALE short => maximum scale supported
  16. SQL_DATA_TYPE int => unused
  17. SQL_DATETIME_SUB int => unused
  18. NUM_PREC_RADIX int => usually 2 or 10

Specified by:
getTypeInfo in interface java.sql.DatabaseMetaData
Returns:
the ResultSet - each row is a SQL type description
Throws:
java.sql.SQLException - not really.

getCatalogs

public java.sql.ResultSet getCatalogs()
                               throws java.sql.SQLException
The "CATALOG" name is the CURRENT DATABASE name. Note that IDMS does not support catalogs in identifiers.

Specified by:
getCatalogs in interface java.sql.DatabaseMetaData
Returns:
a ResultSet with one row containing the CURRENT DATABASE
Throws:
java.sql.SQLException - in the unlikely event of an error.

getSchemas

public java.sql.ResultSet getSchemas()
                              throws java.sql.SQLException
Gets the schema names available in this database. The results are ordered by schema name.

The schema columns are:

  1. TABLE_SCHEM String => schema name
  2. TABLE_CATALOG String => always null

Specified by:
getSchemas in interface java.sql.DatabaseMetaData
Returns:
ResultSet - each row has a schema name
Throws:
java.sql.SQLException - if a database-access error occurs.

getProcedures

public java.sql.ResultSet getProcedures(java.lang.String catalog,
                                        java.lang.String schema,
                                        java.lang.String procedure)
                                 throws java.sql.SQLException
Gets a description of procedures available in a catalog. Lists procedures defined using the CREATE PROCEDURE DDL statement supported by CA IDMS r15 and later. The SYSCA.ACCESSIBLE_PROCS view must defined in the catalog to use this method. This view was added for CA IDMS r16 and updated for CA IDMS r17. For CA IDMS r15, the file accviews.txt contains DDL to create it for CA IDMS r15. This file is installed in the CA IDMS Server directory on Windows and is also included on the CA IDMS Server installation CD.

Note that "table procedures", defined using the CREATE TABLE PROCEDURE DDL statement are included in the ResultSet returned for getTables, and are not returned by this method by default. This behavior can be changed by replacing the WHERE TYPE = 'R' predicate in the catalog SYSCA.ACCESSIBLE_PROCS view with WHERE TYPE IN ('P', 'R').

ResultSet columns:

  1. PROCEDURE_CAT String =>procedure catalog (always null)
  2. PROCEDURE_SCHEM String =>procedure schema (never null)
  3. PROCEDURE_NAME String =>procedure name
  4. NUM_INPUT_PARMS short =>number of parameters (r17 or later)
  5. NUM_OUTPUT_PARMS short =>number of parameters (r17 or later)
  6. NUM_RESULT_SETS short =>maximum returned result sets (r17 or later)
  7. REMARKS String => explanatory comment on the procedure
  8. PROCEDURE_TYPE short => kind of procedure:
    • 0 = procedureResultUnknown - May return a result
    • 1 = procedureNoResult - Does not return a result
    • 2 = procedureReturnsResult - Returns a result
  9. SPECIFIC_NAME String => The name which uniquely identifies this procedure within its schema.

The NUM_INPUT_PARMS, NUM_OUTPUT_PARMS, and NUM_RESULT_SET columns are CA IDMS extensions that replace reserved columns defined in the JDBC specification, and are consistent with the columns defined for the result set returned for the equivalent ODBC SQLProcedures function.

Specified by:
getProcedures in interface java.sql.DatabaseMetaData
Parameters:
catalog - a catalog name ignored
schema - a schema name pattern; "" uses the CURRENT SCHEMA, if any.
procedure - a procedure name pattern
Returns:
the ResultSet containing the list of matching procedures.
Throws:
java.sql.SQLException - if an error occurs

getProcedureColumns

public java.sql.ResultSet getProcedureColumns(java.lang.String catalog,
                                              java.lang.String schema,
                                              java.lang.String procedure,
                                              java.lang.String column)
                                       throws java.sql.SQLException
Gets a description of procedures available in a catalog. Lists parameters for procedures defined using the CREATE PROCEDURE DDL supported by IDMS 15.0 and later. The SYSCA.ACCESSIBLE_PROCS view must defined in the catalog to use this method, which returns the same procedures as the getProcedures method.

ResultSet columns:

  1. PROCEDURE_CAT String =>procedure catalog (always null)
  2. PROCEDURE_SCHEM String =>procedure schema (never null)
  3. PROCEDURE_NAME String =>procedure name
  4. COLUMN_NAME String => column/parameter name
  5. COLUMN_TYPE short => kind of column/parameter:
    • 0 = procedureColumnUnknown - nobody knows
    • 1 = procedureColumnIn - IN parameter
    • 2 = procedureColumnInOut - INOUT parameter
    • 3 = procedureColumnResult - result column in ResultSet
    • 4 = procedureColumnOut - OUT parameter
    • 5 = procedureColumnReturn - procedure return value
  6. DATA_TYPE int => SQL type from java.sql.Types
  7. TYPE_NAME String => SQL type name
  8. PRECISION int => precision
  9. LENGTH int => length in bytes of data
  10. SCALE short => scale
  11. RADIX short => radix
  12. NULLABLE short => can it contain NULL.
    • 0 = procedureNoNulls - does not allow NULL values
    • 1 = procedureNullable - allows NULL values
    • 2 = procedureNullableUnknown - nullability unknown
  13. REMARKS String => explanatory comment on the procedure
  14. COLUMN_DEF String => default value for the column
  15. SQL_DATA_TYPE int => reserved for future use
  16. SQL_DATETIME_SUB int => reserved for future use
  17. CHAR_OCTET_LENGTH int => the maximum length of binary and character based columns
  18. ORDINAL_POSITION int => the ordinal position, starting from 1
  19. IS_NULLABLE String => ISO rules are used to determine the nullability for a column.
    • YES --- if the parameter can include NULLs
    • NO --- if the parameter cannot include NULLs
    • empty string --- if the nullability for the parameter is unknown
  20. SPECIFIC_NAME String => the name which uniquely identifies this procedure within its schema

Specified by:
getProcedureColumns in interface java.sql.DatabaseMetaData
Parameters:
catalog - a catalog name ignored
schema - a schema name pattern; "" uses the CURRENT SCHEMA, if any.
procedure - a procedure name pattern
column - a column name pattern
Returns:
the ResultSet containing the list of matching procedure columns.
Throws:
java.sql.SQLException - if an error occurs
See Also:
getProcedures(java.lang.String, java.lang.String, java.lang.String)

getTables

public java.sql.ResultSet getTables(java.lang.String catalog,
                                    java.lang.String schema,
                                    java.lang.String table,
                                    java.lang.String[] types)
                             throws java.sql.SQLException
Get a description of tables available in a catalog.

Only table descriptions matching the catalog, schema, table name and type criteria are returned. They are ordered by TABLE_TYPE, TABLE_SCHEM and TABLE_NAME.

Each table description has the following columns:

  1. TABLE_CAT String => table catalog (always null)
  2. TABLE_SCHEM String => table schema (null only if schemaPattern is "")
  3. TABLE_NAME String => table name
  4. TABLE_TYPE String => table type ("TABLE" or "VIEW")
  5. REMARKS String => (always null)

Note: Some databases may not return information for all tables.

Specified by:
getTables in interface java.sql.DatabaseMetaData
Parameters:
catalog - a catalog name ignored
schema - a schema name pattern; "" uses the CURRENT SCHEMA, if any.
table - a table name pattern
types - a list of table types to include; null returns all types
Returns:
ResultSet - each row is a table description
Throws:
java.sql.SQLException - if a database-access error occurs.

getColumns

public java.sql.ResultSet getColumns(java.lang.String catalog,
                                     java.lang.String schema,
                                     java.lang.String table,
                                     java.lang.String column)
                              throws java.sql.SQLException
Get a description of table columns available in a catalog.

Since there is no reasonable way to get the column definitions of network records accessed via SQL, this method is actually implemented by preparing and describing a query on each table specified by the schema and table search patterns. When there are no wildcard characters only one table needs to be described, otherwise getTables is used to get the list of tables that match the selection criteria, and each is described in turn.

Only column descriptions matching the catalog, schema, table and column name criteria are returned. They are ordered by TABLE_SCHEM, TABLE_NAME and ORDINAL_POSITION.

Each column description has the following columns:

  1. TABLE_CAT String => table catalog (always null)
  2. TABLE_SCHEM String => table schema (null only if schemaPattern is "")
  3. TABLE_NAME String => table name
  4. COLUMN_NAME String => column name
  5. DATA_TYPE int => SQL type from java.sql.Types
  6. TYPE_NAME String => Data source dependent type name
  7. COLUMN_SIZE int => column size. For char or date types this is the maximum number of characters, for numeric or decimal types this is precision.
  8. BUFFER_LENGTH is not used.
  9. DECIMAL_DIGITS int => the number of fractional digits
  10. NUM_PREC_RADIX int => Radix (typically either 10 or 2)
  11. NULLABLE int => is NULL allowed?
    • columnNoNulls - might not allow NULL values
    • columnNullable - definitely allows NULL values
    • columnNullableUnknown - nullability unknown
  12. REMARKS String => comment describing column (always null)
  13. COLUMN_DEF String => default value (may be null)
  14. SQL_DATA_TYPE int => unused
  15. SQL_DATETIME_SUB int => unused
  16. CHAR_OCTET_LENGTH int => for char types the maximum number of bytes in the column
  17. ORDINAL_POSITION int => index of column in table (starting at 1)
  18. IS_NULLABLE String => "NO" means column definitely does not allow NULL values; "YES" means the column might allow NULL values. An empty string means nobody knows.
  19. SCOPE_CATLOG String => catalog of table that is the scope of a reference attribute (null if DATA_TYPE isn't REF)
  20. SCOPE_SCHEMA String => schema of table that is the scope of a reference attribute (null if the DATA_TYPE isn't REF)
  21. SCOPE_TABLE String => table name that this the scope of a reference attribute (null if the DATA_TYPE isn't REF)
  22. SOURCE_DATA_TYPE short => source type of a distinct type or user-generated Ref type, SQL type from java.sql.Types (null if DATA_TYPE isn't DISTINCT or user-generated REF)
  23. IS_AUTOINCREMENT String => "NO" means column is not auto-incremented. This is the only value returned for IDMS.

Specified by:
getColumns in interface java.sql.DatabaseMetaData
Parameters:
catalog - a catalog name ignored
schema - a schema name pattern; "" uses the CURRENT SCHEMA, if any.
table - a table name pattern
column - a column name pattern
Returns:
ResultSet - each row is a column description
Throws:
java.sql.SQLException - if a database-access error occurs.
See Also:
getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[])

getBestRowIdentifier

public java.sql.ResultSet getBestRowIdentifier(java.lang.String catalog,
                                               java.lang.String schema,
                                               java.lang.String table,
                                               int scope,
                                               boolean nullable)
                                        throws java.sql.SQLException
Get a description of a table's optimal set of columns that uniquely identifies a row. They are ordered by SCOPE.

Each column description has the following columns:

  1. SCOPE short => actual scope of result
    • bestRowTemporary - very temporary, while using row
    • bestRowTransaction - valid for remainder of current transaction
    • bestRowSession - valid for remainder of current session
  2. COLUMN_NAME String => column name
  3. DATA_TYPE short => SQL data type from java.sql.Types
  4. TYPE_NAME String => Data source dependent type name
  5. COLUMN_SIZE int => precision
  6. BUFFER_LENGTH int => not used
  7. DECIMAL_DIGITS short => scale
  8. PSEUDO_COLUMN short => is this a pseudo column like an Oracle ROWID
    • bestRowUnknown - may or may not be pseudo column
    • bestRowNotPseudo - is NOT a pseudo column
    • bestRowPseudo - is a pseudo column

Specified by:
getBestRowIdentifier in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored
schema - a schema name pattern; null uses the CURRENT SCHEMA, if any.
table - a table name
scope - the scope of interest; use same values as SCOPE
nullable - include columns that are nullable?
Returns:
ResultSet - each row is a column description
Throws:
java.sql.SQLException - if a database-access error occurs.

getIndexInfo

public java.sql.ResultSet getIndexInfo(java.lang.String catalog,
                                       java.lang.String schema,
                                       java.lang.String table,
                                       boolean unique,
                                       boolean approximate)
                                throws java.sql.SQLException
Get a description of a table's indices and statistics. They are ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.

Each index column description has the following columns:

  1. TABLE_CAT String => table catalog (may be null)
  2. TABLE_SCHEM String => table schema (may be null)
  3. TABLE_NAME String => table name
  4. NON_UNIQUE boolean => Can index values be non-unique? false when TYPE is tableIndexStatistic
  5. INDEX_QUALIFIER String => index catalog (may be null); null when TYPE is tableIndexStatistic
  6. INDEX_NAME String => index name; null when TYPE is tableIndexStatistic
  7. TYPE short => index type:
    • tableIndexStatistic - this identifies table statistics that are returned in conjuction with a table's index descriptions
    • tableIndexClustered - this is a clustered index
    • tableIndexHashed - this is a hashed index
    • tableIndexOther - this is some other style of index
  8. ORDINAL_POSITION short => column sequence number within index; zero when TYPE is tableIndexStatistic
  9. COLUMN_NAME String => column name; null when TYPE is tableIndexStatistic
  10. ASC_OR_DESC String => column sort sequence, "A" => ascending, "D" => descending, may be null if sort sequence is not supported; null when TYPE is tableIndexStatistic
  11. CARDINALITY int => When TYPE is tableIndexStatistic, then this is the number of rows in the table; otherwise, it is the number of unique values in the index.
  12. PAGES int => When TYPE is tableIndexStatisic then this is the number of pages used for the table, otherwise it is the number of pages used for the current index.
  13. FILTER_CONDITION String => Filter condition, if any. (may be null)

Specified by:
getIndexInfo in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored
schema - a schema name pattern; null uses the CURRENT SCHEMA, if any.
table - a table name
unique - when true, return only indices for unique values; when false, return indices regardless of whether unique or not
approximate - ignored, UPDATE STATISTICES is generally too expensive, if really required execute an UPDATE STATISTIC command
Returns:
ResultSet - each row is an index column description
Throws:
java.sql.SQLException - if a database-access error occurs.

getTablePrivileges

public java.sql.ResultSet getTablePrivileges(java.lang.String catalog,
                                             java.lang.String schemaPattern,
                                             java.lang.String tableNamePattern)
                                      throws java.sql.SQLException
Table privileges are not currently available from the IDMS catalog.

Specified by:
getTablePrivileges in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored.
schemaPattern - ignored.
tableNamePattern - ignored.
Returns:
an empty ResultSet
Throws:
java.sql.SQLException - in the unlikely event of an error.

getColumnPrivileges

public java.sql.ResultSet getColumnPrivileges(java.lang.String catalog,
                                              java.lang.String schema,
                                              java.lang.String table,
                                              java.lang.String columnNamePattern)
                                       throws java.sql.SQLException
IDMS does not currently support column privileges.

Specified by:
getColumnPrivileges in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored.
schema - ignored.
table - ignored.
columnNamePattern - ignored.
Returns:
an empty ResultSet
Throws:
java.sql.SQLException - in the unlikely event of an error.

getVersionColumns

public java.sql.ResultSet getVersionColumns(java.lang.String catalog,
                                            java.lang.String schema,
                                            java.lang.String table)
                                     throws java.sql.SQLException
IDMS does not support "version" columns.

Specified by:
getVersionColumns in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored
schema - ignored
table - ignored
Returns:
an empty ResultSet
Throws:
java.sql.SQLException - in the unlikely event of an error.

getPrimaryKeys

public java.sql.ResultSet getPrimaryKeys(java.lang.String catalog,
                                         java.lang.String schema,
                                         java.lang.String table)
                                  throws java.sql.SQLException
Returns a description of the given table's primary key columns. The results are ordered by COLUMN_NAME.

Specified by:
getPrimaryKeys in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored
schema - a schema name; null uses the CURRENT SCHEMA, if any.
table - a table name
Returns:
ResultSet - each row is a primary key description
Throws:
java.sql.SQLException - if a database-access error occurs.

getImportedKeys

public java.sql.ResultSet getImportedKeys(java.lang.String catalog,
                                          java.lang.String schema,
                                          java.lang.String table)
                                   throws java.sql.SQLException
Returns a description of the primary key columns referenced by the given table's foreign keys. In other words, the result set describes the primary keys imported into the table. The results are ordered by PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME, KEY_SEQ.

Specified by:
getImportedKeys in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored
schema - a schema name; null uses the CURRENT SCHEMA, if any.
table - a table name
Returns:
ResultSet - each row is an imported key description
Throws:
java.sql.SQLException - if a database-access error occurs.

getExportedKeys

public java.sql.ResultSet getExportedKeys(java.lang.String catalog,
                                          java.lang.String schema,
                                          java.lang.String table)
                                   throws java.sql.SQLException
Returns a description of the foreign key columns that reference the given table's primary key columns. In other words, the result set describes the foreign keys exported by the given table. The results are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ.

Specified by:
getExportedKeys in interface java.sql.DatabaseMetaData
Parameters:
catalog - ignored
schema - a schema name; null uses the CURRENT SCHEMA, if any.
table - a table name
Returns:
ResultSet - each row is an imported key description
Throws:
java.sql.SQLException - if a database-access error occurs.

getCrossReference

public java.sql.ResultSet getCrossReference(java.lang.String primaryCatalog,
                                            java.lang.String primarySchema,
                                            java.lang.String primaryTable,
                                            java.lang.String foreignCatalog,
                                            java.lang.String foreignSchema,
                                            java.lang.String foreignTable)
                                     throws java.sql.SQLException
Returns a description of the foreign key columns in the given foreign key table that reference the primary key columns of the given primary key table. In other words, the result set describes how one table imports another's key. The results are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ. CA IDMS doesn't have a primary key clause in the DDL CREATE TABLE syntax. Instead, primary keys are defined using a CREATE UNIQUE CALC KEY or a CREATE UNIQUE INDEX statement.

Specified by:
getCrossReference in interface java.sql.DatabaseMetaData
Parameters:
primaryCatalog - ignored
primarySchema - primary key table schema; null uses the CURRENT SCHEMA, if any.
primaryTable - primary key table name
foreignCatalog - ignored
foreignSchema - foreign key table schema; null uses the CURRENT SCHEMA, if any.
foreignTable - foreign key table name
Returns:
ResultSet - each row is an foreign key description
Throws:
java.sql.SQLException - if a database-access error occurs.

supportsBatchUpdates

public boolean supportsBatchUpdates()
                             throws java.sql.SQLException
The IDMS JDBC driver supports batch updates.

Specified by:
supportsBatchUpdates in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - never
Since:
16.0

supportsResultSetType

public boolean supportsResultSetType(int param)
                              throws java.sql.SQLException
Not currently supported.

Specified by:
supportsResultSetType in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

supportsResultSetConcurrency

public boolean supportsResultSetConcurrency(int param,
                                            int param1)
                                     throws java.sql.SQLException
Not currently supported.

Specified by:
supportsResultSetConcurrency in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

deletesAreDetected

public boolean deletesAreDetected(int param)
                           throws java.sql.SQLException
Not currently supported.

Specified by:
deletesAreDetected in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

insertsAreDetected

public boolean insertsAreDetected(int param)
                           throws java.sql.SQLException
Not currently supported.

Specified by:
insertsAreDetected in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

updatesAreDetected

public boolean updatesAreDetected(int param)
                           throws java.sql.SQLException
Not currently supported.

Specified by:
updatesAreDetected in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

ownDeletesAreVisible

public boolean ownDeletesAreVisible(int param)
                             throws java.sql.SQLException
Not currently supported.

Specified by:
ownDeletesAreVisible in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

ownInsertsAreVisible

public boolean ownInsertsAreVisible(int param)
                             throws java.sql.SQLException
Not currently supported.

Specified by:
ownInsertsAreVisible in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

ownUpdatesAreVisible

public boolean ownUpdatesAreVisible(int param)
                             throws java.sql.SQLException
Not currently supported.

Specified by:
ownUpdatesAreVisible in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

othersDeletesAreVisible

public boolean othersDeletesAreVisible(int param)
                                throws java.sql.SQLException
Not currently supported.

Specified by:
othersDeletesAreVisible in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

othersInsertsAreVisible

public boolean othersInsertsAreVisible(int param)
                                throws java.sql.SQLException
Not implemented yet...

Specified by:
othersInsertsAreVisible in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - Not!
Since:
1.2

othersUpdatesAreVisible

public boolean othersUpdatesAreVisible(int param)
                                throws java.sql.SQLException
Not currently supported.

Specified by:
othersUpdatesAreVisible in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - never
Since:
1.2

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
Gets the Connection that owns this object.

Specified by:
getConnection in interface java.sql.DatabaseMetaData
Returns:
the IdmsConnection object
Throws:
java.sql.SQLException - never
Since:
1.2

getUDTs

public java.sql.ResultSet getUDTs(java.lang.String str,
                                  java.lang.String str1,
                                  java.lang.String str2,
                                  int[] values)
                           throws java.sql.SQLException
IDMS does not support user defined types.

Specified by:
getUDTs in interface java.sql.DatabaseMetaData
Parameters:
str - ignored
str1 - ignored
str2 - ignored
values - ignored
Returns:
an empty result set.
Throws:
java.sql.SQLException - in the unlikely event of an error.
Since:
1.2

supportsGetGeneratedKeys

public boolean supportsGetGeneratedKeys()
                                 throws java.sql.SQLException
IDMS does not support generated keys.

Specified by:
supportsGetGeneratedKeys in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - Not!
Since:
1.4

supportsMultipleOpenResults

public boolean supportsMultipleOpenResults()
                                    throws java.sql.SQLException
Starting with r17 CA IDMS supports multiple open ResultSets.

Specified by:
supportsMultipleOpenResults in interface java.sql.DatabaseMetaData
Returns:
true if r17 or later, false otherwise
Throws:
java.sql.SQLException - not really.
Since:
1.4

supportsNamedParameters

public boolean supportsNamedParameters()
                                throws java.sql.SQLException
IDMS supports named parameters as defined by JDBC, except when the SQL syntax string specifies IDMS proprietary keyword parameters. If used, keyword parameters must be set using the ordinal index of the parameter marker within the the SQL syntax string.

Specified by:
supportsNamedParameters in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - Not!
Since:
1.4

supportsResultSetHoldability

public boolean supportsResultSetHoldability(int param)
                                     throws java.sql.SQLException
Reports support for holdability. CA IDMS always supports CLOSE_CURSORS_AT_COMMIT, and supports HOLD_CURSORS_OVER_COMMIT unless the connection is an XAConnection.

Specified by:
supportsResultSetHoldability in interface java.sql.DatabaseMetaData
Parameters:
param - ResultSet holdability option
Returns:
true if supported, false otherwise
Throws:
java.sql.SQLException - not really
Since:
5.0
See Also:
getResultSetHoldability()

supportsSavepoints

public boolean supportsSavepoints()
                           throws java.sql.SQLException
IDMS does not support Savepoints.

Specified by:
supportsSavepoints in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - Not!
Since:
1.4

supportsStatementPooling

public boolean supportsStatementPooling()
                                 throws java.sql.SQLException
IDMS Server supports JDBC statement pooling, although starting with release 16.0 IDMS itself supports a global statement cache, which provides most of the performance benefits generally associated with statement pooling in JDBC.

Specified by:
supportsStatementPooling in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - Not!
Since:
1.4

locatorsUpdateCopy

public boolean locatorsUpdateCopy()
                           throws java.sql.SQLException
IDMS does not support locators.

Specified by:
locatorsUpdateCopy in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - Not!
Since:
1.4

getDatabaseMajorVersion

public int getDatabaseMajorVersion()
                            throws java.sql.SQLException
Gets the IDMS major release.

Specified by:
getDatabaseMajorVersion in interface java.sql.DatabaseMetaData
Returns:
major release number
Throws:
java.sql.SQLException - Not!
Since:
1.4

getDatabaseMinorVersion

public int getDatabaseMinorVersion()
                            throws java.sql.SQLException
Gets the IDMS minor release.

Specified by:
getDatabaseMinorVersion in interface java.sql.DatabaseMetaData
Returns:
point release number
Throws:
java.sql.SQLException - Not!
Since:
1.4

getJDBCMajorVersion

public int getJDBCMajorVersion()
                        throws java.sql.SQLException
Gets the major version of JDBC that IDMS supports.

Specified by:
getJDBCMajorVersion in interface java.sql.DatabaseMetaData
Returns:
3
Throws:
java.sql.SQLException - Not!
Since:
1.4

getJDBCMinorVersion

public int getJDBCMinorVersion()
                        throws java.sql.SQLException
Gets the minor version of JDBC that IDMS supports.

Specified by:
getJDBCMinorVersion in interface java.sql.DatabaseMetaData
Returns:
0
Throws:
java.sql.SQLException - Not!
Since:
1.4

getResultSetHoldability

public int getResultSetHoldability()
                            throws java.sql.SQLException
Gets the default holdability for this database. When a COMMIT is issued IDMS closes all cursors and deletes all prepared statements. Cursor position and prepared statements are preserved when a COMMIT CONTINUE is issued. The IDMS JDBC driver implements ResultSet holdability using these variations of the COMMIT commands. On the Windows platform the default behavior can be specifed using the ODBC Administrator and stored in the registry. On other platforms the CommitBehavior key can be set in the [Options] section in the configuration file, or in the caidms.properties file. The ODBC-JDBC option mappings are described in the following table:
CommitBehaviorValueHoldability
DELETE 0 CLOSE_CURSORS_AT_COMMIT
CLOSE 1 CLOSE_CURSORS_AT_COMMIT
PRESERVE2 HOLD_CURSORS_OVER_COMMIT
HOLD_CURSORS_OVER_COMMIT is not supported for an XAConnection.

Specified by:
getResultSetHoldability in interface java.sql.DatabaseMetaData
Returns:
the default holdability
Throws:
java.sql.SQLException - Not!
Since:
5.0
See Also:
IdmsConnectOptions.COMMIT_BEHAVIOR

getSQLStateType

public int getSQLStateType()
                    throws java.sql.SQLException
The SQLSTATEs that IDMS supports.

Specified by:
getSQLStateType in interface java.sql.DatabaseMetaData
Returns:
sqlStateSQL
Throws:
java.sql.SQLException - Not!
Since:
1.4

getAttributes

public java.sql.ResultSet getAttributes(java.lang.String str,
                                        java.lang.String str1,
                                        java.lang.String str2,
                                        java.lang.String str3)
                                 throws java.sql.SQLException
IDMS does not support user defined types.

Specified by:
getAttributes in interface java.sql.DatabaseMetaData
Parameters:
str - ignored
str1 - ignored
str2 - ignored
str3 - ignored
Returns:
an empty ResultSet
Throws:
java.sql.SQLException - in the unlikely event of an error.
Since:
1.4

getSuperTables

public java.sql.ResultSet getSuperTables(java.lang.String str,
                                         java.lang.String str1,
                                         java.lang.String str2)
                                  throws java.sql.SQLException
IDMS does not support user defined types.

Specified by:
getSuperTables in interface java.sql.DatabaseMetaData
Parameters:
str - ignored
str1 - ignored
str2 - ignored
Returns:
an empty result set
Throws:
java.sql.SQLException - in the unlikely event of an error.
Since:
1.4

getSuperTypes

public java.sql.ResultSet getSuperTypes(java.lang.String str,
                                        java.lang.String str1,
                                        java.lang.String str2)
                                 throws java.sql.SQLException
IDMS does not support user defined types.

Specified by:
getSuperTypes in interface java.sql.DatabaseMetaData
Parameters:
str - ignored
str1 - ignored
str2 - ignored
Returns:
an empty result set
Throws:
java.sql.SQLException - in the unlikely event of an error.
Since:
1.4

autoCommitFailureClosesAllResultSets

public boolean autoCommitFailureClosesAllResultSets()
                                             throws java.sql.SQLException
CA IDMS closes all result sets if a commit failure occurs.

Specified by:
autoCommitFailureClosesAllResultSets in interface java.sql.DatabaseMetaData
Returns:
true
Throws:
java.sql.SQLException - - can't really happen
Since:
1.6

getClientInfoProperties

public java.sql.ResultSet getClientInfoProperties()
                                           throws java.sql.SQLException
Retrieves a list of supported ClientInfo properties

Specified by:
getClientInfoProperties in interface java.sql.DatabaseMetaData
Returns:
result set describing the properties
Throws:
java.sql.SQLException - in the unlikely event of an error.
Since:
1.6

getFunctionColumns

public java.sql.ResultSet getFunctionColumns(java.lang.String catalog,
                                             java.lang.String schema,
                                             java.lang.String function,
                                             java.lang.String column)
                                      throws java.sql.SQLException
Gets a description of user or system function parameters available in a catalog. Lists parameters for user-written or system functions defined using the CREATE FUNCTION DDL supported by IDMS 16.0 and later. The SYSCA.ACCESSIBLE_FUNCS view must defined in the catalog to use this method, which returns the same functions as the getFunctions method.

ResultSet columns:

  1. FUNCTION_CAT String =>function catalog (always null)
  2. FUNCTION_SCHEM String =>function schema (never null)
  3. FUNCTION_NAME String =>function name
  4. COLUMN_NAME String => column/parameter name
  5. COLUMN_TYPE short => kind of column/parameter:
    • 0 = functionColumnUnknown - nobody knows
    • 1 = functionColumnIn - IN parameter
    • 2 = functionColumnInOut - INOUT parameter
    • 3 = functionColumnOut - OUT parameter
    • 4 = functionColumnReturn - function return value
    • 5 = functionColumnResult - Indicates that the parameter or column is a column in the ResultSet
  6. DATA_TYPE int => SQL type from java.sql.Types
  7. TYPE_NAME String => SQL type name
  8. PRECISION int => precision
  9. LENGTH int => length in bytes of data
  10. SCALE short => scale
  11. RADIX short => radix
  12. NULLABLE short => can it contain NULL.
    • 0 = functionNoNulls - does not allow NULL values
    • 1 = funtionNullable - allows NULL values
    • 2 = functionNullableUnknown - nullability unknown
  13. REMARKS String => explanatory comment on the function
  14. CHAR_OCTET_LENGTH int => the maximum length of binary and character based columns
  15. ORDINAL_POSITION int => the ordinal position, starting from 1
  16. IS_NULLABLE String => ISO rules are used to determine the nullability for a column.
    • YES --- if the parameter can include NULLs
    • NO --- if the parameter cannot include NULLs
    • empty string --- if the nullability for the parameter is unknown
  17. SPECIFIC_NAME String => the name which uniquely identifies this function within its schema

Specified by:
getFunctionColumns in interface java.sql.DatabaseMetaData
Parameters:
catalog - a catalog name ignored
schema - a schema name pattern; "" uses the CURRENT SCHEMA, if any.
function - a function name pattern
column - a column name pattern
Returns:
the ResultSet containing the list of matching function parameters
Throws:
java.sql.SQLException - if an error occurs
Since:
1.6
See Also:
getFunctions(java.lang.String, java.lang.String, java.lang.String)

getFunctions

public java.sql.ResultSet getFunctions(java.lang.String c,
                                       java.lang.String s,
                                       java.lang.String f)
                                throws java.sql.SQLException
Returns a ResultSet which represents system or user functions defined in the IDMS system. Lists functions defined using the CREATE FUNCTION DDL statement supported by IDMS 16.0 and later. The SYSCA.ACCESSIBLE_FUNCS view must defined in the catalog to use this method.

Specified by:
getFunctions in interface java.sql.DatabaseMetaData
Parameters:
c - catalog - ignored; not supported by IDMS
s - schemaNamePattern
f - functionNamePattern
Returns:
the ResultSet containing the list of matching functions, or null if IDMS system is not 16.0 or later.
Throws:
java.sql.SQLException - in the unlikely event of an error.
Since:
1.6

getRowIdLifetime

public java.sql.RowIdLifetime getRowIdLifetime()
                                        throws java.sql.SQLException
Returns the expected lifetime of a RowId value. RowId is not supported in IDMS prior to r16. In r16 and later, RowId is essentially valid for the life of a transaction. However, even within a transaction there are instances in which a row with a particular RowId could be deleted and re-added by another transaction.

In IDMS, RowId equates to the DBKey of the underlying database record. It can never be null, and it cannot be updated or inserted.

Specified by:
getRowIdLifetime in interface java.sql.DatabaseMetaData
Returns:
ROWID_VALID_OTHER for IDMS r16 and later; otherwise ROWID_UNSUPPORTED
Throws:
java.sql.SQLException - not really
Since:
1.6

getSchemas

public java.sql.ResultSet getSchemas(java.lang.String cat,
                                     java.lang.String schema)
                              throws java.sql.SQLException
Retrieves the schema names available in this database. The results are ordered by TABLE_CATALOG (always null for CA IDMS) and TABLE_SCHEM.

Specified by:
getSchemas in interface java.sql.DatabaseMetaData
Parameters:
cat - ignored; IDMS doesn't use catalogs
schema - pattern; this can be a string which includes '%' and '_' characters, as noted in the CA IDMS SQL Reference. Also see the JDBC DatabaseMetaData API documentation. If this parameter is null, the effect is the same as though getSchemas() has been executed.

The schema columns are:

  1. TABLE_SCHEM String => schema name
  2. TABLE_CATALOG String => always null
Returns:
ResultSet - each row has a schema name
Throws:
java.sql.SQLException - in the unlikely event of an error.
Since:
1.6

supportsStoredFunctionsUsingCallSyntax

public boolean supportsStoredFunctionsUsingCallSyntax()
                                               throws java.sql.SQLException
A function in IDMS can only be invoked within value expressions and cannot be the object of a Call command.

Specified by:
supportsStoredFunctionsUsingCallSyntax in interface java.sql.DatabaseMetaData
Returns:
false
Throws:
java.sql.SQLException - not really
Since:
1.6


Copyright © 2009 CA, All rights reserved