summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/sdbc/XDatabaseMetaData.idl')
-rw-r--r--offapi/com/sun/star/sdbc/XDatabaseMetaData.idl2613
1 files changed, 2613 insertions, 0 deletions
diff --git a/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl
new file mode 100644
index 000000000000..19d0d0a3a4b2
--- /dev/null
+++ b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl
@@ -0,0 +1,2613 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: XDatabaseMetaData.idl,v $
+ * $Revision: 1.21 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_sdbc_XDatabaseMetaData_idl__
+#define __com_sun_star_sdbc_XDatabaseMetaData_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_sdbc_SQLException_idl__
+#include <com/sun/star/sdbc/SQLException.idl>
+#endif
+
+
+ module com { module sun { module star { module sdbc {
+
+ published interface XResultSet;
+ published interface XConnection;
+
+/** provides comprehensive information about the database as a whole.
+
+
+ <p>Many of the methods here return lists of information in
+ the form of
+ <type scope="com::sun::star::sdbc">XResultSet</type>
+ objects.
+ You can use the normal <type scope="com::sun::star::sdbc">XResultSet</type>
+ methods such as
+ <member scope="com::sun::star::sdbc">XResultSet::getString()</member>
+ and
+ <member scope="com::sun::star::sdbc">XResultSet::getInt()</member>
+ to retrieve the data from these XResultSets. If a given form of
+ metadata is not available, these methods should throw a
+ <type scope="com::sun::star::sdbc">SQLException</type>
+ .
+ That a value of <type scope="com::sun::star::sdbc">XResultSet</type> is <NULL/>
+ can be chaked with the method <member scope="com::sun::star::sdbc">XResultSet::wasNull()</member>.
+ In the text only "(may be <NULL/>)" is mentioned for this case.
+ </p>
+ <p>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 <VOID/>,
+ that argument's criteria will be dropped from the search.
+ </p>
+ <p>
+ A
+ <type scope="com::sun::star::sdbc">SQLException</type>
+ will be thrown if a driver does not support
+ a meta data method. In the case of methods that return an XResultSet,
+ either an XResultSet (which may be empty) is returned or a
+ SQLException is thrown.</p>
+ */
+published interface XDatabaseMetaData: com::sun::star::uno::XInterface
+{
+
+ /** Can all the procedures returned by getProcedures be called by the
+ current user?
+
+ @return
+ <TRUE/>
+ if the user is allowed to call all procedures returned by getProcedures
+ otherwise
+ <FALSE/>
+ .
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean allProceduresAreCallable() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can all the tables returned by getTable be SELECTed by the
+ current user?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean allTablesAreSelectable() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns the URL for the database connection
+ */
+ string getURL() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns the user name from this database connection.
+ */
+ string getUserName() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** checks if the database in read-only mode.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean isReadOnly() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are NULL values sorted high?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean nullsAreSortedHigh() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are NULL values sorted low?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean nullsAreSortedLow() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are NULL values sorted at the start regardless of sort order?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean nullsAreSortedAtStart() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are NULL values sorted at the end, regardless of sort order?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean nullsAreSortedAtEnd() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns the name of the database product.
+ */
+ string getDatabaseProductName() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns the version of the database product.
+ */
+ string getDatabaseProductVersion() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns the name of the SDBC driver.
+ */
+ string getDriverName() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns the version number of the SDBC driver.
+ */
+ string getDriverVersion() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns the SDBC driver major version number.
+ */
+ long getDriverMajorVersion();
+ //-------------------------------------------------------------------------
+
+ /** returns the SDBC driver minor version number.
+ */
+ long getDriverMinorVersion();
+ //-------------------------------------------------------------------------
+
+ /** use the database local files to save the tables.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean usesLocalFiles() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** use the database one local file to save for each table.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean usesLocalFilePerTable() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** use the database 'mixed case unquoted SQL identifiers' case sensitive.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsMixedCaseIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database treat mixed case unquoted SQL identifiers as
+ case insensitive and store them in upper case?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean storesUpperCaseIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database treat mixed case unquoted SQL identifiers as
+ case insensitive and store them in lower case?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean storesLowerCaseIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database treat mixed case unquoted SQL identifiers as
+ case insensitive and store them in mixed case?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean storesMixedCaseIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database treat mixed case quoted SQL identifiers as
+ case sensitive and as a result store them in mixed case?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsMixedCaseQuotedIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database treat mixed case quoted SQL identifiers as
+ case insensitive and store them in upper case?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean storesUpperCaseQuotedIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database treat mixed case quoted SQL identifiers as
+ case insensitive and store them in lower case?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean storesLowerCaseQuotedIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database treat mixed case quoted SQL identifiers as
+ case insensitive and store them in mixed case?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean storesMixedCaseQuotedIdentifiers() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** What's the string used to quote SQL identifiers?
+ This returns a space " " if identifier quoting is not supported.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getIdentifierQuoteString() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a comma-separated list of all a database's SQL keywords
+ that are NOT also SQL92 keywords.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getSQLKeywords() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a comma-separated list of math functions. These are the
+ X/Open CLI math function names used in the SDBC function escape
+ clause.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getNumericFunctions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a comma-separated list of string functions. These are the
+ X/Open CLI string function names used in the SDBC function escape
+ clause.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getStringFunctions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a comma-separated list of system functions. These are the
+ X/Open CLI system function names used in the SDBC function escape
+ clause.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getSystemFunctions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a comma-separated list of time and date functions.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getTimeDateFunctions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets the string that can be used to escape wildcard characters.
+ This is the string that can be used to escape '_' or '%' in
+ the string pattern style catalog search parameters.
+
+
+ <p>
+ The '_' character represents any single character.
+ </p>
+ <p>
+ The '%' character represents any sequence of zero or
+ more characters.
+ </p>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getSearchStringEscape() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets all the "extra" characters that can be used in unquoted
+ identifier names (those beyond a-z, A-Z, 0-9 and _).
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getExtraNameCharacters() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** support the Database "ALTER TABLE" with add column?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsAlterTableWithAddColumn() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** support the Database "ALTER TABLE" with drop column?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsAlterTableWithDropColumn() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** support the Database column aliasing?
+
+
+ <p>
+ The SQL AS clause can be used to provide names for
+ computed columns or to provide alias names for columns as required.
+ </p>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsColumnAliasing() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** are concatenations between NULL and non-NULL values NULL?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean nullPlusNonNullIsNull() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** <TRUE/>
+ , if the Database supports the CONVERT function between SQL types,
+ otherwise
+ <FALSE/>
+ .
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsTypeConversion() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** <TRUE/>
+ , if the Database supports the CONVERT between the given SQL types
+ otherwise
+ <FALSE/>
+ .
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsConvert([in]long fromType, [in]long toType)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are table correlation names supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsTableCorrelationNames() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** If table correlation names are supported, are they restricted
+ to be different from the names of the tables?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsDifferentTableCorrelationNames()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are expressions in "ORDER BY" lists supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsExpressionsInOrderBy() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can an "ORDER BY" clause use columns not in the SELECT statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsOrderByUnrelated() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Is some form of "GROUP BY" clause supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsGroupBy() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a "GROUP BY" clause use columns not in the SELECT?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsGroupByUnrelated() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a "GROUP BY" clause add columns not in the SELECT
+ provided it specifies all the columns in the SELECT?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsGroupByBeyondSelect() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Is the escape character in "LIKE" clauses supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsLikeEscapeClause() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are multiple XResultSets from a single execute supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsMultipleResultSets() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can we have multiple transactions open at once (on different
+ connections)?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsMultipleTransactions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can columns be defined as non-nullable?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsNonNullableColumns() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** <TRUE/>, if the database supports ODBC Minimum SQL grammar,
+ otherwise <FALSE/>.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsMinimumSQLGrammar() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** <TRUE/>, if the database supports ODBC Core SQL grammar,
+ otherwise <FALSE/>.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsCoreSQLGrammar() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /**
+ <TRUE/>, if the database supports ODBC Extended SQL grammar,
+ otherwise <FALSE/>.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsExtendedSQLGrammar() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** @returns
+ <TRUE/>, if the database supports ANSI92 entry level SQL grammar,
+ otherwise <FALSE/>.
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsANSI92EntryLevelSQL() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** @returns
+ <TRUE/>, if the database supports ANSI92 intermediate SQL grammar,
+ otherwise <FALSE/>.
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsANSI92IntermediateSQL() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** @returns
+ <TRUE/>, if the database supports ANSI92 full SQL grammar,
+ otherwise <FALSE/>.
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsANSI92FullSQL() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** returns
+ <TRUE/>, if the Database supports SQL Integrity Enhancement Facility,
+ otherwise <FALSE/>.
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsIntegrityEnhancementFacility() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** @returns
+ <TRUE/>, if some form of outer join is supported,
+ otherwise <FALSE/>.
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsOuterJoins() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** @returns
+ <TRUE/>, if full nested outer joins are supported,
+ otherwise <FALSE/>.
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsFullOuterJoins() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** @returns
+ <TRUE/>, if there is limited support for outer joins.
+ (This will be <TRUE/> if supportFullOuterJoins is <TRUE/>.)
+ <FALSE/> is returned otherwise.
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsLimitedOuterJoins() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the database vendor's preferred term for "schema"
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getSchemaTerm() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the database vendor's preferred term for "procedure"
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getProcedureTerm() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the database vendor's preferred term for "catalog"
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getCatalogTerm() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does a catalog appear at the start of a qualified table name?
+ (Otherwise it appears at the end)
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean isCatalogAtStart() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the separator between catalog and table name
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ string getCatalogSeparator() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a schema name be used in a data manipulation statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSchemasInDataManipulation() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a schema name be used in a procedure call statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSchemasInProcedureCalls() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a schema name be used in a table definition statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSchemasInTableDefinitions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a schema name be used in an index definition statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSchemasInIndexDefinitions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a schema name be used in a privilege definition statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSchemasInPrivilegeDefinitions()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a catalog name be used in a data manipulation statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsCatalogsInDataManipulation() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a catalog name be used in a procedure call statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsCatalogsInProcedureCalls() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a catalog name be used in a table definition statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsCatalogsInTableDefinitions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a catalog name be used in an index definition statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsCatalogsInIndexDefinitions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can a catalog name be used in a privilege definition statement?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsCatalogsInPrivilegeDefinitions()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Is positioned DELETE supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsPositionedDelete() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Is positioned UPDATE supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsPositionedUpdate() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Is SELECT for UPDATE supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSelectForUpdate() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are stored procedure calls using the stored procedure escape
+ syntax supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsStoredProcedures() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are subqueries in comparison expressions supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSubqueriesInComparisons() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are subqueries in 'exists' expressions supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSubqueriesInExists() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are subqueries in 'in' statements supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSubqueriesInIns() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are subqueries in quantified expressions supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsSubqueriesInQuantifieds() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Are correlated subqueries supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsCorrelatedSubqueries() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Is SQL UNION supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsUnion() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Is SQL UNION ALL supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsUnionAll() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can cursors remain open across commits?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsOpenCursorsAcrossCommit() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can cursors remain open across rollbacks?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsOpenCursorsAcrossRollback() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can statements remain open across commits?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsOpenStatementsAcrossCommit() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Can statements remain open across rollbacks?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsOpenStatementsAcrossRollback()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximal number of hex characters in an inline binary literal
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxBinaryLiteralLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the max length for a character literal
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxCharLiteralLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the limit on column name length
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxColumnNameLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum number of columns in a "GROUP BY" clause
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxColumnsInGroupBy() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum number of columns allowed in an index
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxColumnsInIndex() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum number of columns in an "ORDER BY" clause
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxColumnsInOrderBy() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum number of columns in a "SELECT" list
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxColumnsInSelect() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum number of columns in a table
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxColumnsInTable() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the number of active connections at a time to this database.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxConnections() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum cursor name length
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxCursorNameLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length of an index (in bytes)
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxIndexLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length allowed for a schema name
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxSchemaNameLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length of a procedure name
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxProcedureNameLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length of a catalog name
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxCatalogNameLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length of a single row.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxRowSize() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
+ blobs?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean doesMaxRowSizeIncludeBlobs() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length of a SQL statement
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxStatementLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximal number of open active statements at one time to this database
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxStatements() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length of a table name
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxTableNameLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum number of tables in a SELECT statement
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxTablesInSelect() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the maximum length of a user name
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ long getMaxUserNameLength() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** return the database default transaction isolation level.
+ The values are defined in
+ <type scope="com::sun::star::sdbc">TransactionIsolation</type>.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ @see com::sun::star::sdbc::XConnection
+ */
+ long getDefaultTransactionIsolation() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** support the Database transactions?
+ If not, invoking the method
+ <member scope="com::sun::star::sdbc">XConnection::commit()</member>
+ is a noop and the
+ isolation level is TransactionIsolation_NONE.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsTransactions() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does this database support the given transaction isolation level?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ @see com::sun::star::sdbc::Connection
+ */
+ boolean supportsTransactionIsolationLevel([in]long level)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** support the Database both data definition and data manipulation statements
+ within a transaction?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+<!-- JRH: Unclear on the intent of these many support questions.
+ If asking, it should state, "Does the Database support both ....?
+ If declaring, it should state something like the following:
+
+ metadata: supportsDataDefinitionAndDataManipulationTransactions
+
+ "provides support for both data definition and data manipulation statements within a transaction."
+ --> */
+ boolean supportsDataDefinitionAndDataManipulationTransactions()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** are only data manipulation statements within a transaction
+ supported?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsDataManipulationTransactionsOnly()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** does a data definition statement within a transaction force the
+ transaction to commit?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean dataDefinitionCausesTransactionCommit()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** is a data definition statement within a transaction ignored?
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean dataDefinitionIgnoredInTransactions()
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Gets a description of the stored procedures available in a
+ catalog.
+
+
+ <p>
+ Only procedure descriptions matching the schema and
+ procedure name criteria are returned. They are ordered by
+ PROCEDURE_SCHEM, and PROCEDURE_NAME.
+ </p>
+ <p>
+ Each procedure description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>PROCEDURE_NAME</b> string => procedure name
+ </li>
+ <li> reserved for future use
+ </li>
+ <li> reserved for future use
+ </li>
+ <li> reserved for future use
+ </li>
+ <li>
+ <b>REMARKS</b> string => explanatory comment on the procedure
+ </li>
+ <li>
+ <b>PROCEDURE_TYPE</b> short => kind of procedure:
+ <ul>
+ <li> UNKNOWN - May return a result
+ </li>
+ <li> NO - Does not return a result
+ </li>
+ <li> RETURN - Returns a result
+ </li>
+ </ul>
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schemaPattern
+ a schema name pattern; "" retrieves those without a schema
+ @param procedureNamePattern
+ a procedure name pattern
+ @returns
+ each row is a procedure description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getProcedures([in]any catalog, [in]string schemaPattern,
+ [in]string procedureNamePattern) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of a catalog's stored procedure parameters
+ and result columns.
+
+
+ <p>
+ Only descriptions matching the schema, procedure and
+ parameter name criteria are returned. They are ordered by
+ PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value,
+ if any, is first. Next are the parameter descriptions in call
+ order. The column descriptions follow in column number order.
+ </p>
+ <p>Each row in the XResultSet is a parameter description or
+ column description with the following fields:
+ </p>
+ <ol>
+ <li>
+ <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>PROCEDURE_NAME</b> string => procedure name
+ </li>
+ <li>
+ <b>COLUMN_NAME</b> string => column/parameter name
+ </li>
+ <li>
+ <b>COLUMN_TYPE</b> Short => kind of column/parameter:
+ <ul>
+ <li> UNKNOWN - nobody knows
+ </li>
+ <li> IN - IN parameter
+ </li>
+ <li> INOUT - INOUT parameter
+ </li>
+ <li> OUT - OUT parameter
+ </li>
+ <li> RETURN - procedure return value
+ </li>
+ <li> RESULT - result column in XResultSet
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>DATA_TYPE</b> short => SQL type from java.sql.Types
+ </li>
+ <li>
+ <b>TYPE_NAME</b> string => SQL type name, for a UDT type the
+ type name is fully qualified
+ </li>
+ <li>
+ <b>PRECISION</b> long => precision
+ </li>
+ <li>
+ <b>LENGTH</b> long => length in bytes of data
+ </li>
+ <li>
+ <b>SCALE</b> short => scale
+ </li>
+ <li>
+ <b>RADIX</b> short => radix
+ </li>
+ <li>
+ <b>NULLABLE</b> short => can it contain NULL?
+ <ul>
+ <li> NO_NULLS - does not allow NULL values
+ </li>
+ <li> NULLABLE - allows NULL values
+ </li>
+ <li> NULLABLE_UNKNOWN - nullability unknown
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>REMARKS</b> string => comment describing parameter/column
+ </li>
+ </ol>
+ <p>
+ <b>Note:</b> Some databases may not return the column
+ descriptions for a procedure. Additional columns beyond
+ REMARKS can be defined by the database.
+ </p>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schemaPattern
+ a schema name pattern; "" retrieves those without a schema
+ @param procedureNamePattern
+ a procedure name pattern
+ @param columnNamePattern
+ a column name pattern
+ @returns
+ each row describes a stored procedure parameter or column
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getProcedureColumns([in]any catalog, [in]string schemaPattern,
+ [in]string procedureNamePattern,
+ [in]string columnNamePattern)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of tables available in a catalog.
+
+
+ <p>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.
+ </p>
+ <p>Each table description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_NAME</b> string => table name
+ </li>
+ <li>
+ <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
+ "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
+ "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
+ </li>
+ <li>
+ <b>REMARKS</b> string => explanatory comment on the table
+ </li>
+ </ol>
+ <p>
+ <b>Note:</b> Some databases may not return information for
+ all tables.
+ </p>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schemaPattern
+ a schema name pattern; "" retrieves those without a schema
+ @param tableNamePattern
+ a table name pattern
+ @param types
+ a list of table types to include
+ @returns
+ each row is a table description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getTables([in]any catalog, [in]string schemaPattern,
+ [in]string tableNamePattern, [in]sequence<string> types)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Gets the schema names available in this database. The results
+ are ordered by schema name.
+
+
+ <p>The schema column is:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_SCHEM</b> string => schema name
+ </li>
+ </ol>
+ @returns
+ each row has a single String column that is a schema name
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getSchemas() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets the catalog names available in this database. The results
+ are ordered by catalog name.
+
+
+ <p>The catalog column is:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_CAT</b> string => catalog name
+ </li>
+ </ol>
+ @returns
+ each row has a single String column that is a catalog name
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getCatalogs() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets the table types available in this database. The results
+ are ordered by table type.
+
+
+ <p>The table type is:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
+ "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
+ "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
+ </li>
+ </ol>
+ @returns
+ each row has a single String column that is a table type
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getTableTypes() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of table columns available in
+ the specified catalog.
+
+
+ <p>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.
+ </p>
+ <p>Each column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_NAME</b> string => table name
+ </li>
+ <li>
+ <b>COLUMN_NAME</b> string => column name
+ </li>
+ <li>
+ <b>DATA_TYPE</b> short => SQL type from java.sql.Types
+ </li>
+ <li>
+ <b>TYPE_NAME</b> string => Data source dependent type name,
+ for a UDT the type name is fully qualified
+ </li>
+ <li>
+ <b>COLUMN_SIZE</b> long => column size. For char or date
+ types this is the maximum number of characters, for numeric or
+ decimal types this is precision.
+ </li>
+ <li>
+ <b>BUFFER_LENGTH</b> is not used.
+ </li>
+ <li>
+ <b>DECIMAL_DIGITS</b> long => the number of fractional digits
+ </li>
+ <li>
+ <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2)
+ </li>
+ <li>
+ <b>NULLABLE</b> long => is NULL allowed?
+ <ul>
+ <li> NO_NULLS - might not allow NULL values
+ </li>
+ <li> NULABLE - definitely allows NULL values
+ </li>
+ <li> NULLABLE_UNKNOWN - nullability unknown
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>REMARKS</b> string => comment describing column (may be <NULL/>)
+ </li>
+ <li>
+ <b>COLUMN_DEF</b> string => default value (may be <NULL/>)
+ </li>
+ <li>
+ <b>SQL_DATA_TYPE</b> long => unused
+ </li>
+ <li>
+ <b>SQL_DATETIME_SUB</b> long => unused
+ </li>
+ <li>
+ <b>CHAR_OCTET_LENGTH</b> long => for char types the
+ maximum number of bytes in the column
+ </li>
+ <li>
+ <b>ORDINAL_POSITION</b> int => index of column in table
+ (starting at 1)
+ </li>
+ <li>
+ <b>IS_NULLABLE</b> string => "NO" means column definitely
+ does not allow NULL values; "YES" means the column might
+ allow NULL values. An empty string means nobody knows.
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schemaPattern
+ a schema name pattern; "" retrieves those without a schema
+ @param tableNamePattern
+ a table name pattern
+ @param columnNamePattern
+ a column name pattern
+ @returns
+ each row is a column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getColumns([in]any catalog, [in]string schemaPattern,
+ [in]string tableNamePattern, [in]string columnNamePattern)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of the access rights for a table's columns.
+
+
+ <p>
+ Only privileges matching the column name criteria are
+ returned. They are ordered by COLUMN_NAME and PRIVILEGE.
+ </p>
+ <p>Each privilige description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_NAME</b> string => table name
+ </li>
+ <li>
+ <b>COLUMN_NAME</b> string => column name
+ </li>
+ <li>
+ <b>GRANTOR</b> => grantor of access (may be <NULL/>)
+ </li>
+ <li>
+ <b>GRANTEE</b> string => grantee of access
+ </li>
+ <li>
+ <b>PRIVILEGE</b> string => name of access (SELECT,
+ INSERT, UPDATE, REFERENCES, ...)
+ </li>
+ <li>
+ <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
+ to grant to others; "NO" if not; <NULL/> if unknown
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schema
+ a schema name ; "" retrieves those without a schema
+ @param table
+ a table name
+ @param columnNamePattern
+ a column name pattern
+ @returns
+ each row is a column privilege description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getColumnPrivileges([in]any catalog, [in]string schema,
+ [in]string table, [in]string columnNamePattern) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of the access rights for each table available
+ in a catalog. Note that a table privilege applies to one or
+ more columns in the table. It would be wrong to assume that
+ this priviledge applies to all columns (this may be <TRUE/> for
+ some systems but is not <TRUE/> for all.)
+
+
+ <p>Only privileges matching the schema and table name
+ criteria are returned. They are ordered by TABLE_SCHEM,
+ TABLE_NAME, and PRIVILEGE.
+ </p>
+ <p>Each privilige description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_NAME</b> string => table name
+ </li>
+ <li>
+ <b>GRANTOR</b> => grantor of access (may be <NULL/>)
+ </li>
+ <li>
+ <b>GRANTEE</b> string => grantee of access
+ </li>
+ <li>
+ <b>PRIVILEGE</b> string => name of access (SELECT,
+ INSERT, UPDATE, REFERENCES, ...)
+ </li>
+ <li>
+ <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
+ to grant to others; "NO" if not; <NULL/> if unknown
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schemaPattern
+ a schema name pattern; "" retrieves those without a schema
+ @param tableNamePattern
+ a table name pattern
+ @returns
+ each row is a table privilege description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getTablePrivileges([in]any catalog, [in]string schemaPattern,
+ [in]string tableNamePattern) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of a table's optimal set of columns that
+ uniquely identifies a row. They are ordered by SCOPE.
+
+
+ <p>Each column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>SCOPE</b> short => actual scope of result
+ <ul>
+ <li> TEMPORARY - very temporary, while using row
+ </li>
+ <li> TRANSACTION - valid for remainder of current transaction
+ </li>
+ <li> SESSION - valid for remainder of current session
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>COLUMN_NAME</b> string => column name
+ </li>
+ <li>
+ <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
+ </li>
+ <li>
+ <b>TYPE_NAME</b> string => Data source dependent type name,
+ for a UDT the type name is fully qualified
+ </li>
+ <li>
+ <b>COLUMN_SIZE</b> long => precision
+ </li>
+ <li>
+ <b>BUFFER_LENGTH</b> long => not used
+ </li>
+ <li>
+ <b>DECIMAL_DIGITS</b> short => scale
+ </li>
+ <li>
+ <b>PSEUDO_COLUMN</b> short => is this a pseudo column
+ like an Oracle ROWID
+ <ul>
+ <li> UNKNOWN - may or may not be pseudo column
+ </li>
+ <li> NOT_PSEUDO - is NOT a pseudo column
+ </li>
+ <li> PSEUDO - is a pseudo column
+ </li>
+ </ul>
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schema
+ a schema name; "" retrieves those without a schema
+ @param table
+ a table name
+ @param scope
+ the scope of interest; use same values as SCOPE
+ @param nullable
+ include columns that are nullable?
+ @returns
+ each row is a column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getBestRowIdentifier([in]any catalog, [in]string schema,
+ [in]string table, [in]long scope, [in] boolean nullable)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of a table's columns that are automatically
+ updated when any value in a row is updated. They are
+ unordered.
+
+
+ <p>Each column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>SCOPE</b> short => is not used
+ </li>
+ <li>
+ <b>COLUMN_NAME</b> string => column name
+ </li>
+ <li>
+ <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
+ </li>
+ <li>
+ <b>TYPE_NAME</b> string => Data source dependent type name
+ </li>
+ <li>
+ <b>COLUMN_SIZE</b> long => precision
+ </li>
+ <li>
+ <b>BUFFER_LENGTH</b> long => length of column value in bytes
+ </li>
+ <li>
+ <b>DECIMAL_DIGITS</b> short => scale
+ </li>
+ <li>
+ <b>PSEUDO_COLUMN</b> short => is this a pseudo column
+ like an Oracle ROWID
+ <ul>
+ <li> UNKNOWN - may or may not be pseudo column
+ </li>
+ <li> NOT_PSEUDO - is NOT a pseudo column
+ </li>
+ <li> PSEUDO - is a pseudo column
+ </li>
+ </ul>
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schema
+ a schema name; "" retrieves those without a schema
+ @param table
+ a table name
+ @returns
+ each row is a column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getVersionColumns([in]any catalog, [in]string schema,
+ [in]string table) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of a table's primary key columns. They
+ are ordered by COLUMN_NAME.
+
+
+ <p>Each primary key column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_NAME</b> string => table name
+ </li>
+ <li>
+ <b>COLUMN_NAME</b> string => column name
+ </li>
+ <li>
+ <b>KEY_SEQ</b> short => sequence number within primary key
+ </li>
+ <li>
+ <b>PK_NAME</b> string => primary key name (may be <NULL/>)
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schema
+ a schema name; "" retrieves those without a schema
+ @param table
+ a table name
+ @returns
+ each row is a primary key column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getPrimaryKeys([in]any catalog, [in]string schema,
+ [in]string table) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of the primary key columns that are
+ referenced by a table's foreign key columns (the primary keys
+ imported by a table). They are ordered by PKTABLE_CAT,
+ PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
+
+
+ <p>Each primary key column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>PKTABLE_CAT</b> string => primary key table catalog
+ being imported (may be <NULL/>)
+ </li>
+ <li>
+ <b>PKTABLE_SCHEM</b> string => primary key table schema
+ being imported (may be <NULL/>)
+ </li>
+ <li>
+ <b>PKTABLE_NAME</b> string => primary key table name
+ being imported
+ </li>
+ <li>
+ <b>PKCOLUMN_NAME</b> string => primary key column name
+ being imported
+ </li>
+ <li>
+ <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>FKTABLE_NAME</b> string => foreign key table name
+ </li>
+ <li>
+ <b>FKCOLUMN_NAME</b> string => foreign key column name
+ </li>
+ <li>
+ <b>KEY_SEQ</b> short => sequence number within foreign key
+ </li>
+ <li>
+ <b>UPDATE_RULE</b> short => What happens to
+ foreign key when primary is updated:
+ <ul>
+ <li> importedNoAction - do not allow update of primary
+ key if it has been imported
+ </li>
+ <li> importedKeyCascade - change imported key to agree
+ with primary key update
+ </li>
+ <li> importedKeySetNull - change imported key to NULL if
+ its primary key has been updated
+ </li>
+ <li> importedKeySetDefault - change imported key to default values
+ if its primary key has been updated
+ </li>
+ <li> importedKeyRestrict - same as importedKeyNoAction
+ (for ODBC 2.x compatibility)
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>DELETE_RULE</b> short => What happens to
+ the foreign key when primary is deleted.
+ <ul>
+ <li> importedKeyNoAction - do not allow delete of primary
+ key if it has been imported
+ </li>
+ <li> importedKeyCascade - delete rows that import a deleted key
+ </li>
+ <li> importedKeySetNull - change imported key to NULL if
+ its primary key has been deleted
+ </li>
+ <li> importedKeyRestrict - same as importedKeyNoAction
+ (for ODBC 2.x compatibility)
+ </li>
+ <li> importedKeySetDefault - change imported key to default if
+ its primary key has been deleted
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
+ </li>
+ <li>
+ <b>PK_NAME</b> string => primary key name (may be <NULL/>)
+ </li>
+ <li>
+ <b>DEFERRABILITY</b> short => can the evaluation of foreign key
+ constraints be deferred until commit
+ <ul>
+ <li> importedKeyInitiallyDeferred - see SQL92 for definition
+ </li>
+ <li> importedKeyInitiallyImmediate - see SQL92 for definition
+ </li>
+ <li> importedKeyNotDeferrable - see SQL92 for definition
+ </li>
+ </ul>
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schema
+ a schema name; "" retrieves those without a schema
+ @param table
+ a table name
+ @returns
+ each row is a primary key column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getImportedKeys([in]any catalog, [in]string schema,
+ [in]string table) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of the foreign key columns that reference a
+ table's primary key columns (the foreign keys exported by a
+ table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
+ FKTABLE_NAME, and KEY_SEQ.
+
+
+ <p>Each foreign key column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>PKTABLE_NAME</b> string => primary key table name
+ </li>
+ <li>
+ <b>PKCOLUMN_NAME</b> string => primary key column name
+ </li>
+ <li>
+ <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
+ being exported (may be <NULL/>)
+ </li>
+ <li>
+ <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
+ being exported (may be <NULL/>)
+ </li>
+ <li>
+ <b>FKTABLE_NAME</b> string => foreign key table name
+ being exported
+ </li>
+ <li>
+ <b>FKCOLUMN_NAME</b> string => foreign key column name
+ being exported
+ </li>
+ <li>
+ <b>KEY_SEQ</b> short => sequence number within foreign key
+ </li>
+ <li>
+ <b>UPDATE_RULE</b> short => What happens to
+ foreign key when primary is updated:
+ <ul>
+ <li> NO_ACTION - do not allow update of primary
+ key if it has been imported
+ </li>
+ <li> CASCADE - change imported key to agree
+ with primary key update
+ </li>
+ <li> SET_NULL - change imported key to NULL if
+ its primary key has been updated
+ </li>
+ <li> SET_DEFAULT - change imported key to default values
+ if its primary key has been updated
+ </li>
+ <li> RESTRICT - same as importedKeyNoAction
+ (for ODBC 2.x compatibility)
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>DELETE_RULE</b> short => What happens to
+ the foreign key when primary is deleted.
+ <ul>
+ <li> NO_ACTION - do not allow delete of primary
+ key if it has been imported
+ </li>
+ <li> CASCADE - delete rows that import a deleted key
+ </li>
+ <li> SET_NULL - change imported key to NULL if
+ its primary key has been deleted
+ </li>
+ <li> RESTRICT - same as importedKeyNoAction
+ (for ODBC 2.x compatibility)
+ </li>
+ <li> SET_DEFAULT - change imported key to default if
+ its primary key has been deleted
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
+ </li>
+ <li>
+ <b>PK_NAME</b> string => primary key name (may be <NULL/>)
+ </li>
+ <li>
+ <b>DEFERRABILITY</b> short => can the evaluation of foreign key
+ constraints be deferred until commit
+ <ul>
+ <li> INITIALLY_DEFERRED - see SQL92 for definition
+ </li>
+ <li> INITIALLY_IMMEDIATE - see SQL92 for definition
+ </li>
+ <li> NONE - see SQL92 for definition
+ </li>
+ </ul>
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schema
+ a schema name; "" retrieves those without a schema
+ @param table
+ a table name
+ @returns
+ each row is a foreign key column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getExportedKeys([in]any catalog, [in]string schema,
+ [in]string table) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of the foreign key columns in the foreign key
+ table that reference the primary key columns of the primary key
+ table (describe how one table imports another's key.) This
+ should normally return a single foreign key/primary key pair
+ (most tables only import a foreign key from a table once.). They
+ are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and
+ KEY_SEQ.
+
+
+ <p>Each foreign key column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>PKTABLE_NAME</b> string => primary key table name
+ </li>
+ <li>
+ <b>PKCOLUMN_NAME</b> string => primary key column name
+ </li>
+ <li>
+ <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
+ being exported (may be <NULL/>)
+ </li>
+ <li>
+ <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
+ being exported (may be <NULL/>)
+ </li>
+ <li>
+ <b>FKTABLE_NAME</b> string => foreign key table name
+ being exported
+ </li>
+ <li>
+ <b>FKCOLUMN_NAME</b> string => foreign key column name
+ being exported
+ </li>
+ <li>
+ <b>KEY_SEQ</b> short => sequence number within foreign key
+ </li>
+ <li>
+ <b>UPDATE_RULE</b> short => What happens to
+ foreign key when primary is updated:
+ <ul>
+ <li> NO_ACTION - do not allow update of primary
+ key if it has been imported
+ </li>
+ <li> CASCADE - change imported key to agree
+ with primary key update
+ </li>
+ <li> SET_NULL - change imported key to NULL if
+ its primary key has been updated
+ </li>
+ <li> SET_DEFAULT - change imported key to default values
+ if its primary key has been updated
+ </li>
+ <li> RESTRICT - same as importedKeyNoAction
+ (for ODBC 2.x compatibility)
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>DELETE_RULE</b> short => What happens to
+ the foreign key when primary is deleted.
+ <ul>
+ <li> NO_ACTION - do not allow delete of primary
+ key if it has been imported
+ </li>
+ <li> CASCADE - delete rows that import a deleted key
+ </li>
+ <li> SET_NULL - change imported key to NULL if
+ its primary key has been deleted
+ </li>
+ <li> RESTRICT - same as importedKeyNoAction
+ (for ODBC 2.x compatibility)
+ </li>
+ <li> SET_DEFAULT - change imported key to default if
+ its primary key has been deleted
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
+ </li>
+ <li>
+ <b>PK_NAME</b> string => primary key name (may be <NULL/>)
+ </li>
+ <li>
+ <b>DEFERRABILITY</b> short => can the evaluation of foreign key
+ constraints be deferred until commit
+ <ul>
+ <li> INITIALLY_DEFERRED - see SQL92 for definition
+ </li>
+ <li> INITIALLY_IMMEDIATE - see SQL92 for definition
+ </li>
+ <li> NONE - see SQL92 for definition
+ </li>
+ </ul>
+ </li>
+ </ol>
+ @param primaryCatalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param primarySchema
+ a schema name; "" retrieves those without a schema
+ @param primaryTable
+ the table name that exports the key
+ @param foreignCatalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param foreignSchema
+ a schema name; "" retrieves those without a schema
+ @param foreignTable
+ the table name that imports the key
+ @returns
+ each row is a foreign key column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getCrossReference(
+ [in]any primaryCatalog, [in]string primarySchema,
+ [in]string primaryTable,
+ [in]any foreignCatalog, [in]string foreignSchema,
+ [in]string foreignTable) raises (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 SDBC SQL type.
+
+
+
+ <p>Each type description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TYPE_NAME</b> string => Type name
+ </li>
+ <li>
+ <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
+ </li>
+ <li>
+ <b>PRECISION</b> long => maximum precision
+ </li>
+ <li>
+ <b>LITERAL_PREFIX</b> string => prefix used to quote a literal
+ (may be <NULL/>)
+ </li>
+ <li>
+ <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal
+ (may be <NULL/>)
+ </li>
+ <li>
+ <b>CREATE_PARAMS</b> string => parameters used in creating
+ the type (may be <NULL/>)
+ </li>
+ <li>
+ <b>NULLABLE</b> short => can you use NULL for this type?
+ <ul>
+ <li> NO_NULLS - does not allow NULL values
+ </li>
+ <li> NULLABLE - allows NULL values
+ </li>
+ <li> NULLABLE_UNKNOWN - nullability unknown
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>CASE_SENSITIVE</b> boolean=> is it case sensitive?
+ </li>
+ <li>
+ <b>SEARCHABLE</b> short => can you use "WHERE" based on this type:
+ <ul>
+ <li> NONE - No support
+ </li>
+ <li> CHAR - Only supported with WHERE .. LIKE
+ </li>
+ <li> BASIC - Supported except for WHERE .. LIKE
+ </li>
+ <li> FULL - Supported for all WHERE ..
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned?
+ </li>
+ <li>
+ <b>FIXED_PREC_SCALE</b> boolean => can it be a money value?
+ </li>
+ <li>
+ <b>AUTO_INCREMENT</b> boolean => can it be used for an
+ auto-increment value?
+ </li>
+ <li>
+ <b>LOCAL_TYPE_NAME</b> string => localized version of type name
+ (may be <NULL/>)
+ </li>
+ <li>
+ <b>MINIMUM_SCALE</b> short => minimum scale supported
+ </li>
+ <li>
+ <b>MAXIMUM_SCALE</b> short => maximum scale supported
+ </li>
+ <li>
+ <b>SQL_DATA_TYPE</b> long => unused
+ </li>
+ <li>
+ <b>SQL_DATETIME_SUB</b> long => unused
+ </li>
+ <li>
+ <b>NUM_PREC_RADIX</b> long => usually 2 or 10
+ </li>
+ </ol>
+ @returns
+ each row is a SQL type description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getTypeInfo() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** gets a description of a table's indices and statistics. They are
+ ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
+
+
+ <p>Each index column description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>TABLE_NAME</b> string => table name
+ </li>
+ <li>
+ <b>NON_UNIQUE</b> boolean => Can index values be non-unique?
+ <FALSE/> when TYPE is tableIndexStatistic
+ </li>
+ <li>
+ <b>INDEX_QUALIFIER</b> string => index catalog (may be <NULL/>);
+ <NULL/> when TYPE is tableIndexStatistic
+ </li>
+ <li>
+ <b>INDEX_NAME</b> string => index name; <NULL/> when TYPE is
+ tableIndexStatistic
+ </li>
+ <li>
+ <b>TYPE</b> short => index type:
+ <ul>
+ <li> 0 - this identifies table statistics that are
+ returned in conjuction with a table's index descriptions
+ </li>
+ <li> CLUSTERED - this is a clustered index
+ </li>
+ <li> HASHED - this is a hashed index
+ </li>
+ <li> OTHER - this is some other style of index
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>ORDINAL_POSITION</b> short => column sequence number
+ within index; zero when TYPE is tableIndexStatistic
+ </li>
+ <li>
+ <b>COLUMN_NAME</b> string => column name; <NULL/> when TYPE is
+ tableIndexStatistic
+ </li>
+ <li>
+ <b>ASC_OR_DESC</b> string => column sort sequence, "A" => ascending,
+ "D" => descending, may be <NULL/> if sort sequence is not supported;
+ <NULL/> when TYPE is tableIndexStatistic
+ </li>
+ <li>
+ <b>CARDINALITY</b> long => 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.
+ </li>
+ <li>
+ <b>PAGES</b> long => 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.
+ </li>
+ <li>
+ <b>FILTER_CONDITION</b> string => Filter condition, if any.
+ (may be <NULL/>)
+ </li>
+ </ol>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schema
+ a schema name; "" retrieves those without a schema
+ @param table
+ the table name that exports the key
+ @param unique
+ when <TRUE/>, return only indices for unique values; when <FALSE/>, return indices regardless of whether unique or not
+ @param approximate
+ when <TRUE/>, result is allowed to reflect approximate or out of data values; when <FALSE/>, results are requested to be accurate
+ @returns
+ each row is an index column description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getIndexInfo([in]any catalog, [in]string schema, [in]string table,
+ [in]boolean unique, [in]boolean approximate)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database support the given result set type?
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsResultSetType([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Does the database support the concurrency type in combination
+ with the given result set type?
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @param concurrency
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetConcurrency</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsResultSetConcurrency([in]long setType,
+ [in]long concurrency)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether a result set's own updates are visible.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean ownUpdatesAreVisible([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether a result set's own deletes are visible.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean ownDeletesAreVisible([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether a result set's own inserts are visible.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean ownInsertsAreVisible([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether updates made by others are visible.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean othersUpdatesAreVisible([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether deletes made by others are visible.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean othersDeletesAreVisible([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether inserts made by others are visible.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean othersInsertsAreVisible([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether or not a visible row update can be detected by
+ calling the method
+ <code>XResultSet.rowUpdated</code>.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean updatesAreDetected([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether or not a visible row delete can be detected by
+ calling
+ <member scope="com::sun::star::sdbc">XResultSet::rowDeleted()</member>
+ . If deletesAreDetected()
+ returns <FALSE/>, then deleted rows are removed from the result set.
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean deletesAreDetected([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether or not a visible row insert can be detected
+ by calling
+ <member scope="com::sun::star::sdbc">XResultSet::rowInserted().</member>
+ @param setType
+ defined in
+ <type scop="com::sun::star::sdbc">ResultSetType</type>
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean insertsAreDetected([in]long setType) raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** indicates whether the driver supports batch updates.
+ @returns
+ <TRUE/> if so
+ @throws SQLException
+ if a database access error occurs.
+ */
+ boolean supportsBatchUpdates() raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** Gets a description of the user-defined types defined in a particular
+ schema. Schema-specific UDTs may have type OBJECT, STRUCT,
+ or DISTINCT.
+
+
+ <p>Only types matching the catalog, schema, type name, and type
+ criteria are returned. They are ordered by DATA_TYPE, TYPE_SCHEM,
+ and TYPE_NAME. The type name parameter may be a fully-qualified
+ name. In this case, the catalog and schemaPattern parameters are
+ ignored.
+ </p>
+ <p>Each type description has the following columns:
+ </p>
+ <ol>
+ <li>
+ <b>TYPE_CAT</b> string => the type's catalog (may be <NULL/>)
+ </li>
+ <li>
+ <b>TYPE_SCHEM</b> string => type's schema (may be <NULL/>)
+ </li>
+ <li>
+ <b>TYPE_NAME</b> string => type name
+ </li>
+ <li>
+ <b>CLASS_NAME</b> string => Java class name or service name
+ </li>
+ <li>
+ <b>DATA_TYPE</b> string => type value.
+ One of OBJECT, STRUCT, or DISTINCT
+ </li>
+ <li>
+ <b>REMARKS</b> string => explanatory comment on the type
+ </li>
+ </ol>
+ <p>
+ <b>Note:</b> If the driver does not support UDTs, an empty
+ result set is returned.
+ </p>
+ @param catalog
+ a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
+ @param schemaPattern
+ a schema name pattern; "" retrieves those without a schema
+ @param typeNamePattern
+ a type name pattern; may be a fully-qualified name
+ @param types
+ a list of user-named types to include (OBJECT, STRUCT, or DISTINCT)
+ @returns
+ each row is a type description
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XResultSet getUDTs([in]any catalog, [in]string schemaPattern,
+ [in]string typeNamePattern, [in]sequence<long> types)
+ raises (SQLException);
+ //-------------------------------------------------------------------------
+
+ /** retrieves the connection that produced this metadata object.
+ @returns
+ the Connection object
+ @throws SQLException
+ if a database access error occurs.
+ */
+ XConnection getConnection() raises (SQLException);
+};
+
+//=============================================================================
+
+}; }; }; };
+
+/*===========================================================================
+===========================================================================*/
+#endif