1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 module com
{ module sun
{ module star
{ module sdbc
{
23 published
interface XResultSet
;
24 published
interface XConnection
;
26 /** provides comprehensive information about the database as a whole.
29 <p>Many of the methods here return lists of information in
31 com::sun::star::sdbc::XResultSet
33 You can use the normal com::sun::star::sdbc::XRow
34 (or com::sun::star::sdb::XColumn)
36 com::sun::star::sdbc::XRow::getString()
38 com::sun::star::sdbc::XRow::getInt()
39 to retrieve the data from these XResultSets. If a given form of
40 metadata is not available, these methods should throw a
41 com::sun::star::sdbc::SQLException.
42 After calling one of the getXXX() methods,
43 one can check whether that value is `NULL`
44 with the method com::sun::star::sdbc::XRow::wasNull().
45 In the text only "(may be `NULL`)" is mentioned for this case.
47 <p>Some of these methods take arguments that are String patterns. These
48 arguments all have names such as fooPattern. Within a pattern String, "%"
49 means match any substring of 0 or more characters, and "_" means match
50 any one character. Only metadata entries matching the search pattern
51 are returned. If a search pattern argument is set to `VOID`,
52 that argument's criteria will be dropped from the search.
56 com::sun::star::sdbc::SQLException
57 will be thrown if a driver does not support
58 a metadata method. In the case of methods that return an XResultSet,
59 either an XResultSet (which may be empty) is returned or a
60 SQLException is thrown.</p>
62 published
interface XDatabaseMetaData
: com
::sun
::star
::uno
::XInterface
65 /** Can all the procedures returned by getProcedures be called by the
70 if the user is allowed to call all procedures returned by getProcedures
73 if a database access error occurs.
75 boolean allProceduresAreCallable
() raises
(SQLException
);
77 /** Can all the tables returned by getTable be SELECTed by the
82 if a database access error occurs.
84 boolean allTablesAreSelectable
() raises
(SQLException
);
86 /** returns the URL for the database connection
88 string getURL
() raises
(SQLException
);
90 /** returns the user name from this database connection.
92 string getUserName
() raises
(SQLException
);
94 /** checks if the database in read-only mode.
98 if a database access error occurs.
100 boolean isReadOnly
() raises
(SQLException
);
102 /** Are NULL values sorted high?
106 if a database access error occurs.
108 boolean nullsAreSortedHigh
() raises
(SQLException
);
110 /** Are NULL values sorted low?
114 if a database access error occurs.
116 boolean nullsAreSortedLow
() raises
(SQLException
);
118 /** Are NULL values sorted at the start regardless of sort order?
122 if a database access error occurs.
124 boolean nullsAreSortedAtStart
() raises
(SQLException
);
126 /** Are NULL values sorted at the end, regardless of sort order?
130 if a database access error occurs.
132 boolean nullsAreSortedAtEnd
() raises
(SQLException
);
134 /** returns the name of the database product.
136 string getDatabaseProductName
() raises
(SQLException
);
138 /** returns the version of the database product.
140 string getDatabaseProductVersion
() raises
(SQLException
);
142 /** returns the name of the SDBC driver.
144 string getDriverName
() raises
(SQLException
);
146 /** returns the version number of the SDBC driver.
148 string getDriverVersion
() raises
(SQLException
);
150 /** returns the SDBC driver major version number.
152 long getDriverMajorVersion
();
154 /** returns the SDBC driver minor version number.
156 long getDriverMinorVersion
();
158 /** use the database local files to save the tables.
162 if a database access error occurs.
164 boolean usesLocalFiles
() raises
(SQLException
);
166 /** use the database one local file to save for each table.
170 if a database access error occurs.
172 boolean usesLocalFilePerTable
() raises
(SQLException
);
174 /** use the database "mixed case unquoted SQL identifiers" case sensitive.
178 if a database access error occurs.
180 boolean supportsMixedCaseIdentifiers
() raises
(SQLException
);
182 /** Does the database treat mixed case unquoted SQL identifiers as
183 case insensitive and store them in upper case?
187 if a database access error occurs.
189 boolean storesUpperCaseIdentifiers
() raises
(SQLException
);
191 /** Does the database treat mixed case unquoted SQL identifiers as
192 case insensitive and store them in lower case?
196 if a database access error occurs.
198 boolean storesLowerCaseIdentifiers
() raises
(SQLException
);
200 /** Does the database treat mixed case unquoted SQL identifiers as
201 case insensitive and store them in mixed case?
205 if a database access error occurs.
207 boolean storesMixedCaseIdentifiers
() raises
(SQLException
);
209 /** Does the database treat mixed case quoted SQL identifiers as
210 case sensitive and as a result store them in mixed case?
214 if a database access error occurs.
216 boolean supportsMixedCaseQuotedIdentifiers
() raises
(SQLException
);
218 /** Does the database treat mixed case quoted SQL identifiers as
219 case insensitive and store them in upper case?
223 if a database access error occurs.
225 boolean storesUpperCaseQuotedIdentifiers
() raises
(SQLException
);
227 /** Does the database treat mixed case quoted SQL identifiers as
228 case insensitive and store them in lower case?
232 if a database access error occurs.
234 boolean storesLowerCaseQuotedIdentifiers
() raises
(SQLException
);
236 /** Does the database treat mixed case quoted SQL identifiers as
237 case insensitive and store them in mixed case?
241 if a database access error occurs.
243 boolean storesMixedCaseQuotedIdentifiers
() raises
(SQLException
);
245 /** What's the string used to quote SQL identifiers?
246 This returns a space " " if identifier quoting is not supported.
250 if a database access error occurs.
252 string getIdentifierQuoteString
() raises
(SQLException
);
254 /** gets a comma-separated list of all a database's SQL keywords
255 that are NOT also SQL92 keywords.
259 if a database access error occurs.
261 string getSQLKeywords
() raises
(SQLException
);
263 /** gets a comma-separated list of math functions. These are the
264 X/Open CLI math function names used in the SDBC function escape
269 if a database access error occurs.
271 string getNumericFunctions
() raises
(SQLException
);
273 /** gets a comma-separated list of string functions. These are the
274 X/Open CLI string function names used in the SDBC function escape
279 if a database access error occurs.
281 string getStringFunctions
() raises
(SQLException
);
283 /** gets a comma-separated list of system functions. These are the
284 X/Open CLI system function names used in the SDBC function escape
289 if a database access error occurs.
291 string getSystemFunctions
() raises
(SQLException
);
293 /** gets a comma-separated list of time and date functions.
297 if a database access error occurs.
299 string getTimeDateFunctions
() raises
(SQLException
);
301 /** gets the string that can be used to escape wildcard characters.
302 This is the string that can be used to escape "_" or "%" in
303 the string pattern style catalog search parameters.
307 The "_" character represents any single character.
310 The "%" character represents any sequence of zero or
316 if a database access error occurs.
318 string getSearchStringEscape
() raises
(SQLException
);
320 /** gets all the "extra" characters that can be used in unquoted
321 identifier names (those beyond a-z, A-Z, 0-9 and _).
325 if a database access error occurs.
327 string getExtraNameCharacters
() raises
(SQLException
);
329 /** support the Database "ALTER TABLE" with add column?
333 if a database access error occurs.
335 boolean supportsAlterTableWithAddColumn
() raises
(SQLException
);
337 /** support the Database "ALTER TABLE" with drop column?
341 if a database access error occurs.
343 boolean supportsAlterTableWithDropColumn
() raises
(SQLException
);
345 /** support the Database column aliasing?
349 The SQL AS clause can be used to provide names for
350 computed columns or to provide alias names for columns as required.
355 if a database access error occurs.
357 boolean supportsColumnAliasing
() raises
(SQLException
);
359 /** are concatenations between NULL and non-NULL values NULL?
363 if a database access error occurs.
365 boolean nullPlusNonNullIsNull
() raises
(SQLException
);
368 , if the Database supports the CONVERT function between SQL types,
373 if a database access error occurs.
375 boolean supportsTypeConversion
() raises
(SQLException
);
378 , if the Database supports the CONVERT between the given SQL types
383 if a database access error occurs.
385 boolean supportsConvert
([in]long fromType
, [in]long toType
)
386 raises
(SQLException
);
388 /** Are table correlation names supported?
392 if a database access error occurs.
394 boolean supportsTableCorrelationNames
() raises
(SQLException
);
396 /** If table correlation names are supported, are they restricted
397 to be different from the names of the tables?
401 if a database access error occurs.
403 boolean supportsDifferentTableCorrelationNames
()
404 raises
(SQLException
);
406 /** Are expressions in "ORDER BY" lists supported?
410 if a database access error occurs.
412 boolean supportsExpressionsInOrderBy
() raises
(SQLException
);
414 /** Can an "ORDER BY" clause use columns not in the SELECT statement?
418 if a database access error occurs.
420 boolean supportsOrderByUnrelated
() raises
(SQLException
);
422 /** Is some form of "GROUP BY" clause supported?
426 if a database access error occurs.
428 boolean supportsGroupBy
() raises
(SQLException
);
430 /** Can a "GROUP BY" clause use columns not in the SELECT?
434 if a database access error occurs.
436 boolean supportsGroupByUnrelated
() raises
(SQLException
);
438 /** Can a "GROUP BY" clause add columns not in the SELECT
439 provided it specifies all the columns in the SELECT?
443 if a database access error occurs.
445 boolean supportsGroupByBeyondSelect
() raises
(SQLException
);
447 /** Is the escape character in "LIKE" clauses supported?
451 if a database access error occurs.
453 boolean supportsLikeEscapeClause
() raises
(SQLException
);
455 /** Are multiple XResultSets from a single execute supported?
459 if a database access error occurs.
461 boolean supportsMultipleResultSets
() raises
(SQLException
);
463 /** Can we have multiple transactions open at once (on different
468 if a database access error occurs.
470 boolean supportsMultipleTransactions
() raises
(SQLException
);
472 /** Can columns be defined as non-nullable?
476 if a database access error occurs.
478 boolean supportsNonNullableColumns
() raises
(SQLException
);
480 /** `TRUE`, if the database supports ODBC Minimum SQL grammar,
485 if a database access error occurs.
487 boolean supportsMinimumSQLGrammar
() raises
(SQLException
);
489 /** `TRUE`, if the database supports ODBC Core SQL grammar,
494 if a database access error occurs.
496 boolean supportsCoreSQLGrammar
() raises
(SQLException
);
499 `TRUE`, if the database supports ODBC Extended SQL grammar,
504 if a database access error occurs.
506 boolean supportsExtendedSQLGrammar
() raises
(SQLException
);
509 `TRUE`, if the database supports ANSI92 entry level SQL grammar,
512 if a database access error occurs.
514 boolean supportsANSI92EntryLevelSQL
() raises
(SQLException
);
517 `TRUE`, if the database supports ANSI92 intermediate SQL grammar,
520 if a database access error occurs.
522 boolean supportsANSI92IntermediateSQL
() raises
(SQLException
);
525 `TRUE`, if the database supports ANSI92 full SQL grammar,
528 if a database access error occurs.
530 boolean supportsANSI92FullSQL
() raises
(SQLException
);
533 `TRUE`, if the Database supports SQL Integrity Enhancement Facility,
536 if a database access error occurs.
538 boolean supportsIntegrityEnhancementFacility
() raises
(SQLException
);
541 `TRUE`, if some form of outer join is supported,
544 if a database access error occurs.
546 boolean supportsOuterJoins
() raises
(SQLException
);
549 `TRUE`, if full nested outer joins are supported,
552 if a database access error occurs.
554 boolean supportsFullOuterJoins
() raises
(SQLException
);
557 `TRUE`, if there is limited support for outer joins.
558 (This will be `TRUE` if supportFullOuterJoins is `TRUE`.)
559 `FALSE` is returned otherwise.
561 if a database access error occurs.
563 boolean supportsLimitedOuterJoins
() raises
(SQLException
);
565 /** return the database vendor's preferred term for "schema"
569 if a database access error occurs.
571 string getSchemaTerm
() raises
(SQLException
);
573 /** return the database vendor's preferred term for "procedure"
577 if a database access error occurs.
579 string getProcedureTerm
() raises
(SQLException
);
581 /** return the database vendor's preferred term for "catalog"
585 if a database access error occurs.
587 string getCatalogTerm
() raises
(SQLException
);
589 /** Does a catalog appear at the start of a qualified table name?
590 (Otherwise it appears at the end)
594 if a database access error occurs.
596 boolean isCatalogAtStart
() raises
(SQLException
);
598 /** return the separator between catalog and table name
602 if a database access error occurs.
604 string getCatalogSeparator
() raises
(SQLException
);
606 /** Can a schema name be used in a data manipulation statement?
610 if a database access error occurs.
612 boolean supportsSchemasInDataManipulation
() raises
(SQLException
);
614 /** Can a schema name be used in a procedure call statement?
618 if a database access error occurs.
620 boolean supportsSchemasInProcedureCalls
() raises
(SQLException
);
622 /** Can a schema name be used in a table definition statement?
626 if a database access error occurs.
628 boolean supportsSchemasInTableDefinitions
() raises
(SQLException
);
630 /** Can a schema name be used in an index definition statement?
634 if a database access error occurs.
636 boolean supportsSchemasInIndexDefinitions
() raises
(SQLException
);
638 /** Can a schema name be used in a privilege definition statement?
642 if a database access error occurs.
644 boolean supportsSchemasInPrivilegeDefinitions
()
645 raises
(SQLException
);
647 /** Can a catalog name be used in a data manipulation statement?
651 if a database access error occurs.
653 boolean supportsCatalogsInDataManipulation
() raises
(SQLException
);
655 /** Can a catalog name be used in a procedure call statement?
659 if a database access error occurs.
661 boolean supportsCatalogsInProcedureCalls
() raises
(SQLException
);
663 /** Can a catalog name be used in a table definition statement?
667 if a database access error occurs.
669 boolean supportsCatalogsInTableDefinitions
() raises
(SQLException
);
671 /** Can a catalog name be used in an index definition statement?
675 if a database access error occurs.
677 boolean supportsCatalogsInIndexDefinitions
() raises
(SQLException
);
679 /** Can a catalog name be used in a privilege definition statement?
683 if a database access error occurs.
685 boolean supportsCatalogsInPrivilegeDefinitions
()
686 raises
(SQLException
);
688 /** Is positioned DELETE supported?
692 if a database access error occurs.
694 boolean supportsPositionedDelete
() raises
(SQLException
);
696 /** Is positioned UPDATE supported?
700 if a database access error occurs.
702 boolean supportsPositionedUpdate
() raises
(SQLException
);
704 /** Is SELECT for UPDATE supported?
708 if a database access error occurs.
710 boolean supportsSelectForUpdate
() raises
(SQLException
);
712 /** Are stored procedure calls using the stored procedure escape
717 if a database access error occurs.
719 boolean supportsStoredProcedures
() raises
(SQLException
);
721 /** Are subqueries in comparison expressions supported?
725 if a database access error occurs.
727 boolean supportsSubqueriesInComparisons
() raises
(SQLException
);
729 /** Are subqueries in "exists" expressions supported?
733 if a database access error occurs.
735 boolean supportsSubqueriesInExists
() raises
(SQLException
);
737 /** Are subqueries in "in" statements supported?
741 if a database access error occurs.
743 boolean supportsSubqueriesInIns
() raises
(SQLException
);
745 /** Are subqueries in quantified expressions supported?
749 if a database access error occurs.
751 boolean supportsSubqueriesInQuantifieds
() raises
(SQLException
);
753 /** Are correlated subqueries supported?
757 if a database access error occurs.
759 boolean supportsCorrelatedSubqueries
() raises
(SQLException
);
761 /** Is SQL UNION supported?
765 if a database access error occurs.
767 boolean supportsUnion
() raises
(SQLException
);
769 /** Is SQL UNION ALL supported?
773 if a database access error occurs.
775 boolean supportsUnionAll
() raises
(SQLException
);
777 /** Can cursors remain open across commits?
781 if a database access error occurs.
783 boolean supportsOpenCursorsAcrossCommit
() raises
(SQLException
);
785 /** Can cursors remain open across rollbacks?
789 if a database access error occurs.
791 boolean supportsOpenCursorsAcrossRollback
() raises
(SQLException
);
793 /** Can statements remain open across commits?
797 if a database access error occurs.
799 boolean supportsOpenStatementsAcrossCommit
() raises
(SQLException
);
801 /** Can statements remain open across rollbacks?
805 if a database access error occurs.
807 boolean supportsOpenStatementsAcrossRollback
()
808 raises
(SQLException
);
810 /** return the maximal number of hex characters in an inline binary literal
814 if a database access error occurs.
816 long getMaxBinaryLiteralLength
() raises
(SQLException
);
818 /** return the max length for a character literal
822 if a database access error occurs.
824 long getMaxCharLiteralLength
() raises
(SQLException
);
826 /** return the limit on column name length
830 if a database access error occurs.
832 long getMaxColumnNameLength
() raises
(SQLException
);
834 /** return the maximum number of columns in a "GROUP BY" clause
838 if a database access error occurs.
840 long getMaxColumnsInGroupBy
() raises
(SQLException
);
842 /** return the maximum number of columns allowed in an index
846 if a database access error occurs.
848 long getMaxColumnsInIndex
() raises
(SQLException
);
850 /** return the maximum number of columns in an "ORDER BY" clause
854 if a database access error occurs.
856 long getMaxColumnsInOrderBy
() raises
(SQLException
);
858 /** return the maximum number of columns in a "SELECT" list
862 if a database access error occurs.
864 long getMaxColumnsInSelect
() raises
(SQLException
);
866 /** return the maximum number of columns in a table
870 if a database access error occurs.
872 long getMaxColumnsInTable
() raises
(SQLException
);
874 /** return the number of active connections at a time to this database.
878 if a database access error occurs.
880 long getMaxConnections
() raises
(SQLException
);
882 /** return the maximum cursor name length
886 if a database access error occurs.
888 long getMaxCursorNameLength
() raises
(SQLException
);
890 /** return the maximum length of an index (in bytes)
894 if a database access error occurs.
896 long getMaxIndexLength
() raises
(SQLException
);
898 /** return the maximum length allowed for a schema name
902 if a database access error occurs.
904 long getMaxSchemaNameLength
() raises
(SQLException
);
906 /** return the maximum length of a procedure name
910 if a database access error occurs.
912 long getMaxProcedureNameLength
() raises
(SQLException
);
914 /** return the maximum length of a catalog name
918 if a database access error occurs.
920 long getMaxCatalogNameLength
() raises
(SQLException
);
922 /** return the maximum length of a single row.
926 if a database access error occurs.
928 long getMaxRowSize
() raises
(SQLException
);
930 /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
935 if a database access error occurs.
937 boolean doesMaxRowSizeIncludeBlobs
() raises
(SQLException
);
939 /** return the maximum length of a SQL statement
943 if a database access error occurs.
945 long getMaxStatementLength
() raises
(SQLException
);
947 /** return the maximal number of open active statements at one time to this database
951 if a database access error occurs.
953 long getMaxStatements
() raises
(SQLException
);
955 /** return the maximum length of a table name
959 if a database access error occurs.
961 long getMaxTableNameLength
() raises
(SQLException
);
963 /** return the maximum number of tables in a SELECT statement
967 if a database access error occurs.
969 long getMaxTablesInSelect
() raises
(SQLException
);
971 /** return the maximum length of a user name
975 if a database access error occurs.
977 long getMaxUserNameLength
() raises
(SQLException
);
979 /** return the database default transaction isolation level.
980 The values are defined in
981 com::sun::star::sdbc::TransactionIsolation.
985 if a database access error occurs.
986 @see com::sun::star::sdbc::XConnection
988 long getDefaultTransactionIsolation
() raises
(SQLException
);
990 /** support the Database transactions?
991 If not, invoking the method
992 com::sun::star::sdbc::XConnection::commit()
994 isolation level is TransactionIsolation_NONE.
998 if a database access error occurs.
1000 boolean supportsTransactions
() raises
(SQLException
);
1002 /** Does this database support the given transaction isolation level?
1005 @throws SQLException
1006 if a database access error occurs.
1007 @see com::sun::star::sdbc::Connection
1009 boolean supportsTransactionIsolationLevel
([in]long level
)
1010 raises
(SQLException
);
1012 /** support the Database both data definition and data manipulation statements
1013 within a transaction?
1016 @throws SQLException
1017 if a database access error occurs.
1018 <!-- JRH: Unclear on the intent of these many support questions.
1019 If asking, it should state, "Does the Database support both...?
1020 If declaring, it should state something like the following:
1022 metadata: supportsDataDefinitionAndDataManipulationTransactions
1024 "provides support for both data definition and data manipulation statements within a transaction."
1026 boolean supportsDataDefinitionAndDataManipulationTransactions
()
1027 raises
(SQLException
);
1029 /** are only data manipulation statements within a transaction
1033 @throws SQLException
1034 if a database access error occurs.
1036 boolean supportsDataManipulationTransactionsOnly
()
1037 raises
(SQLException
);
1039 /** does a data definition statement within a transaction force the
1040 transaction to commit?
1043 @throws SQLException
1044 if a database access error occurs.
1046 boolean dataDefinitionCausesTransactionCommit
()
1047 raises
(SQLException
);
1049 /** is a data definition statement within a transaction ignored?
1052 @throws SQLException
1053 if a database access error occurs.
1055 boolean dataDefinitionIgnoredInTransactions
()
1056 raises
(SQLException
);
1058 /** Gets a description of the stored procedures available in a
1063 Only procedure descriptions matching the schema and
1064 procedure name criteria are returned. They are ordered by
1065 PROCEDURE_SCHEM, and PROCEDURE_NAME.
1068 Each procedure description has the following columns:
1072 <b>PROCEDURE_CAT</b> string => procedure catalog (may be `NULL`)
1075 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be `NULL`)
1078 <b>PROCEDURE_NAME</b> string => procedure name
1080 <li> reserved for future use
1082 <li> reserved for future use
1084 <li> reserved for future use
1087 <b>REMARKS</b> string => explanatory comment on the procedure
1090 <b>PROCEDURE_TYPE</b> short => kind of procedure:
1092 <li> UNKNOWN - May return a result
1094 <li> NO - Does not return a result
1096 <li> RETURN - Returns a result
1102 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1103 @param schemaPattern
1104 a schema name pattern; "" retrieves those without a schema
1105 @param procedureNamePattern
1106 a procedure name pattern
1108 each row is a procedure description
1109 @throws SQLException
1110 if a database access error occurs.
1112 XResultSet getProcedures
([in]any catalog
, [in]string schemaPattern
,
1113 [in]string procedureNamePattern
) raises
(SQLException
);
1115 /** gets a description of a catalog's stored procedure parameters
1120 Only descriptions matching the schema, procedure and
1121 parameter name criteria are returned. They are ordered by
1122 PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value,
1123 if any, is first. Next are the parameter descriptions in call
1124 order. The column descriptions follow in column number order.
1126 <p>Each row in the XResultSet is a parameter description or
1127 column description with the following fields:
1131 <b>PROCEDURE_CAT</b> string => procedure catalog (may be `NULL`)
1134 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be `NULL`)
1137 <b>PROCEDURE_NAME</b> string => procedure name
1140 <b>COLUMN_NAME</b> string => column/parameter name
1143 <b>COLUMN_TYPE</b> Short => kind of column/parameter:
1145 <li> UNKNOWN - nobody knows
1147 <li> IN - IN parameter
1149 <li> INOUT - INOUT parameter
1151 <li> OUT - OUT parameter
1153 <li> RETURN - procedure return value
1155 <li> RESULT - result column in XResultSet
1160 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1163 <b>TYPE_NAME</b> string => SQL type name, for a UDT type the
1164 type name is fully qualified
1167 <b>PRECISION</b> long => precision
1170 <b>LENGTH</b> long => length in bytes of data
1173 <b>SCALE</b> short => scale
1176 <b>RADIX</b> short => radix
1179 <b>NULLABLE</b> short => can it contain NULL?
1181 <li> NO_NULLS - does not allow NULL values
1183 <li> NULLABLE - allows NULL values
1185 <li> NULLABLE_UNKNOWN - nullability unknown
1190 <b>REMARKS</b> string => comment describing parameter/column
1194 <b>Note:</b> Some databases may not return the column
1195 descriptions for a procedure. Additional columns beyond
1196 REMARKS can be defined by the database.
1199 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1200 @param schemaPattern
1201 a schema name pattern; "" retrieves those without a schema
1202 @param procedureNamePattern
1203 a procedure name pattern
1204 @param columnNamePattern
1205 a column name pattern
1207 each row describes a stored procedure parameter or column
1208 @throws SQLException
1209 if a database access error occurs.
1211 XResultSet getProcedureColumns
([in]any catalog
, [in]string schemaPattern
,
1212 [in]string procedureNamePattern
,
1213 [in]string columnNamePattern
)
1214 raises
(SQLException
);
1216 /** gets a description of tables available in a catalog.
1219 <p>Only table descriptions matching the catalog, schema, table
1220 name, and type criteria are returned. They are ordered by
1221 TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME.
1223 <p>Each table description has the following columns:
1227 <b>TABLE_CAT</b> string => table catalog (may be `NULL`)
1230 <b>TABLE_SCHEM</b> string => table schema (may be `NULL`)
1233 <b>TABLE_NAME</b> string => table name
1236 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1237 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1238 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1241 <b>REMARKS</b> string => explanatory comment on the table
1245 <b>Note:</b> Some databases may not return information for
1249 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1250 @param schemaPattern
1251 a schema name pattern; "" retrieves those without a schema
1252 @param tableNamePattern
1253 a table name pattern
1255 a list of table types to include
1257 each row is a table description
1258 @throws SQLException
1259 if a database access error occurs.
1261 XResultSet getTables
([in]any catalog
, [in]string schemaPattern
,
1262 [in]string tableNamePattern
, [in]sequence
<string> types
)
1263 raises
(SQLException
);
1265 /** Gets the schema names available in this database. The results
1266 are ordered by schema name.
1269 <p>The schema column is:
1273 <b>TABLE_SCHEM</b> string => schema name
1277 each row has a single String column that is a schema name
1278 @throws SQLException
1279 if a database access error occurs.
1281 XResultSet getSchemas
() raises
(SQLException
);
1283 /** gets the catalog names available in this database. The results
1284 are ordered by catalog name.
1287 <p>The catalog column is:
1291 <b>TABLE_CAT</b> string => catalog name
1295 each row has a single String column that is a catalog name
1296 @throws SQLException
1297 if a database access error occurs.
1299 XResultSet getCatalogs
() raises
(SQLException
);
1301 /** gets the table types available in this database. The results
1302 are ordered by table type.
1305 <p>The table type is:
1309 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1310 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1311 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1315 each row has a single String column that is a table type
1316 @throws SQLException
1317 if a database access error occurs.
1319 XResultSet getTableTypes
() raises
(SQLException
);
1321 /** gets a description of table columns available in
1322 the specified catalog.
1325 <p>Only column descriptions matching the catalog, schema, table
1326 and column name criteria are returned. They are ordered by
1327 TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION.
1329 <p>Each column description has the following columns:
1333 <b>TABLE_CAT</b> string => table catalog (may be `NULL`)
1336 <b>TABLE_SCHEM</b> string => table schema (may be `NULL`)
1339 <b>TABLE_NAME</b> string => table name
1342 <b>COLUMN_NAME</b> string => column name
1345 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1348 <b>TYPE_NAME</b> string => Data source dependent type name,
1349 for a UDT the type name is fully qualified
1352 <b>COLUMN_SIZE</b> long => column size. For char or date
1353 types this is the maximum number of characters, for numeric or
1354 decimal types this is precision.
1357 <b>BUFFER_LENGTH</b> is not used.
1360 <b>DECIMAL_DIGITS</b> long => the number of fractional digits
1363 <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2)
1366 <b>NULLABLE</b> long => is NULL allowed?
1368 <li> NO_NULLS - might not allow NULL values
1370 <li> NULLABLE - definitely allows NULL values
1372 <li> NULLABLE_UNKNOWN - nullability unknown
1377 <b>REMARKS</b> string => comment describing column (may be `NULL`)
1380 <b>COLUMN_DEF</b> string => default value (may be `NULL`)
1383 <b>SQL_DATA_TYPE</b> long => unused
1386 <b>SQL_DATETIME_SUB</b> long => unused
1389 <b>CHAR_OCTET_LENGTH</b> long => for char types the
1390 maximum number of bytes in the column
1393 <b>ORDINAL_POSITION</b> int => index of column in table
1397 <b>IS_NULLABLE</b> string => "NO" means column definitely
1398 does not allow NULL values; "YES" means the column might
1399 allow NULL values. An empty string means nobody knows.
1403 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1404 @param schemaPattern
1405 a schema name pattern; "" retrieves those without a schema
1406 @param tableNamePattern
1407 a table name pattern
1408 @param columnNamePattern
1409 a column name pattern
1411 each row is a column description
1412 @throws SQLException
1413 if a database access error occurs.
1415 XResultSet getColumns
([in]any catalog
, [in]string schemaPattern
,
1416 [in]string tableNamePattern
, [in]string columnNamePattern
)
1417 raises
(SQLException
);
1419 /** gets a description of the access rights for a table's columns.
1423 Only privileges matching the column name criteria are
1424 returned. They are ordered by COLUMN_NAME and PRIVILEGE.
1426 <p>Each privilege description has the following columns:
1430 <b>TABLE_CAT</b> string => table catalog (may be `NULL`)
1433 <b>TABLE_SCHEM</b> string => table schema (may be `NULL`)
1436 <b>TABLE_NAME</b> string => table name
1439 <b>COLUMN_NAME</b> string => column name
1442 <b>GRANTOR</b> => granter of access (may be `NULL`)
1445 <b>GRANTEE</b> string => grantee of access
1448 <b>PRIVILEGE</b> string => name of access (SELECT,
1449 INSERT, UPDATE, REFERENCES, ...)
1452 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1453 to grant to others; "NO" if not; `NULL` if unknown
1457 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1459 a schema name ; "" retrieves those without a schema
1462 @param columnNamePattern
1463 a column name pattern
1465 each row is a column privilege description
1466 @throws SQLException
1467 if a database access error occurs.
1469 XResultSet getColumnPrivileges
([in]any catalog
, [in]string schema
,
1470 [in]string table
, [in]string columnNamePattern
) raises
(SQLException
);
1472 /** gets a description of the access rights for each table available
1473 in a catalog. Note that a table privilege applies to one or
1474 more columns in the table. It would be wrong to assume that
1475 this privilege applies to all columns (this may be `TRUE` for
1476 some systems but is not `TRUE` for all.)
1479 <p>Only privileges matching the schema and table name
1480 criteria are returned. They are ordered by TABLE_SCHEM,
1481 TABLE_NAME, and PRIVILEGE.
1483 <p>Each privilege description has the following columns:
1487 <b>TABLE_CAT</b> string => table catalog (may be `NULL`)
1490 <b>TABLE_SCHEM</b> string => table schema (may be `NULL`)
1493 <b>TABLE_NAME</b> string => table name
1496 <b>GRANTOR</b> => granter of access (may be `NULL`)
1499 <b>GRANTEE</b> string => grantee of access
1502 <b>PRIVILEGE</b> string => name of access (SELECT,
1503 INSERT, UPDATE, REFERENCES, ...)
1506 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1507 to grant to others; "NO" if not; `NULL` if unknown
1511 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1512 @param schemaPattern
1513 a schema name pattern; "" retrieves those without a schema
1514 @param tableNamePattern
1515 a table name pattern
1517 each row is a table privilege description
1518 @throws SQLException
1519 if a database access error occurs.
1521 XResultSet getTablePrivileges
([in]any catalog
, [in]string schemaPattern
,
1522 [in]string tableNamePattern
) raises
(SQLException
);
1524 /** gets a description of a table's optimal set of columns that
1525 uniquely identifies a row. They are ordered by SCOPE.
1528 <p>Each column description has the following columns:
1532 <b>SCOPE</b> short => actual scope of result
1534 <li> TEMPORARY - very temporary, while using row
1536 <li> TRANSACTION - valid for remainder of current transaction
1538 <li> SESSION - valid for remainder of current session
1543 <b>COLUMN_NAME</b> string => column name
1546 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1549 <b>TYPE_NAME</b> string => Data source dependent type name,
1550 for a UDT the type name is fully qualified
1553 <b>COLUMN_SIZE</b> long => precision
1556 <b>BUFFER_LENGTH</b> long => not used
1559 <b>DECIMAL_DIGITS</b> short => scale
1562 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1563 like an Oracle ROWID
1565 <li> UNKNOWN - may or may not be pseudo column
1567 <li> NOT_PSEUDO - is NOT a pseudo column
1569 <li> PSEUDO - is a pseudo column
1575 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1577 a schema name; "" retrieves those without a schema
1581 the scope of interest; use same values as SCOPE
1583 include columns that are nullable?
1585 each row is a column description
1586 @throws SQLException
1587 if a database access error occurs.
1589 XResultSet getBestRowIdentifier
([in]any catalog
, [in]string schema
,
1590 [in]string table
, [in]long scope
, [in] boolean nullable
)
1591 raises
(SQLException
);
1593 /** gets a description of a table's columns that are automatically
1594 updated when any value in a row is updated. They are
1598 <p>Each column description has the following columns:
1602 <b>SCOPE</b> short => is not used
1605 <b>COLUMN_NAME</b> string => column name
1608 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1611 <b>TYPE_NAME</b> string => Data source dependent type name
1614 <b>COLUMN_SIZE</b> long => precision
1617 <b>BUFFER_LENGTH</b> long => length of column value in bytes
1620 <b>DECIMAL_DIGITS</b> short => scale
1623 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1624 like an Oracle ROWID
1626 <li> UNKNOWN - may or may not be pseudo column
1628 <li> NOT_PSEUDO - is NOT a pseudo column
1630 <li> PSEUDO - is a pseudo column
1636 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1638 a schema name; "" retrieves those without a schema
1642 each row is a column description
1643 @throws SQLException
1644 if a database access error occurs.
1646 XResultSet getVersionColumns
([in]any catalog
, [in]string schema
,
1647 [in]string table
) raises
(SQLException
);
1649 /** gets a description of a table's primary key columns. They
1650 are ordered by COLUMN_NAME.
1653 <p>Each primary key column description has the following columns:
1657 <b>TABLE_CAT</b> string => table catalog (may be `NULL`)
1660 <b>TABLE_SCHEM</b> string => table schema (may be `NULL`)
1663 <b>TABLE_NAME</b> string => table name
1666 <b>COLUMN_NAME</b> string => column name
1669 <b>KEY_SEQ</b> short => sequence number within primary key
1672 <b>PK_NAME</b> string => primary key name (may be `NULL`)
1676 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1678 a schema name; "" retrieves those without a schema
1682 each row is a primary key column description
1683 @throws SQLException
1684 if a database access error occurs.
1686 XResultSet getPrimaryKeys
([in]any catalog
, [in]string schema
,
1687 [in]string table
) raises
(SQLException
);
1689 /** gets a description of the primary key columns that are
1690 referenced by a table's foreign key columns (the primary keys
1691 imported by a table). They are ordered by PKTABLE_CAT,
1692 PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
1695 <p>Each primary key column description has the following columns:
1699 <b>PKTABLE_CAT</b> string => primary key table catalog
1700 being imported (may be `NULL`)
1703 <b>PKTABLE_SCHEM</b> string => primary key table schema
1704 being imported (may be `NULL`)
1707 <b>PKTABLE_NAME</b> string => primary key table name
1711 <b>PKCOLUMN_NAME</b> string => primary key column name
1715 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be `NULL`)
1718 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be `NULL`)
1721 <b>FKTABLE_NAME</b> string => foreign key table name
1724 <b>FKCOLUMN_NAME</b> string => foreign key column name
1727 <b>KEY_SEQ</b> short => sequence number within foreign key
1730 <b>UPDATE_RULE</b> short => What happens to
1731 foreign key when primary is updated:
1733 <li> importedNoAction - do not allow update of primary
1734 key if it has been imported
1736 <li> importedKeyCascade - change imported key to agree
1737 with primary key update
1739 <li> importedKeySetNull - change imported key to NULL if
1740 its primary key has been updated
1742 <li> importedKeySetDefault - change imported key to default values
1743 if its primary key has been updated
1745 <li> importedKeyRestrict - same as importedKeyNoAction
1746 (for ODBC 2.x compatibility)
1751 <b>DELETE_RULE</b> short => What happens to
1752 the foreign key when primary is deleted.
1754 <li> importedKeyNoAction - do not allow delete of primary
1755 key if it has been imported
1757 <li> importedKeyCascade - delete rows that import a deleted key
1759 <li> importedKeySetNull - change imported key to NULL if
1760 its primary key has been deleted
1762 <li> importedKeyRestrict - same as importedKeyNoAction
1763 (for ODBC 2.x compatibility)
1765 <li> importedKeySetDefault - change imported key to default if
1766 its primary key has been deleted
1771 <b>FK_NAME</b> string => foreign key name (may be `NULL`)
1774 <b>PK_NAME</b> string => primary key name (may be `NULL`)
1777 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
1778 constraints be deferred until commit
1780 <li> importedKeyInitiallyDeferred - see SQL92 for definition
1782 <li> importedKeyInitiallyImmediate - see SQL92 for definition
1784 <li> importedKeyNotDeferrable - see SQL92 for definition
1790 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1792 a schema name; "" retrieves those without a schema
1796 each row is a primary key column description
1797 @throws SQLException
1798 if a database access error occurs.
1800 XResultSet getImportedKeys
([in]any catalog
, [in]string schema
,
1801 [in]string table
) raises
(SQLException
);
1803 /** gets a description of the foreign key columns that reference a
1804 table's primary key columns (the foreign keys exported by a
1805 table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
1806 FKTABLE_NAME, and KEY_SEQ.
1809 <p>Each foreign key column description has the following columns:
1813 <b>PKTABLE_CAT</b> string => primary key table catalog (may be `NULL`)
1816 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be `NULL`)
1819 <b>PKTABLE_NAME</b> string => primary key table name
1822 <b>PKCOLUMN_NAME</b> string => primary key column name
1825 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be `NULL`)
1826 being exported (may be `NULL`)
1829 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be `NULL`)
1830 being exported (may be `NULL`)
1833 <b>FKTABLE_NAME</b> string => foreign key table name
1837 <b>FKCOLUMN_NAME</b> string => foreign key column name
1841 <b>KEY_SEQ</b> short => sequence number within foreign key
1844 <b>UPDATE_RULE</b> short => What happens to
1845 foreign key when primary is updated:
1847 <li> NO_ACTION - do not allow update of primary
1848 key if it has been imported
1850 <li> CASCADE - change imported key to agree
1851 with primary key update
1853 <li> SET_NULL - change imported key to NULL if
1854 its primary key has been updated
1856 <li> SET_DEFAULT - change imported key to default values
1857 if its primary key has been updated
1859 <li> RESTRICT - same as importedKeyNoAction
1860 (for ODBC 2.x compatibility)
1865 <b>DELETE_RULE</b> short => What happens to
1866 the foreign key when primary is deleted.
1868 <li> NO_ACTION - do not allow delete of primary
1869 key if it has been imported
1871 <li> CASCADE - delete rows that import a deleted key
1873 <li> SET_NULL - change imported key to NULL if
1874 its primary key has been deleted
1876 <li> RESTRICT - same as importedKeyNoAction
1877 (for ODBC 2.x compatibility)
1879 <li> SET_DEFAULT - change imported key to default if
1880 its primary key has been deleted
1885 <b>FK_NAME</b> string => foreign key name (may be `NULL`)
1888 <b>PK_NAME</b> string => primary key name (may be `NULL`)
1891 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
1892 constraints be deferred until commit
1894 <li> INITIALLY_DEFERRED - see SQL92 for definition
1896 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
1898 <li> NONE - see SQL92 for definition
1904 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
1906 a schema name; "" retrieves those without a schema
1910 each row is a foreign key column description
1911 @throws SQLException
1912 if a database access error occurs.
1914 XResultSet getExportedKeys
([in]any catalog
, [in]string schema
,
1915 [in]string table
) raises
(SQLException
);
1917 /** gets a description of the foreign key columns in the foreign key
1918 table that reference the primary key columns of the primary key
1919 table (describe how one table imports another's key.) This
1920 should normally return a single foreign key/primary key pair
1921 (most tables only import a foreign key from a table once.). They
1922 are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and
1926 <p>Each foreign key column description has the following columns:
1930 <b>PKTABLE_CAT</b> string => primary key table catalog (may be `NULL`)
1933 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be `NULL`)
1936 <b>PKTABLE_NAME</b> string => primary key table name
1939 <b>PKCOLUMN_NAME</b> string => primary key column name
1942 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be `NULL`)
1943 being exported (may be `NULL`)
1946 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be `NULL`)
1947 being exported (may be `NULL`)
1950 <b>FKTABLE_NAME</b> string => foreign key table name
1954 <b>FKCOLUMN_NAME</b> string => foreign key column name
1958 <b>KEY_SEQ</b> short => sequence number within foreign key
1961 <b>UPDATE_RULE</b> short => What happens to
1962 foreign key when primary is updated:
1964 <li> NO_ACTION - do not allow update of primary
1965 key if it has been imported
1967 <li> CASCADE - change imported key to agree
1968 with primary key update
1970 <li> SET_NULL - change imported key to NULL if
1971 its primary key has been updated
1973 <li> SET_DEFAULT - change imported key to default values
1974 if its primary key has been updated
1976 <li> RESTRICT - same as importedKeyNoAction
1977 (for ODBC 2.x compatibility)
1982 <b>DELETE_RULE</b> short => What happens to
1983 the foreign key when primary is deleted.
1985 <li> NO_ACTION - do not allow delete of primary
1986 key if it has been imported
1988 <li> CASCADE - delete rows that import a deleted key
1990 <li> SET_NULL - change imported key to NULL if
1991 its primary key has been deleted
1993 <li> RESTRICT - same as importedKeyNoAction
1994 (for ODBC 2.x compatibility)
1996 <li> SET_DEFAULT - change imported key to default if
1997 its primary key has been deleted
2002 <b>FK_NAME</b> string => foreign key name (may be `NULL`)
2005 <b>PK_NAME</b> string => primary key name (may be `NULL`)
2008 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2009 constraints be deferred until commit
2011 <li> INITIALLY_DEFERRED - see SQL92 for definition
2013 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2015 <li> NONE - see SQL92 for definition
2020 @param primaryCatalog
2021 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
2022 @param primarySchema
2023 a schema name; "" retrieves those without a schema
2025 the table name that exports the key
2026 @param foreignCatalog
2027 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
2028 @param foreignSchema
2029 a schema name; "" retrieves those without a schema
2031 the table name that imports the key
2033 each row is a foreign key column description
2034 @throws SQLException
2035 if a database access error occurs.
2037 XResultSet getCrossReference
(
2038 [in]any primaryCatalog
, [in]string primarySchema
,
2039 [in]string primaryTable
,
2040 [in]any foreignCatalog
, [in]string foreignSchema
,
2041 [in]string foreignTable
) raises
(SQLException
);
2043 /** gets a description of all the standard SQL types supported by
2044 this database. They are ordered by DATA_TYPE and then by how
2045 closely the data type maps to the corresponding SDBC SQL type.
2049 <p>Each type description has the following columns:
2053 <b>TYPE_NAME</b> string => Type name
2056 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
2059 <b>PRECISION</b> long => maximum precision
2062 <b>LITERAL_PREFIX</b> string => prefix used to quote a literal
2066 <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal
2070 <b>CREATE_PARAMS</b> string => parameters used in creating
2071 the type (may be `NULL`)
2074 <b>NULLABLE</b> short => can you use NULL for this type?
2076 <li> NO_NULLS - does not allow NULL values
2078 <li> NULLABLE - allows NULL values
2080 <li> NULLABLE_UNKNOWN - nullability unknown
2085 <b>CASE_SENSITIVE</b> boolean=> is it case sensitive?
2088 <b>SEARCHABLE</b> short => can you use "WHERE" based on this type:
2090 <li> NONE - No support
2092 <li> CHAR - Only supported with WHERE .. LIKE
2094 <li> BASIC - Supported except for WHERE .. LIKE
2096 <li> FULL - Supported for all WHERE ..
2101 <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned?
2104 <b>FIXED_PREC_SCALE</b> boolean => can it be a money value?
2107 <b>AUTO_INCREMENT</b> boolean => can it be used for an
2108 auto-increment value?
2111 <b>LOCAL_TYPE_NAME</b> string => localized version of type name
2115 <b>MINIMUM_SCALE</b> short => minimum scale supported
2118 <b>MAXIMUM_SCALE</b> short => maximum scale supported
2121 <b>SQL_DATA_TYPE</b> long => unused
2124 <b>SQL_DATETIME_SUB</b> long => unused
2127 <b>NUM_PREC_RADIX</b> long => usually 2 or 10
2131 each row is a SQL type description
2132 @throws SQLException
2133 if a database access error occurs.
2135 XResultSet getTypeInfo
() raises
(SQLException
);
2137 /** gets a description of a table's indices and statistics. They are
2138 ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
2141 <p>Each index column description has the following columns:
2145 <b>TABLE_CAT</b> string => table catalog (may be `NULL`)
2148 <b>TABLE_SCHEM</b> string => table schema (may be `NULL`)
2151 <b>TABLE_NAME</b> string => table name
2154 <b>NON_UNIQUE</b> boolean => Can index values be non-unique?
2155 `FALSE` when TYPE is tableIndexStatistic
2158 <b>INDEX_QUALIFIER</b> string => index catalog (may be `NULL`);
2159 `NULL` when TYPE is tableIndexStatistic
2162 <b>INDEX_NAME</b> string => index name; `NULL` when TYPE is
2166 <b>TYPE</b> short => index type:
2168 <li> 0 - this identifies table statistics that are
2169 returned in conjunction with a table's index descriptions
2171 <li> CLUSTERED - this is a clustered index
2173 <li> HASHED - this is a hashed index
2175 <li> OTHER - this is some other style of index
2180 <b>ORDINAL_POSITION</b> short => column sequence number
2181 within index; zero when TYPE is tableIndexStatistic
2184 <b>COLUMN_NAME</b> string => column name; `NULL` when TYPE is
2188 <b>ASC_OR_DESC</b> string => column sort sequence, "A" => ascending,
2189 "D" => descending, may be `NULL` if sort sequence is not supported;
2190 `NULL` when TYPE is tableIndexStatistic
2193 <b>CARDINALITY</b> long => When TYPE is tableIndexStatistic, then
2194 this is the number of rows in the table; otherwise, it is the
2195 number of unique values in the index.
2198 <b>PAGES</b> long => When TYPE is tableIndexStatistic then
2199 this is the number of pages used for the table, otherwise it
2200 is the number of pages used for the current index.
2203 <b>FILTER_CONDITION</b> string => Filter condition, if any.
2208 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
2210 a schema name; "" retrieves those without a schema
2212 the table name that exports the key
2214 when `TRUE`, return only indices for unique values; when `FALSE`, return indices regardless of whether unique or not
2216 when `TRUE`, result is allowed to reflect approximate or out of data values; when `FALSE`, results are requested to be accurate
2218 each row is an index column description
2219 @throws SQLException
2220 if a database access error occurs.
2222 XResultSet getIndexInfo
([in]any catalog
, [in]string schema
, [in]string table
,
2223 [in]boolean unique, [in]boolean approximate
)
2224 raises
(SQLException
);
2226 /** Does the database support the given result set type?
2229 com::sun::star::sdbc::ResultSetType
2232 @throws SQLException
2233 if a database access error occurs.
2235 boolean supportsResultSetType
([in]long setType
) raises
(SQLException
);
2237 /** Does the database support the concurrency type in combination
2238 with the given result set type?
2241 com::sun::star::sdbc::ResultSetType
2244 com::sun::star::sdbc::ResultSetConcurrency
2247 @throws SQLException
2248 if a database access error occurs.
2250 boolean supportsResultSetConcurrency
([in]long setType
,
2251 [in]long concurrency
)
2252 raises
(SQLException
);
2254 /** indicates whether a result set's own updates are visible.
2257 com::sun::star::sdbc::ResultSetType
2260 @throws SQLException
2261 if a database access error occurs.
2263 boolean ownUpdatesAreVisible
([in]long setType
) raises
(SQLException
);
2265 /** indicates whether a result set's own deletes are visible.
2268 com::sun::star::sdbc::ResultSetType
2271 @throws SQLException
2272 if a database access error occurs.
2274 boolean ownDeletesAreVisible
([in]long setType
) raises
(SQLException
);
2276 /** indicates whether a result set's own inserts are visible.
2279 com::sun::star::sdbc::ResultSetType
2282 @throws SQLException
2283 if a database access error occurs.
2285 boolean ownInsertsAreVisible
([in]long setType
) raises
(SQLException
);
2287 /** indicates whether updates made by others are visible.
2290 com::sun::star::sdbc::ResultSetType
2293 @throws SQLException
2294 if a database access error occurs.
2296 boolean othersUpdatesAreVisible
([in]long setType
) raises
(SQLException
);
2298 /** indicates whether deletes made by others are visible.
2301 com::sun::star::sdbc::ResultSetType
2304 @throws SQLException
2305 if a database access error occurs.
2307 boolean othersDeletesAreVisible
([in]long setType
) raises
(SQLException
);
2309 /** indicates whether inserts made by others are visible.
2312 com::sun::star::sdbc::ResultSetType
2315 @throws SQLException
2316 if a database access error occurs.
2318 boolean othersInsertsAreVisible
([in]long setType
) raises
(SQLException
);
2320 /** indicates whether or not a visible row update can be detected by
2322 <code>XResultSet.rowUpdated</code>.
2325 com::sun::star::sdbc::ResultSetType
2328 @throws SQLException
2329 if a database access error occurs.
2331 boolean updatesAreDetected
([in]long setType
) raises
(SQLException
);
2333 /** indicates whether or not a visible row delete can be detected by
2334 calling com::sun::star::sdbc::XResultSet::rowDeleted().
2335 If deletesAreDetected()
2336 returns `FALSE`, then deleted rows are removed from the result set.
2339 com::sun::star::sdbc::ResultSetType
2342 @throws SQLException
2343 if a database access error occurs.
2345 boolean deletesAreDetected
([in]long setType
) raises
(SQLException
);
2347 /** indicates whether or not a visible row insert can be detected
2349 com::sun::star::sdbc::XResultSet::rowInserted().()
2352 com::sun::star::sdbc::ResultSetType
2355 @throws SQLException
2356 if a database access error occurs.
2358 boolean insertsAreDetected
([in]long setType
) raises
(SQLException
);
2360 /** indicates whether the driver supports batch updates.
2363 @throws SQLException
2364 if a database access error occurs.
2366 boolean supportsBatchUpdates
() raises
(SQLException
);
2368 /** Gets a description of the user-defined types defined in a particular
2369 schema. Schema-specific UDTs may have type OBJECT, STRUCT,
2373 <p>Only types matching the catalog, schema, type name, and type
2374 criteria are returned. They are ordered by DATA_TYPE, TYPE_SCHEM,
2375 and TYPE_NAME. The type name parameter may be a fully-qualified
2376 name. In this case, the catalog and schemaPattern parameters are
2379 <p>Each type description has the following columns:
2383 <b>TYPE_CAT</b> string => the type's catalog (may be `NULL`)
2386 <b>TYPE_SCHEM</b> string => type's schema (may be `NULL`)
2389 <b>TYPE_NAME</b> string => type name
2392 <b>CLASS_NAME</b> string => Java class name or service name
2395 <b>DATA_TYPE</b> string => type value.
2396 One of OBJECT, STRUCT, or DISTINCT
2399 <b>REMARKS</b> string => explanatory comment on the type
2403 <b>Note:</b> If the driver does not support UDTs, an empty
2404 result set is returned.
2407 a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria
2408 @param schemaPattern
2409 a schema name pattern; "" retrieves those without a schema
2410 @param typeNamePattern
2411 a type name pattern; may be a fully-qualified name
2413 a list of user-named types to include (OBJECT, STRUCT, or DISTINCT)
2415 each row is a type description
2416 @throws SQLException
2417 if a database access error occurs.
2419 XResultSet getUDTs
([in]any catalog
, [in]string schemaPattern
,
2420 [in]string typeNamePattern
, [in]sequence
<long> types
)
2421 raises
(SQLException
);
2423 /** retrieves the connection that produced this metadata object.
2425 the Connection object
2426 @throws SQLException
2427 if a database access error occurs.
2429 XConnection getConnection
() raises
(SQLException
);
2435 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */