From 940b4d1848e8c70ab7642901a68594e8016caffc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 18:51:28 +0200 Subject: Adding upstream version 1:7.0.4. Signed-off-by: Daniel Baumann --- offapi/com/sun/star/sdbc/XDatabaseMetaData.idl | 2443 ++++++++++++++++++++++++ 1 file changed, 2443 insertions(+) create mode 100644 offapi/com/sun/star/sdbc/XDatabaseMetaData.idl (limited to 'offapi/com/sun/star/sdbc/XDatabaseMetaData.idl') diff --git a/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl new file mode 100644 index 000000000..d36650d62 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl @@ -0,0 +1,2443 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_sdbc_XDatabaseMetaData_idl__ +#define __com_sun_star_sdbc_XDatabaseMetaData_idl__ + +#include + +#include + + + module com { module sun { module star { module sdbc { + + published interface XResultSet; + published interface XConnection; + +/** provides comprehensive information about the database as a whole. + + +

Many of the methods here return lists of information in + the form of + com::sun::star::sdbc::XResultSet + objects. + You can use the normal com::sun::star::sdbc::XRow + (or com::sun::star::sdb::XColumn) + methods such as + com::sun::star::sdbc::XRow::getString() + and + com::sun::star::sdbc::XRow::getInt() + to retrieve the data from these XResultSets. If a given form of + metadata is not available, these methods should throw a + com::sun::star::sdbc::SQLException. + After calling one of the getXXX() methods, + one can check whether that value is `NULL` + with the method com::sun::star::sdbc::XRow::wasNull(). + In the text only "(may be `NULL`)" is mentioned for this case. +

+

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. +

+

+ A + com::sun::star::sdbc::SQLException + will be thrown if a driver does not support + a metadata method. In the case of methods that return an XResultSet, + either an XResultSet (which may be empty) is returned or a + SQLException is thrown.

+ */ +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. + + +

+ The "_" character represents any single character. +

+

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

+ @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? + + +

+ The SQL AS clause can be used to provide names for + computed columns or to provide alias names for columns as required. +

+ @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 + com::sun::star::sdbc::TransactionIsolation. + @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 + com::sun::star::sdbc::XConnection::commit() + 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. + */ + 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. + + +

+ Only procedure descriptions matching the schema and + procedure name criteria are returned. They are ordered by + PROCEDURE_SCHEM, and PROCEDURE_NAME. +

+

+ Each procedure description has the following columns: +

+
    +
  1. + PROCEDURE_CAT string => procedure catalog (may be `NULL`) +
  2. +
  3. + PROCEDURE_SCHEM string => procedure schema (may be `NULL`) +
  4. +
  5. + PROCEDURE_NAME string => procedure name +
  6. +
  7. reserved for future use +
  8. +
  9. reserved for future use +
  10. +
  11. reserved for future use +
  12. +
  13. + REMARKS string => explanatory comment on the procedure +
  14. +
  15. + PROCEDURE_TYPE short => kind of procedure: +
      +
    • UNKNOWN - May return a result +
    • +
    • NO - Does not return a result +
    • +
    • RETURN - Returns a result +
    • +
    +
  16. +
+ @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. + + +

+ 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. +

+

Each row in the XResultSet is a parameter description or + column description with the following fields: +

+
    +
  1. + PROCEDURE_CAT string => procedure catalog (may be `NULL`) +
  2. +
  3. + PROCEDURE_SCHEM string => procedure schema (may be `NULL`) +
  4. +
  5. + PROCEDURE_NAME string => procedure name +
  6. +
  7. + COLUMN_NAME string => column/parameter name +
  8. +
  9. + COLUMN_TYPE Short => kind of column/parameter: +
      +
    • UNKNOWN - nobody knows +
    • +
    • IN - IN parameter +
    • +
    • INOUT - INOUT parameter +
    • +
    • OUT - OUT parameter +
    • +
    • RETURN - procedure return value +
    • +
    • RESULT - result column in XResultSet +
    • +
    +
  10. +
  11. + DATA_TYPE short => SQL type from java.sql.Types +
  12. +
  13. + TYPE_NAME string => SQL type name, for a UDT type the + type name is fully qualified +
  14. +
  15. + PRECISION long => precision +
  16. +
  17. + LENGTH long => length in bytes of data +
  18. +
  19. + SCALE short => scale +
  20. +
  21. + RADIX short => radix +
  22. +
  23. + NULLABLE short => can it contain NULL? +
      +
    • NO_NULLS - does not allow NULL values +
    • +
    • NULLABLE - allows NULL values +
    • +
    • NULLABLE_UNKNOWN - nullability unknown +
    • +
    +
  24. +
  25. + REMARKS string => comment describing parameter/column +
  26. +
+

+ Note: Some databases may not return the column + descriptions for a procedure. Additional columns beyond + REMARKS can be defined by the database. +

+ @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. + + +

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 (may be `NULL`) +
  2. +
  3. + TABLE_SCHEM string => table schema (may be `NULL`) +
  4. +
  5. + TABLE_NAME string => table name +
  6. +
  7. + TABLE_TYPE string => table type. Typical types are "TABLE", + "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", + "LOCAL TEMPORARY", "ALIAS", "SYNONYM". +
  8. +
  9. + REMARKS string => explanatory comment on the table +
  10. +
+

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

+ @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 types) + raises (SQLException); + + /** Gets the schema names available in this database. The results + are ordered by schema name. + + +

The schema column is: +

+
    +
  1. + TABLE_SCHEM string => schema name +
  2. +
+ @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. + + +

The catalog column is: +

+
    +
  1. + TABLE_CAT string => catalog name +
  2. +
+ @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. + + +

The table type is: +

+
    +
  1. + TABLE_TYPE string => table type. Typical types are "TABLE", + "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", + "LOCAL TEMPORARY", "ALIAS", "SYNONYM". +
  2. +
+ @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. + + +

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 (may be `NULL`) +
  2. +
  3. + TABLE_SCHEM string => table schema (may be `NULL`) +
  4. +
  5. + TABLE_NAME string => table name +
  6. +
  7. + COLUMN_NAME string => column name +
  8. +
  9. + DATA_TYPE short => SQL type from java.sql.Types +
  10. +
  11. + TYPE_NAME string => Data source dependent type name, + for a UDT the type name is fully qualified +
  12. +
  13. + COLUMN_SIZE long => column size. For char or date + types this is the maximum number of characters, for numeric or + decimal types this is precision. +
  14. +
  15. + BUFFER_LENGTH is not used. +
  16. +
  17. + DECIMAL_DIGITS long => the number of fractional digits +
  18. +
  19. + NUM_PREC_RADIX long => Radix (typically either 10 or 2) +
  20. +
  21. + NULLABLE long => is NULL allowed? +
      +
    • NO_NULLS - might not allow NULL values +
    • +
    • NULLABLE - definitely allows NULL values +
    • +
    • NULLABLE_UNKNOWN - nullability unknown +
    • +
    +
  22. +
  23. + REMARKS string => comment describing column (may be `NULL`) +
  24. +
  25. + COLUMN_DEF string => default value (may be `NULL`) +
  26. +
  27. + SQL_DATA_TYPE long => unused +
  28. +
  29. + SQL_DATETIME_SUB long => unused +
  30. +
  31. + CHAR_OCTET_LENGTH long => for char types the + maximum number of bytes in the column +
  32. +
  33. + ORDINAL_POSITION int => index of column in table + (starting at 1) +
  34. +
  35. + 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. +
  36. +
+ @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. + + +

+ Only privileges matching the column name criteria are + returned. They are ordered by COLUMN_NAME and PRIVILEGE. +

+

Each privilege description has the following columns: +

+
    +
  1. + TABLE_CAT string => table catalog (may be `NULL`) +
  2. +
  3. + TABLE_SCHEM string => table schema (may be `NULL`) +
  4. +
  5. + TABLE_NAME string => table name +
  6. +
  7. + COLUMN_NAME string => column name +
  8. +
  9. + GRANTOR => granter of access (may be `NULL`) +
  10. +
  11. + GRANTEE string => grantee of access +
  12. +
  13. + PRIVILEGE string => name of access (SELECT, + INSERT, UPDATE, REFERENCES, ...) +
  14. +
  15. + IS_GRANTABLE string => "YES" if grantee is permitted + to grant to others; "NO" if not; `NULL` if unknown +
  16. +
+ @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 privilege applies to all columns (this may be `TRUE` for + some systems but is not `TRUE` for all.) + + +

Only privileges matching the schema and table name + criteria are returned. They are ordered by TABLE_SCHEM, + TABLE_NAME, and PRIVILEGE. +

+

Each privilege description has the following columns: +

+
    +
  1. + TABLE_CAT string => table catalog (may be `NULL`) +
  2. +
  3. + TABLE_SCHEM string => table schema (may be `NULL`) +
  4. +
  5. + TABLE_NAME string => table name +
  6. +
  7. + GRANTOR => granter of access (may be `NULL`) +
  8. +
  9. + GRANTEE string => grantee of access +
  10. +
  11. + PRIVILEGE string => name of access (SELECT, + INSERT, UPDATE, REFERENCES, ...) +
  12. +
  13. + IS_GRANTABLE string => "YES" if grantee is permitted + to grant to others; "NO" if not; `NULL` if unknown +
  14. +
+ @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. + + +

Each column description has the following columns: +

+
    +
  1. + SCOPE short => actual scope of result +
      +
    • TEMPORARY - very temporary, while using row +
    • +
    • TRANSACTION - valid for remainder of current transaction +
    • +
    • SESSION - valid for remainder of current session +
    • +
    +
  2. +
  3. + COLUMN_NAME string => column name +
  4. +
  5. + DATA_TYPE short => SQL data type from java.sql.Types +
  6. +
  7. + TYPE_NAME string => Data source dependent type name, + for a UDT the type name is fully qualified +
  8. +
  9. + COLUMN_SIZE long => precision +
  10. +
  11. + BUFFER_LENGTH long => not used +
  12. +
  13. + DECIMAL_DIGITS short => scale +
  14. +
  15. + PSEUDO_COLUMN short => is this a pseudo column + like an Oracle ROWID +
      +
    • UNKNOWN - may or may not be pseudo column +
    • +
    • NOT_PSEUDO - is NOT a pseudo column +
    • +
    • PSEUDO - is a pseudo column +
    • +
    +
  16. +
+ @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. + + +

Each column description has the following columns: +

+
    +
  1. + SCOPE short => is not used +
  2. +
  3. + COLUMN_NAME string => column name +
  4. +
  5. + DATA_TYPE short => SQL data type from java.sql.Types +
  6. +
  7. + TYPE_NAME string => Data source dependent type name +
  8. +
  9. + COLUMN_SIZE long => precision +
  10. +
  11. + BUFFER_LENGTH long => length of column value in bytes +
  12. +
  13. + DECIMAL_DIGITS short => scale +
  14. +
  15. + PSEUDO_COLUMN short => is this a pseudo column + like an Oracle ROWID +
      +
    • UNKNOWN - may or may not be pseudo column +
    • +
    • NOT_PSEUDO - is NOT a pseudo column +
    • +
    • PSEUDO - is a pseudo column +
    • +
    +
  16. +
+ @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. + + +

Each primary key column description has the following columns: +

+
    +
  1. + TABLE_CAT string => table catalog (may be `NULL`) +
  2. +
  3. + TABLE_SCHEM string => table schema (may be `NULL`) +
  4. +
  5. + TABLE_NAME string => table name +
  6. +
  7. + COLUMN_NAME string => column name +
  8. +
  9. + KEY_SEQ short => sequence number within primary key +
  10. +
  11. + PK_NAME string => primary key name (may be `NULL`) +
  12. +
+ @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. + + +

Each primary key column description has the following columns: +

+
    +
  1. + PKTABLE_CAT string => primary key table catalog + being imported (may be `NULL`) +
  2. +
  3. + PKTABLE_SCHEM string => primary key table schema + being imported (may be `NULL`) +
  4. +
  5. + PKTABLE_NAME string => primary key table name + being imported +
  6. +
  7. + PKCOLUMN_NAME string => primary key column name + being imported +
  8. +
  9. + FKTABLE_CAT string => foreign key table catalog (may be `NULL`) +
  10. +
  11. + FKTABLE_SCHEM string => foreign key table schema (may be `NULL`) +
  12. +
  13. + FKTABLE_NAME string => foreign key table name +
  14. +
  15. + FKCOLUMN_NAME string => foreign key column name +
  16. +
  17. + KEY_SEQ short => sequence number within foreign key +
  18. +
  19. + UPDATE_RULE short => What happens to + foreign key when primary is updated: +
      +
    • importedNoAction - do not allow update of primary + key if it has been imported +
    • +
    • importedKeyCascade - change imported key to agree + with primary key update +
    • +
    • importedKeySetNull - change imported key to NULL if + its primary key has been updated +
    • +
    • importedKeySetDefault - change imported key to default values + if its primary key has been updated +
    • +
    • importedKeyRestrict - same as importedKeyNoAction + (for ODBC 2.x compatibility) +
    • +
    +
  20. +
  21. + DELETE_RULE short => What happens to + the foreign key when primary is deleted. +
      +
    • importedKeyNoAction - do not allow delete of primary + key if it has been imported +
    • +
    • importedKeyCascade - delete rows that import a deleted key +
    • +
    • importedKeySetNull - change imported key to NULL if + its primary key has been deleted +
    • +
    • importedKeyRestrict - same as importedKeyNoAction + (for ODBC 2.x compatibility) +
    • +
    • importedKeySetDefault - change imported key to default if + its primary key has been deleted +
    • +
    +
  22. +
  23. + FK_NAME string => foreign key name (may be `NULL`) +
  24. +
  25. + PK_NAME string => primary key name (may be `NULL`) +
  26. +
  27. + DEFERRABILITY short => can the evaluation of foreign key + constraints be deferred until commit +
      +
    • importedKeyInitiallyDeferred - see SQL92 for definition +
    • +
    • importedKeyInitiallyImmediate - see SQL92 for definition +
    • +
    • importedKeyNotDeferrable - see SQL92 for definition +
    • +
    +
  28. +
+ @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. + + +

Each foreign key column description has the following columns: +

+
    +
  1. + PKTABLE_CAT string => primary key table catalog (may be `NULL`) +
  2. +
  3. + PKTABLE_SCHEM string => primary key table schema (may be `NULL`) +
  4. +
  5. + PKTABLE_NAME string => primary key table name +
  6. +
  7. + PKCOLUMN_NAME string => primary key column name +
  8. +
  9. + FKTABLE_CAT string => foreign key table catalog (may be `NULL`) + being exported (may be `NULL`) +
  10. +
  11. + FKTABLE_SCHEM string => foreign key table schema (may be `NULL`) + being exported (may be `NULL`) +
  12. +
  13. + FKTABLE_NAME string => foreign key table name + being exported +
  14. +
  15. + FKCOLUMN_NAME string => foreign key column name + being exported +
  16. +
  17. + KEY_SEQ short => sequence number within foreign key +
  18. +
  19. + UPDATE_RULE short => What happens to + foreign key when primary is updated: +
      +
    • NO_ACTION - do not allow update of primary + key if it has been imported +
    • +
    • CASCADE - change imported key to agree + with primary key update +
    • +
    • SET_NULL - change imported key to NULL if + its primary key has been updated +
    • +
    • SET_DEFAULT - change imported key to default values + if its primary key has been updated +
    • +
    • RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) +
    • +
    +
  20. +
  21. + DELETE_RULE short => What happens to + the foreign key when primary is deleted. +
      +
    • NO_ACTION - do not allow delete of primary + key if it has been imported +
    • +
    • CASCADE - delete rows that import a deleted key +
    • +
    • SET_NULL - change imported key to NULL if + its primary key has been deleted +
    • +
    • RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) +
    • +
    • SET_DEFAULT - change imported key to default if + its primary key has been deleted +
    • +
    +
  22. +
  23. + FK_NAME string => foreign key name (may be `NULL`) +
  24. +
  25. + PK_NAME string => primary key name (may be `NULL`) +
  26. +
  27. + DEFERRABILITY short => can the evaluation of foreign key + constraints be deferred until commit +
      +
    • INITIALLY_DEFERRED - see SQL92 for definition +
    • +
    • INITIALLY_IMMEDIATE - see SQL92 for definition +
    • +
    • NONE - see SQL92 for definition +
    • +
    +
  28. +
+ @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. + + +

Each foreign key column description has the following columns: +

+
    +
  1. + PKTABLE_CAT string => primary key table catalog (may be `NULL`) +
  2. +
  3. + PKTABLE_SCHEM string => primary key table schema (may be `NULL`) +
  4. +
  5. + PKTABLE_NAME string => primary key table name +
  6. +
  7. + PKCOLUMN_NAME string => primary key column name +
  8. +
  9. + FKTABLE_CAT string => foreign key table catalog (may be `NULL`) + being exported (may be `NULL`) +
  10. +
  11. + FKTABLE_SCHEM string => foreign key table schema (may be `NULL`) + being exported (may be `NULL`) +
  12. +
  13. + FKTABLE_NAME string => foreign key table name + being exported +
  14. +
  15. + FKCOLUMN_NAME string => foreign key column name + being exported +
  16. +
  17. + KEY_SEQ short => sequence number within foreign key +
  18. +
  19. + UPDATE_RULE short => What happens to + foreign key when primary is updated: +
      +
    • NO_ACTION - do not allow update of primary + key if it has been imported +
    • +
    • CASCADE - change imported key to agree + with primary key update +
    • +
    • SET_NULL - change imported key to NULL if + its primary key has been updated +
    • +
    • SET_DEFAULT - change imported key to default values + if its primary key has been updated +
    • +
    • RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) +
    • +
    +
  20. +
  21. + DELETE_RULE short => What happens to + the foreign key when primary is deleted. +
      +
    • NO_ACTION - do not allow delete of primary + key if it has been imported +
    • +
    • CASCADE - delete rows that import a deleted key +
    • +
    • SET_NULL - change imported key to NULL if + its primary key has been deleted +
    • +
    • RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) +
    • +
    • SET_DEFAULT - change imported key to default if + its primary key has been deleted +
    • +
    +
  22. +
  23. + FK_NAME string => foreign key name (may be `NULL`) +
  24. +
  25. + PK_NAME string => primary key name (may be `NULL`) +
  26. +
  27. + DEFERRABILITY short => can the evaluation of foreign key + constraints be deferred until commit +
      +
    • INITIALLY_DEFERRED - see SQL92 for definition +
    • +
    • INITIALLY_IMMEDIATE - see SQL92 for definition +
    • +
    • NONE - see SQL92 for definition +
    • +
    +
  28. +
+ @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. + + + +

Each type description has the following columns: +

+
    +
  1. + TYPE_NAME string => Type name +
  2. +
  3. + DATA_TYPE short => SQL data type from java.sql.Types +
  4. +
  5. + PRECISION long => maximum precision +
  6. +
  7. + LITERAL_PREFIX string => prefix used to quote a literal + (may be `NULL`) +
  8. +
  9. + LITERAL_SUFFIX string => suffix used to quote a literal + (may be `NULL`) +
  10. +
  11. + CREATE_PARAMS string => parameters used in creating + the type (may be `NULL`) +
  12. +
  13. + NULLABLE short => can you use NULL for this type? +
      +
    • NO_NULLS - does not allow NULL values +
    • +
    • NULLABLE - allows NULL values +
    • +
    • NULLABLE_UNKNOWN - nullability unknown +
    • +
    +
  14. +
  15. + CASE_SENSITIVE boolean=> is it case sensitive? +
  16. +
  17. + SEARCHABLE short => can you use "WHERE" based on this type: +
      +
    • NONE - No support +
    • +
    • CHAR - Only supported with WHERE .. LIKE +
    • +
    • BASIC - Supported except for WHERE .. LIKE +
    • +
    • FULL - Supported for all WHERE .. +
    • +
    +
  18. +
  19. + UNSIGNED_ATTRIBUTE boolean => is it unsigned? +
  20. +
  21. + FIXED_PREC_SCALE boolean => can it be a money value? +
  22. +
  23. + AUTO_INCREMENT boolean => can it be used for an + auto-increment value? +
  24. +
  25. + LOCAL_TYPE_NAME string => localized version of type name + (may be `NULL`) +
  26. +
  27. + MINIMUM_SCALE short => minimum scale supported +
  28. +
  29. + MAXIMUM_SCALE short => maximum scale supported +
  30. +
  31. + SQL_DATA_TYPE long => unused +
  32. +
  33. + SQL_DATETIME_SUB long => unused +
  34. +
  35. + NUM_PREC_RADIX long => usually 2 or 10 +
  36. +
+ @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. + + +

Each index column description has the following columns: +

+
    +
  1. + TABLE_CAT string => table catalog (may be `NULL`) +
  2. +
  3. + TABLE_SCHEM string => table schema (may be `NULL`) +
  4. +
  5. + TABLE_NAME string => table name +
  6. +
  7. + NON_UNIQUE boolean => Can index values be non-unique? + `FALSE` when TYPE is tableIndexStatistic +
  8. +
  9. + INDEX_QUALIFIER string => index catalog (may be `NULL`); + `NULL` when TYPE is tableIndexStatistic +
  10. +
  11. + INDEX_NAME string => index name; `NULL` when TYPE is + tableIndexStatistic +
  12. +
  13. + TYPE short => index type: +
      +
    • 0 - this identifies table statistics that are + returned in conjunction with a table's index descriptions +
    • +
    • CLUSTERED - this is a clustered index +
    • +
    • HASHED - this is a hashed index +
    • +
    • OTHER - this is some other style of index +
    • +
    +
  14. +
  15. + ORDINAL_POSITION short => column sequence number + within index; zero when TYPE is tableIndexStatistic +
  16. +
  17. + COLUMN_NAME string => column name; `NULL` when TYPE is + tableIndexStatistic +
  18. +
  19. + 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 +
  20. +
  21. + CARDINALITY 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. +
  22. +
  23. + PAGES 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. +
  24. +
  25. + FILTER_CONDITION string => Filter condition, if any. + (may be `NULL`) +
  26. +
+ @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 + com::sun::star::sdbc::ResultSetType + @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 + com::sun::star::sdbc::ResultSetType + @param concurrency + defined in + com::sun::star::sdbc::ResultSetConcurrency + @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 + com::sun::star::sdbc::ResultSetType + @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 + com::sun::star::sdbc::ResultSetType + @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 + com::sun::star::sdbc::ResultSetType + @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 + com::sun::star::sdbc::ResultSetType + @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 + com::sun::star::sdbc::ResultSetType + @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 + com::sun::star::sdbc::ResultSetType + @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 + XResultSet.rowUpdated. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @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 com::sun::star::sdbc::XResultSet::rowDeleted(). + If deletesAreDetected() + returns `FALSE`, then deleted rows are removed from the result set. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @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 + com::sun::star::sdbc::XResultSet::rowInserted().() + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @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. + + +

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. +

+

Each type description has the following columns: +

+
    +
  1. + TYPE_CAT string => the type's catalog (may be `NULL`) +
  2. +
  3. + TYPE_SCHEM string => type's schema (may be `NULL`) +
  4. +
  5. + TYPE_NAME string => type name +
  6. +
  7. + CLASS_NAME string => Java class name or service name +
  8. +
  9. + DATA_TYPE string => type value. + One of OBJECT, STRUCT, or DISTINCT +
  10. +
  11. + REMARKS string => explanatory comment on the type +
  12. +
+

+ Note: If the driver does not support UDTs, an empty + result set is returned. +

+ @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 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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3