1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org. If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
26 ************************************************************************/
27 #ifndef __com_sun_star_sdbc_XDatabaseMetaData_idl__
28 #define __com_sun_star_sdbc_XDatabaseMetaData_idl__
30 #ifndef __com_sun_star_uno_XInterface_idl__
31 #include
<com
/sun
/star
/uno
/XInterface.idl
>
34 #ifndef __com_sun_star_sdbc_SQLException_idl__
35 #include
<com
/sun
/star
/sdbc
/SQLException.idl
>
39 module com
{ module sun
{ module star
{ module sdbc
{
41 published
interface XResultSet
;
42 published
interface XConnection
;
44 /** provides comprehensive information about the database as a whole.
47 <p>Many of the methods here return lists of information in
49 <type scope="com::sun::star::sdbc">XResultSet</type>
51 You can use the normal <type scope="com::sun::star::sdbc">XResultSet</type>
53 <member scope="com::sun::star::sdbc">XResultSet::getString()</member>
55 <member scope="com::sun::star::sdbc">XResultSet::getInt()</member>
56 to retrieve the data from these XResultSets. If a given form of
57 metadata is not available, these methods should throw a
58 <type scope="com::sun::star::sdbc">SQLException</type>
60 That a value of <type scope="com::sun::star::sdbc">XResultSet</type> is <NULL/>
61 can be chaked with the method <member scope="com::sun::star::sdbc">XResultSet::wasNull()</member>.
62 In the text only "(may be <NULL/>)" is mentioned for this case.
64 <p>Some of these methods take arguments that are String patterns. These
65 arguments all have names such as fooPattern. Within a pattern String, "%"
66 means match any substring of 0 or more characters, and "_" means match
67 any one character. Only metadata entries matching the search pattern
68 are returned. If a search pattern argument is set to <VOID/>,
69 that argument's criteria will be dropped from the search.
73 <type scope="com::sun::star::sdbc">SQLException</type>
74 will be thrown if a driver does not support
75 a meta data method. In the case of methods that return an XResultSet,
76 either an XResultSet (which may be empty) is returned or a
77 SQLException is thrown.</p>
79 published
interface XDatabaseMetaData
: com
::sun
::star
::uno
::XInterface
82 /** Can all the procedures returned by getProcedures be called by the
87 if the user is allowed to call all procedures returned by getProcedures
92 if a database access error occurs.
94 boolean allProceduresAreCallable
() raises
(SQLException
);
95 //-------------------------------------------------------------------------
97 /** Can all the tables returned by getTable be SELECTed by the
102 if a database access error occurs.
104 boolean allTablesAreSelectable
() raises
(SQLException
);
105 //-------------------------------------------------------------------------
107 /** returns the URL for the database connection
109 string getURL
() raises
(SQLException
);
110 //-------------------------------------------------------------------------
112 /** returns the user name from this database connection.
114 string getUserName
() raises
(SQLException
);
115 //-------------------------------------------------------------------------
117 /** checks if the database in read-only mode.
121 if a database access error occurs.
123 boolean isReadOnly
() raises
(SQLException
);
124 //-------------------------------------------------------------------------
126 /** Are NULL values sorted high?
130 if a database access error occurs.
132 boolean nullsAreSortedHigh
() raises
(SQLException
);
133 //-------------------------------------------------------------------------
135 /** Are NULL values sorted low?
139 if a database access error occurs.
141 boolean nullsAreSortedLow
() raises
(SQLException
);
142 //-------------------------------------------------------------------------
144 /** Are NULL values sorted at the start regardless of sort order?
148 if a database access error occurs.
150 boolean nullsAreSortedAtStart
() raises
(SQLException
);
151 //-------------------------------------------------------------------------
153 /** Are NULL values sorted at the end, regardless of sort order?
157 if a database access error occurs.
159 boolean nullsAreSortedAtEnd
() raises
(SQLException
);
160 //-------------------------------------------------------------------------
162 /** returns the name of the database product.
164 string getDatabaseProductName
() raises
(SQLException
);
165 //-------------------------------------------------------------------------
167 /** returns the version of the database product.
169 string getDatabaseProductVersion
() raises
(SQLException
);
170 //-------------------------------------------------------------------------
172 /** returns the name of the SDBC driver.
174 string getDriverName
() raises
(SQLException
);
175 //-------------------------------------------------------------------------
177 /** returns the version number of the SDBC driver.
179 string getDriverVersion
() raises
(SQLException
);
180 //-------------------------------------------------------------------------
182 /** returns the SDBC driver major version number.
184 long getDriverMajorVersion
();
185 //-------------------------------------------------------------------------
187 /** returns the SDBC driver minor version number.
189 long getDriverMinorVersion
();
190 //-------------------------------------------------------------------------
192 /** use the database local files to save the tables.
196 if a database access error occurs.
198 boolean usesLocalFiles
() raises
(SQLException
);
199 //-------------------------------------------------------------------------
201 /** use the database one local file to save for each table.
205 if a database access error occurs.
207 boolean usesLocalFilePerTable
() raises
(SQLException
);
208 //-------------------------------------------------------------------------
210 /** use the database 'mixed case unquoted SQL identifiers' case sensitive.
214 if a database access error occurs.
216 boolean supportsMixedCaseIdentifiers
() raises
(SQLException
);
217 //-------------------------------------------------------------------------
219 /** Does the database treat mixed case unquoted SQL identifiers as
220 case insensitive and store them in upper case?
224 if a database access error occurs.
226 boolean storesUpperCaseIdentifiers
() raises
(SQLException
);
227 //-------------------------------------------------------------------------
229 /** Does the database treat mixed case unquoted SQL identifiers as
230 case insensitive and store them in lower case?
234 if a database access error occurs.
236 boolean storesLowerCaseIdentifiers
() raises
(SQLException
);
237 //-------------------------------------------------------------------------
239 /** Does the database treat mixed case unquoted SQL identifiers as
240 case insensitive and store them in mixed case?
244 if a database access error occurs.
246 boolean storesMixedCaseIdentifiers
() raises
(SQLException
);
247 //-------------------------------------------------------------------------
249 /** Does the database treat mixed case quoted SQL identifiers as
250 case sensitive and as a result store them in mixed case?
254 if a database access error occurs.
256 boolean supportsMixedCaseQuotedIdentifiers
() raises
(SQLException
);
257 //-------------------------------------------------------------------------
259 /** Does the database treat mixed case quoted SQL identifiers as
260 case insensitive and store them in upper case?
264 if a database access error occurs.
266 boolean storesUpperCaseQuotedIdentifiers
() raises
(SQLException
);
267 //-------------------------------------------------------------------------
269 /** Does the database treat mixed case quoted SQL identifiers as
270 case insensitive and store them in lower case?
274 if a database access error occurs.
276 boolean storesLowerCaseQuotedIdentifiers
() raises
(SQLException
);
277 //-------------------------------------------------------------------------
279 /** Does the database treat mixed case quoted SQL identifiers as
280 case insensitive and store them in mixed case?
284 if a database access error occurs.
286 boolean storesMixedCaseQuotedIdentifiers
() raises
(SQLException
);
287 //-------------------------------------------------------------------------
289 /** What's the string used to quote SQL identifiers?
290 This returns a space " " if identifier quoting is not supported.
294 if a database access error occurs.
296 string getIdentifierQuoteString
() raises
(SQLException
);
297 //-------------------------------------------------------------------------
299 /** gets a comma-separated list of all a database's SQL keywords
300 that are NOT also SQL92 keywords.
304 if a database access error occurs.
306 string getSQLKeywords
() raises
(SQLException
);
307 //-------------------------------------------------------------------------
309 /** gets a comma-separated list of math functions. These are the
310 X/Open CLI math function names used in the SDBC function escape
315 if a database access error occurs.
317 string getNumericFunctions
() raises
(SQLException
);
318 //-------------------------------------------------------------------------
320 /** gets a comma-separated list of string functions. These are the
321 X/Open CLI string function names used in the SDBC function escape
326 if a database access error occurs.
328 string getStringFunctions
() raises
(SQLException
);
329 //-------------------------------------------------------------------------
331 /** gets a comma-separated list of system functions. These are the
332 X/Open CLI system function names used in the SDBC function escape
337 if a database access error occurs.
339 string getSystemFunctions
() raises
(SQLException
);
340 //-------------------------------------------------------------------------
342 /** gets a comma-separated list of time and date functions.
346 if a database access error occurs.
348 string getTimeDateFunctions
() raises
(SQLException
);
349 //-------------------------------------------------------------------------
351 /** gets the string that can be used to escape wildcard characters.
352 This is the string that can be used to escape '_' or '%' in
353 the string pattern style catalog search parameters.
357 The '_' character represents any single character.
360 The '%' character represents any sequence of zero or
366 if a database access error occurs.
368 string getSearchStringEscape
() raises
(SQLException
);
369 //-------------------------------------------------------------------------
371 /** gets all the "extra" characters that can be used in unquoted
372 identifier names (those beyond a-z, A-Z, 0-9 and _).
376 if a database access error occurs.
378 string getExtraNameCharacters
() raises
(SQLException
);
379 //-------------------------------------------------------------------------
381 /** support the Database "ALTER TABLE" with add column?
385 if a database access error occurs.
387 boolean supportsAlterTableWithAddColumn
() raises
(SQLException
);
388 //-------------------------------------------------------------------------
390 /** support the Database "ALTER TABLE" with drop column?
394 if a database access error occurs.
396 boolean supportsAlterTableWithDropColumn
() raises
(SQLException
);
397 //-------------------------------------------------------------------------
399 /** support the Database column aliasing?
403 The SQL AS clause can be used to provide names for
404 computed columns or to provide alias names for columns as required.
409 if a database access error occurs.
411 boolean supportsColumnAliasing
() raises
(SQLException
);
412 //-------------------------------------------------------------------------
414 /** are concatenations between NULL and non-NULL values NULL?
418 if a database access error occurs.
420 boolean nullPlusNonNullIsNull
() raises
(SQLException
);
421 //-------------------------------------------------------------------------
424 , if the Database supports the CONVERT function between SQL types,
431 if a database access error occurs.
433 boolean supportsTypeConversion
() raises
(SQLException
);
434 //-------------------------------------------------------------------------
437 , if the Database supports the CONVERT between the given SQL types
444 if a database access error occurs.
446 boolean supportsConvert
([in]long fromType
, [in]long toType
)
447 raises
(SQLException
);
448 //-------------------------------------------------------------------------
450 /** Are table correlation names supported?
454 if a database access error occurs.
456 boolean supportsTableCorrelationNames
() raises
(SQLException
);
457 //-------------------------------------------------------------------------
459 /** If table correlation names are supported, are they restricted
460 to be different from the names of the tables?
464 if a database access error occurs.
466 boolean supportsDifferentTableCorrelationNames
()
467 raises
(SQLException
);
468 //-------------------------------------------------------------------------
470 /** Are expressions in "ORDER BY" lists supported?
474 if a database access error occurs.
476 boolean supportsExpressionsInOrderBy
() raises
(SQLException
);
477 //-------------------------------------------------------------------------
479 /** Can an "ORDER BY" clause use columns not in the SELECT statement?
483 if a database access error occurs.
485 boolean supportsOrderByUnrelated
() raises
(SQLException
);
486 //-------------------------------------------------------------------------
488 /** Is some form of "GROUP BY" clause supported?
492 if a database access error occurs.
494 boolean supportsGroupBy
() raises
(SQLException
);
495 //-------------------------------------------------------------------------
497 /** Can a "GROUP BY" clause use columns not in the SELECT?
501 if a database access error occurs.
503 boolean supportsGroupByUnrelated
() raises
(SQLException
);
504 //-------------------------------------------------------------------------
506 /** Can a "GROUP BY" clause add columns not in the SELECT
507 provided it specifies all the columns in the SELECT?
511 if a database access error occurs.
513 boolean supportsGroupByBeyondSelect
() raises
(SQLException
);
514 //-------------------------------------------------------------------------
516 /** Is the escape character in "LIKE" clauses supported?
520 if a database access error occurs.
522 boolean supportsLikeEscapeClause
() raises
(SQLException
);
523 //-------------------------------------------------------------------------
525 /** Are multiple XResultSets from a single execute supported?
529 if a database access error occurs.
531 boolean supportsMultipleResultSets
() raises
(SQLException
);
532 //-------------------------------------------------------------------------
534 /** Can we have multiple transactions open at once (on different
539 if a database access error occurs.
541 boolean supportsMultipleTransactions
() raises
(SQLException
);
542 //-------------------------------------------------------------------------
544 /** Can columns be defined as non-nullable?
548 if a database access error occurs.
550 boolean supportsNonNullableColumns
() raises
(SQLException
);
551 //-------------------------------------------------------------------------
553 /** <TRUE/>, if the database supports ODBC Minimum SQL grammar,
558 if a database access error occurs.
560 boolean supportsMinimumSQLGrammar
() raises
(SQLException
);
561 //-------------------------------------------------------------------------
563 /** <TRUE/>, if the database supports ODBC Core SQL grammar,
568 if a database access error occurs.
570 boolean supportsCoreSQLGrammar
() raises
(SQLException
);
571 //-------------------------------------------------------------------------
574 <TRUE/>, if the database supports ODBC Extended SQL grammar,
579 if a database access error occurs.
581 boolean supportsExtendedSQLGrammar
() raises
(SQLException
);
582 //-------------------------------------------------------------------------
585 <TRUE/>, if the database supports ANSI92 entry level SQL grammar,
588 if a database access error occurs.
590 boolean supportsANSI92EntryLevelSQL
() raises
(SQLException
);
591 //-------------------------------------------------------------------------
594 <TRUE/>, if the database supports ANSI92 intermediate SQL grammar,
597 if a database access error occurs.
599 boolean supportsANSI92IntermediateSQL
() raises
(SQLException
);
600 //-------------------------------------------------------------------------
603 <TRUE/>, if the database supports ANSI92 full SQL grammar,
606 if a database access error occurs.
608 boolean supportsANSI92FullSQL
() raises
(SQLException
);
609 //-------------------------------------------------------------------------
612 <TRUE/>, if the Database supports SQL Integrity Enhancement Facility,
615 if a database access error occurs.
617 boolean supportsIntegrityEnhancementFacility
() raises
(SQLException
);
618 //-------------------------------------------------------------------------
621 <TRUE/>, if some form of outer join is supported,
624 if a database access error occurs.
626 boolean supportsOuterJoins
() raises
(SQLException
);
627 //-------------------------------------------------------------------------
630 <TRUE/>, if full nested outer joins are supported,
633 if a database access error occurs.
635 boolean supportsFullOuterJoins
() raises
(SQLException
);
636 //-------------------------------------------------------------------------
639 <TRUE/>, if there is limited support for outer joins.
640 (This will be <TRUE/> if supportFullOuterJoins is <TRUE/>.)
641 <FALSE/> is returned otherwise.
643 if a database access error occurs.
645 boolean supportsLimitedOuterJoins
() raises
(SQLException
);
646 //-------------------------------------------------------------------------
648 /** return the database vendor's preferred term for "schema"
652 if a database access error occurs.
654 string getSchemaTerm
() raises
(SQLException
);
655 //-------------------------------------------------------------------------
657 /** return the database vendor's preferred term for "procedure"
661 if a database access error occurs.
663 string getProcedureTerm
() raises
(SQLException
);
664 //-------------------------------------------------------------------------
666 /** return the database vendor's preferred term for "catalog"
670 if a database access error occurs.
672 string getCatalogTerm
() raises
(SQLException
);
673 //-------------------------------------------------------------------------
675 /** Does a catalog appear at the start of a qualified table name?
676 (Otherwise it appears at the end)
680 if a database access error occurs.
682 boolean isCatalogAtStart
() raises
(SQLException
);
683 //-------------------------------------------------------------------------
685 /** return the separator between catalog and table name
689 if a database access error occurs.
691 string getCatalogSeparator
() raises
(SQLException
);
692 //-------------------------------------------------------------------------
694 /** Can a schema name be used in a data manipulation statement?
698 if a database access error occurs.
700 boolean supportsSchemasInDataManipulation
() raises
(SQLException
);
701 //-------------------------------------------------------------------------
703 /** Can a schema name be used in a procedure call statement?
707 if a database access error occurs.
709 boolean supportsSchemasInProcedureCalls
() raises
(SQLException
);
710 //-------------------------------------------------------------------------
712 /** Can a schema name be used in a table definition statement?
716 if a database access error occurs.
718 boolean supportsSchemasInTableDefinitions
() raises
(SQLException
);
719 //-------------------------------------------------------------------------
721 /** Can a schema name be used in an index definition statement?
725 if a database access error occurs.
727 boolean supportsSchemasInIndexDefinitions
() raises
(SQLException
);
728 //-------------------------------------------------------------------------
730 /** Can a schema name be used in a privilege definition statement?
734 if a database access error occurs.
736 boolean supportsSchemasInPrivilegeDefinitions
()
737 raises
(SQLException
);
738 //-------------------------------------------------------------------------
740 /** Can a catalog name be used in a data manipulation statement?
744 if a database access error occurs.
746 boolean supportsCatalogsInDataManipulation
() raises
(SQLException
);
747 //-------------------------------------------------------------------------
749 /** Can a catalog name be used in a procedure call statement?
753 if a database access error occurs.
755 boolean supportsCatalogsInProcedureCalls
() raises
(SQLException
);
756 //-------------------------------------------------------------------------
758 /** Can a catalog name be used in a table definition statement?
762 if a database access error occurs.
764 boolean supportsCatalogsInTableDefinitions
() raises
(SQLException
);
765 //-------------------------------------------------------------------------
767 /** Can a catalog name be used in an index definition statement?
771 if a database access error occurs.
773 boolean supportsCatalogsInIndexDefinitions
() raises
(SQLException
);
774 //-------------------------------------------------------------------------
776 /** Can a catalog name be used in a privilege definition statement?
780 if a database access error occurs.
782 boolean supportsCatalogsInPrivilegeDefinitions
()
783 raises
(SQLException
);
784 //-------------------------------------------------------------------------
786 /** Is positioned DELETE supported?
790 if a database access error occurs.
792 boolean supportsPositionedDelete
() raises
(SQLException
);
793 //-------------------------------------------------------------------------
795 /** Is positioned UPDATE supported?
799 if a database access error occurs.
801 boolean supportsPositionedUpdate
() raises
(SQLException
);
802 //-------------------------------------------------------------------------
804 /** Is SELECT for UPDATE supported?
808 if a database access error occurs.
810 boolean supportsSelectForUpdate
() raises
(SQLException
);
811 //-------------------------------------------------------------------------
813 /** Are stored procedure calls using the stored procedure escape
818 if a database access error occurs.
820 boolean supportsStoredProcedures
() raises
(SQLException
);
821 //-------------------------------------------------------------------------
823 /** Are subqueries in comparison expressions supported?
827 if a database access error occurs.
829 boolean supportsSubqueriesInComparisons
() raises
(SQLException
);
830 //-------------------------------------------------------------------------
832 /** Are subqueries in 'exists' expressions supported?
836 if a database access error occurs.
838 boolean supportsSubqueriesInExists
() raises
(SQLException
);
839 //-------------------------------------------------------------------------
841 /** Are subqueries in 'in' statements supported?
845 if a database access error occurs.
847 boolean supportsSubqueriesInIns
() raises
(SQLException
);
848 //-------------------------------------------------------------------------
850 /** Are subqueries in quantified expressions supported?
854 if a database access error occurs.
856 boolean supportsSubqueriesInQuantifieds
() raises
(SQLException
);
857 //-------------------------------------------------------------------------
859 /** Are correlated subqueries supported?
863 if a database access error occurs.
865 boolean supportsCorrelatedSubqueries
() raises
(SQLException
);
866 //-------------------------------------------------------------------------
868 /** Is SQL UNION supported?
872 if a database access error occurs.
874 boolean supportsUnion
() raises
(SQLException
);
875 //-------------------------------------------------------------------------
877 /** Is SQL UNION ALL supported?
881 if a database access error occurs.
883 boolean supportsUnionAll
() raises
(SQLException
);
884 //-------------------------------------------------------------------------
886 /** Can cursors remain open across commits?
890 if a database access error occurs.
892 boolean supportsOpenCursorsAcrossCommit
() raises
(SQLException
);
893 //-------------------------------------------------------------------------
895 /** Can cursors remain open across rollbacks?
899 if a database access error occurs.
901 boolean supportsOpenCursorsAcrossRollback
() raises
(SQLException
);
902 //-------------------------------------------------------------------------
904 /** Can statements remain open across commits?
908 if a database access error occurs.
910 boolean supportsOpenStatementsAcrossCommit
() raises
(SQLException
);
911 //-------------------------------------------------------------------------
913 /** Can statements remain open across rollbacks?
917 if a database access error occurs.
919 boolean supportsOpenStatementsAcrossRollback
()
920 raises
(SQLException
);
921 //-------------------------------------------------------------------------
923 /** return the maximal number of hex characters in an inline binary literal
927 if a database access error occurs.
929 long getMaxBinaryLiteralLength
() raises
(SQLException
);
930 //-------------------------------------------------------------------------
932 /** return the max length for a character literal
936 if a database access error occurs.
938 long getMaxCharLiteralLength
() raises
(SQLException
);
939 //-------------------------------------------------------------------------
941 /** return the limit on column name length
945 if a database access error occurs.
947 long getMaxColumnNameLength
() raises
(SQLException
);
948 //-------------------------------------------------------------------------
950 /** return the maximum number of columns in a "GROUP BY" clause
954 if a database access error occurs.
956 long getMaxColumnsInGroupBy
() raises
(SQLException
);
957 //-------------------------------------------------------------------------
959 /** return the maximum number of columns allowed in an index
963 if a database access error occurs.
965 long getMaxColumnsInIndex
() raises
(SQLException
);
966 //-------------------------------------------------------------------------
968 /** return the maximum number of columns in an "ORDER BY" clause
972 if a database access error occurs.
974 long getMaxColumnsInOrderBy
() raises
(SQLException
);
975 //-------------------------------------------------------------------------
977 /** return the maximum number of columns in a "SELECT" list
981 if a database access error occurs.
983 long getMaxColumnsInSelect
() raises
(SQLException
);
984 //-------------------------------------------------------------------------
986 /** return the maximum number of columns in a table
990 if a database access error occurs.
992 long getMaxColumnsInTable
() raises
(SQLException
);
993 //-------------------------------------------------------------------------
995 /** return the number of active connections at a time to this database.
999 if a database access error occurs.
1001 long getMaxConnections
() raises
(SQLException
);
1002 //-------------------------------------------------------------------------
1004 /** return the maximum cursor name length
1007 @throws SQLException
1008 if a database access error occurs.
1010 long getMaxCursorNameLength
() raises
(SQLException
);
1011 //-------------------------------------------------------------------------
1013 /** return the maximum length of an index (in bytes)
1016 @throws SQLException
1017 if a database access error occurs.
1019 long getMaxIndexLength
() raises
(SQLException
);
1020 //-------------------------------------------------------------------------
1022 /** return the maximum length allowed for a schema name
1025 @throws SQLException
1026 if a database access error occurs.
1028 long getMaxSchemaNameLength
() raises
(SQLException
);
1029 //-------------------------------------------------------------------------
1031 /** return the maximum length of a procedure name
1034 @throws SQLException
1035 if a database access error occurs.
1037 long getMaxProcedureNameLength
() raises
(SQLException
);
1038 //-------------------------------------------------------------------------
1040 /** return the maximum length of a catalog name
1043 @throws SQLException
1044 if a database access error occurs.
1046 long getMaxCatalogNameLength
() raises
(SQLException
);
1047 //-------------------------------------------------------------------------
1049 /** return the maximum length of a single row.
1052 @throws SQLException
1053 if a database access error occurs.
1055 long getMaxRowSize
() raises
(SQLException
);
1056 //-------------------------------------------------------------------------
1058 /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
1062 @throws SQLException
1063 if a database access error occurs.
1065 boolean doesMaxRowSizeIncludeBlobs
() raises
(SQLException
);
1066 //-------------------------------------------------------------------------
1068 /** return the maximum length of a SQL statement
1071 @throws SQLException
1072 if a database access error occurs.
1074 long getMaxStatementLength
() raises
(SQLException
);
1075 //-------------------------------------------------------------------------
1077 /** return the maximal number of open active statements at one time to this database
1080 @throws SQLException
1081 if a database access error occurs.
1083 long getMaxStatements
() raises
(SQLException
);
1084 //-------------------------------------------------------------------------
1086 /** return the maximum length of a table name
1089 @throws SQLException
1090 if a database access error occurs.
1092 long getMaxTableNameLength
() raises
(SQLException
);
1093 //-------------------------------------------------------------------------
1095 /** return the maximum number of tables in a SELECT statement
1098 @throws SQLException
1099 if a database access error occurs.
1101 long getMaxTablesInSelect
() raises
(SQLException
);
1102 //-------------------------------------------------------------------------
1104 /** return the maximum length of a user name
1107 @throws SQLException
1108 if a database access error occurs.
1110 long getMaxUserNameLength
() raises
(SQLException
);
1111 //-------------------------------------------------------------------------
1113 /** return the database default transaction isolation level.
1114 The values are defined in
1115 <type scope="com::sun::star::sdbc">TransactionIsolation</type>.
1118 @throws SQLException
1119 if a database access error occurs.
1120 @see com::sun::star::sdbc::XConnection
1122 long getDefaultTransactionIsolation
() raises
(SQLException
);
1123 //-------------------------------------------------------------------------
1125 /** support the Database transactions?
1126 If not, invoking the method
1127 <member scope="com::sun::star::sdbc">XConnection::commit()</member>
1129 isolation level is TransactionIsolation_NONE.
1132 @throws SQLException
1133 if a database access error occurs.
1135 boolean supportsTransactions
() raises
(SQLException
);
1136 //-------------------------------------------------------------------------
1138 /** Does this database support the given transaction isolation level?
1141 @throws SQLException
1142 if a database access error occurs.
1143 @see com::sun::star::sdbc::Connection
1145 boolean supportsTransactionIsolationLevel
([in]long level
)
1146 raises
(SQLException
);
1147 //-------------------------------------------------------------------------
1149 /** support the Database both data definition and data manipulation statements
1150 within a transaction?
1153 @throws SQLException
1154 if a database access error occurs.
1155 <!-- JRH: Unclear on the intent of these many support questions.
1156 If asking, it should state, "Does the Database support both ....?
1157 If declaring, it should state something like the following:
1159 metadata: supportsDataDefinitionAndDataManipulationTransactions
1161 "provides support for both data definition and data manipulation statements within a transaction."
1163 boolean supportsDataDefinitionAndDataManipulationTransactions
()
1164 raises
(SQLException
);
1165 //-------------------------------------------------------------------------
1167 /** are only data manipulation statements within a transaction
1171 @throws SQLException
1172 if a database access error occurs.
1174 boolean supportsDataManipulationTransactionsOnly
()
1175 raises
(SQLException
);
1176 //-------------------------------------------------------------------------
1178 /** does a data definition statement within a transaction force the
1179 transaction to commit?
1182 @throws SQLException
1183 if a database access error occurs.
1185 boolean dataDefinitionCausesTransactionCommit
()
1186 raises
(SQLException
);
1187 //-------------------------------------------------------------------------
1189 /** is a data definition statement within a transaction ignored?
1192 @throws SQLException
1193 if a database access error occurs.
1195 boolean dataDefinitionIgnoredInTransactions
()
1196 raises
(SQLException
);
1197 //-------------------------------------------------------------------------
1199 /** Gets a description of the stored procedures available in a
1204 Only procedure descriptions matching the schema and
1205 procedure name criteria are returned. They are ordered by
1206 PROCEDURE_SCHEM, and PROCEDURE_NAME.
1209 Each procedure description has the following columns:
1213 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1216 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1219 <b>PROCEDURE_NAME</b> string => procedure name
1221 <li> reserved for future use
1223 <li> reserved for future use
1225 <li> reserved for future use
1228 <b>REMARKS</b> string => explanatory comment on the procedure
1231 <b>PROCEDURE_TYPE</b> short => kind of procedure:
1233 <li> UNKNOWN - May return a result
1235 <li> NO - Does not return a result
1237 <li> RETURN - Returns a result
1243 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1244 @param schemaPattern
1245 a schema name pattern; "" retrieves those without a schema
1246 @param procedureNamePattern
1247 a procedure name pattern
1249 each row is a procedure description
1250 @throws SQLException
1251 if a database access error occurs.
1253 XResultSet getProcedures
([in]any catalog
, [in]string schemaPattern
,
1254 [in]string procedureNamePattern
) raises
(SQLException
);
1255 //-------------------------------------------------------------------------
1257 /** gets a description of a catalog's stored procedure parameters
1262 Only descriptions matching the schema, procedure and
1263 parameter name criteria are returned. They are ordered by
1264 PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value,
1265 if any, is first. Next are the parameter descriptions in call
1266 order. The column descriptions follow in column number order.
1268 <p>Each row in the XResultSet is a parameter description or
1269 column description with the following fields:
1273 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1276 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1279 <b>PROCEDURE_NAME</b> string => procedure name
1282 <b>COLUMN_NAME</b> string => column/parameter name
1285 <b>COLUMN_TYPE</b> Short => kind of column/parameter:
1287 <li> UNKNOWN - nobody knows
1289 <li> IN - IN parameter
1291 <li> INOUT - INOUT parameter
1293 <li> OUT - OUT parameter
1295 <li> RETURN - procedure return value
1297 <li> RESULT - result column in XResultSet
1302 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1305 <b>TYPE_NAME</b> string => SQL type name, for a UDT type the
1306 type name is fully qualified
1309 <b>PRECISION</b> long => precision
1312 <b>LENGTH</b> long => length in bytes of data
1315 <b>SCALE</b> short => scale
1318 <b>RADIX</b> short => radix
1321 <b>NULLABLE</b> short => can it contain NULL?
1323 <li> NO_NULLS - does not allow NULL values
1325 <li> NULLABLE - allows NULL values
1327 <li> NULLABLE_UNKNOWN - nullability unknown
1332 <b>REMARKS</b> string => comment describing parameter/column
1336 <b>Note:</b> Some databases may not return the column
1337 descriptions for a procedure. Additional columns beyond
1338 REMARKS can be defined by the database.
1341 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1342 @param schemaPattern
1343 a schema name pattern; "" retrieves those without a schema
1344 @param procedureNamePattern
1345 a procedure name pattern
1346 @param columnNamePattern
1347 a column name pattern
1349 each row describes a stored procedure parameter or column
1350 @throws SQLException
1351 if a database access error occurs.
1353 XResultSet getProcedureColumns
([in]any catalog
, [in]string schemaPattern
,
1354 [in]string procedureNamePattern
,
1355 [in]string columnNamePattern
)
1356 raises
(SQLException
);
1357 //-------------------------------------------------------------------------
1359 /** gets a description of tables available in a catalog.
1362 <p>Only table descriptions matching the catalog, schema, table
1363 name, and type criteria are returned. They are ordered by
1364 TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME.
1366 <p>Each table description has the following columns:
1370 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1373 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1376 <b>TABLE_NAME</b> string => table name
1379 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1380 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1381 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1384 <b>REMARKS</b> string => explanatory comment on the table
1388 <b>Note:</b> Some databases may not return information for
1392 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1393 @param schemaPattern
1394 a schema name pattern; "" retrieves those without a schema
1395 @param tableNamePattern
1396 a table name pattern
1398 a list of table types to include
1400 each row is a table description
1401 @throws SQLException
1402 if a database access error occurs.
1404 XResultSet getTables
([in]any catalog
, [in]string schemaPattern
,
1405 [in]string tableNamePattern
, [in]sequence
<string> types
)
1406 raises
(SQLException
);
1407 //-------------------------------------------------------------------------
1409 /** Gets the schema names available in this database. The results
1410 are ordered by schema name.
1413 <p>The schema column is:
1417 <b>TABLE_SCHEM</b> string => schema name
1421 each row has a single String column that is a schema name
1422 @throws SQLException
1423 if a database access error occurs.
1425 XResultSet getSchemas
() raises
(SQLException
);
1426 //-------------------------------------------------------------------------
1428 /** gets the catalog names available in this database. The results
1429 are ordered by catalog name.
1432 <p>The catalog column is:
1436 <b>TABLE_CAT</b> string => catalog name
1440 each row has a single String column that is a catalog name
1441 @throws SQLException
1442 if a database access error occurs.
1444 XResultSet getCatalogs
() raises
(SQLException
);
1445 //-------------------------------------------------------------------------
1447 /** gets the table types available in this database. The results
1448 are ordered by table type.
1451 <p>The table type is:
1455 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1456 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1457 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1461 each row has a single String column that is a table type
1462 @throws SQLException
1463 if a database access error occurs.
1465 XResultSet getTableTypes
() raises
(SQLException
);
1466 //-------------------------------------------------------------------------
1468 /** gets a description of table columns available in
1469 the specified catalog.
1472 <p>Only column descriptions matching the catalog, schema, table
1473 and column name criteria are returned. They are ordered by
1474 TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION.
1476 <p>Each column description has the following columns:
1480 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1483 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1486 <b>TABLE_NAME</b> string => table name
1489 <b>COLUMN_NAME</b> string => column name
1492 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1495 <b>TYPE_NAME</b> string => Data source dependent type name,
1496 for a UDT the type name is fully qualified
1499 <b>COLUMN_SIZE</b> long => column size. For char or date
1500 types this is the maximum number of characters, for numeric or
1501 decimal types this is precision.
1504 <b>BUFFER_LENGTH</b> is not used.
1507 <b>DECIMAL_DIGITS</b> long => the number of fractional digits
1510 <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2)
1513 <b>NULLABLE</b> long => is NULL allowed?
1515 <li> NO_NULLS - might not allow NULL values
1517 <li> NULABLE - definitely allows NULL values
1519 <li> NULLABLE_UNKNOWN - nullability unknown
1524 <b>REMARKS</b> string => comment describing column (may be <NULL/>)
1527 <b>COLUMN_DEF</b> string => default value (may be <NULL/>)
1530 <b>SQL_DATA_TYPE</b> long => unused
1533 <b>SQL_DATETIME_SUB</b> long => unused
1536 <b>CHAR_OCTET_LENGTH</b> long => for char types the
1537 maximum number of bytes in the column
1540 <b>ORDINAL_POSITION</b> int => index of column in table
1544 <b>IS_NULLABLE</b> string => "NO" means column definitely
1545 does not allow NULL values; "YES" means the column might
1546 allow NULL values. An empty string means nobody knows.
1550 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1551 @param schemaPattern
1552 a schema name pattern; "" retrieves those without a schema
1553 @param tableNamePattern
1554 a table name pattern
1555 @param columnNamePattern
1556 a column name pattern
1558 each row is a column description
1559 @throws SQLException
1560 if a database access error occurs.
1562 XResultSet getColumns
([in]any catalog
, [in]string schemaPattern
,
1563 [in]string tableNamePattern
, [in]string columnNamePattern
)
1564 raises
(SQLException
);
1565 //-------------------------------------------------------------------------
1567 /** gets a description of the access rights for a table's columns.
1571 Only privileges matching the column name criteria are
1572 returned. They are ordered by COLUMN_NAME and PRIVILEGE.
1574 <p>Each privilige description has the following columns:
1578 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1581 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1584 <b>TABLE_NAME</b> string => table name
1587 <b>COLUMN_NAME</b> string => column name
1590 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1593 <b>GRANTEE</b> string => grantee of access
1596 <b>PRIVILEGE</b> string => name of access (SELECT,
1597 INSERT, UPDATE, REFERENCES, ...)
1600 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1601 to grant to others; "NO" if not; <NULL/> if unknown
1605 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1607 a schema name ; "" retrieves those without a schema
1610 @param columnNamePattern
1611 a column name pattern
1613 each row is a column privilege description
1614 @throws SQLException
1615 if a database access error occurs.
1617 XResultSet getColumnPrivileges
([in]any catalog
, [in]string schema
,
1618 [in]string table
, [in]string columnNamePattern
) raises
(SQLException
);
1619 //-------------------------------------------------------------------------
1621 /** gets a description of the access rights for each table available
1622 in a catalog. Note that a table privilege applies to one or
1623 more columns in the table. It would be wrong to assume that
1624 this priviledge applies to all columns (this may be <TRUE/> for
1625 some systems but is not <TRUE/> for all.)
1628 <p>Only privileges matching the schema and table name
1629 criteria are returned. They are ordered by TABLE_SCHEM,
1630 TABLE_NAME, and PRIVILEGE.
1632 <p>Each privilige description has the following columns:
1636 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1639 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1642 <b>TABLE_NAME</b> string => table name
1645 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1648 <b>GRANTEE</b> string => grantee of access
1651 <b>PRIVILEGE</b> string => name of access (SELECT,
1652 INSERT, UPDATE, REFERENCES, ...)
1655 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1656 to grant to others; "NO" if not; <NULL/> if unknown
1660 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1661 @param schemaPattern
1662 a schema name pattern; "" retrieves those without a schema
1663 @param tableNamePattern
1664 a table name pattern
1666 each row is a table privilege description
1667 @throws SQLException
1668 if a database access error occurs.
1670 XResultSet getTablePrivileges
([in]any catalog
, [in]string schemaPattern
,
1671 [in]string tableNamePattern
) raises
(SQLException
);
1672 //-------------------------------------------------------------------------
1674 /** gets a description of a table's optimal set of columns that
1675 uniquely identifies a row. They are ordered by SCOPE.
1678 <p>Each column description has the following columns:
1682 <b>SCOPE</b> short => actual scope of result
1684 <li> TEMPORARY - very temporary, while using row
1686 <li> TRANSACTION - valid for remainder of current transaction
1688 <li> SESSION - valid for remainder of current session
1693 <b>COLUMN_NAME</b> string => column name
1696 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1699 <b>TYPE_NAME</b> string => Data source dependent type name,
1700 for a UDT the type name is fully qualified
1703 <b>COLUMN_SIZE</b> long => precision
1706 <b>BUFFER_LENGTH</b> long => not used
1709 <b>DECIMAL_DIGITS</b> short => scale
1712 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1713 like an Oracle ROWID
1715 <li> UNKNOWN - may or may not be pseudo column
1717 <li> NOT_PSEUDO - is NOT a pseudo column
1719 <li> PSEUDO - is a pseudo column
1725 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1727 a schema name; "" retrieves those without a schema
1731 the scope of interest; use same values as SCOPE
1733 include columns that are nullable?
1735 each row is a column description
1736 @throws SQLException
1737 if a database access error occurs.
1739 XResultSet getBestRowIdentifier
([in]any catalog
, [in]string schema
,
1740 [in]string table
, [in]long scope
, [in] boolean nullable
)
1741 raises
(SQLException
);
1742 //-------------------------------------------------------------------------
1744 /** gets a description of a table's columns that are automatically
1745 updated when any value in a row is updated. They are
1749 <p>Each column description has the following columns:
1753 <b>SCOPE</b> short => is not used
1756 <b>COLUMN_NAME</b> string => column name
1759 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1762 <b>TYPE_NAME</b> string => Data source dependent type name
1765 <b>COLUMN_SIZE</b> long => precision
1768 <b>BUFFER_LENGTH</b> long => length of column value in bytes
1771 <b>DECIMAL_DIGITS</b> short => scale
1774 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1775 like an Oracle ROWID
1777 <li> UNKNOWN - may or may not be pseudo column
1779 <li> NOT_PSEUDO - is NOT a pseudo column
1781 <li> PSEUDO - is a pseudo column
1787 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1789 a schema name; "" retrieves those without a schema
1793 each row is a column description
1794 @throws SQLException
1795 if a database access error occurs.
1797 XResultSet getVersionColumns
([in]any catalog
, [in]string schema
,
1798 [in]string table
) raises
(SQLException
);
1799 //-------------------------------------------------------------------------
1801 /** gets a description of a table's primary key columns. They
1802 are ordered by COLUMN_NAME.
1805 <p>Each primary key column description has the following columns:
1809 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1812 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1815 <b>TABLE_NAME</b> string => table name
1818 <b>COLUMN_NAME</b> string => column name
1821 <b>KEY_SEQ</b> short => sequence number within primary key
1824 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1828 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1830 a schema name; "" retrieves those without a schema
1834 each row is a primary key column description
1835 @throws SQLException
1836 if a database access error occurs.
1838 XResultSet getPrimaryKeys
([in]any catalog
, [in]string schema
,
1839 [in]string table
) raises
(SQLException
);
1840 //-------------------------------------------------------------------------
1842 /** gets a description of the primary key columns that are
1843 referenced by a table's foreign key columns (the primary keys
1844 imported by a table). They are ordered by PKTABLE_CAT,
1845 PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
1848 <p>Each primary key column description has the following columns:
1852 <b>PKTABLE_CAT</b> string => primary key table catalog
1853 being imported (may be <NULL/>)
1856 <b>PKTABLE_SCHEM</b> string => primary key table schema
1857 being imported (may be <NULL/>)
1860 <b>PKTABLE_NAME</b> string => primary key table name
1864 <b>PKCOLUMN_NAME</b> string => primary key column name
1868 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1871 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1874 <b>FKTABLE_NAME</b> string => foreign key table name
1877 <b>FKCOLUMN_NAME</b> string => foreign key column name
1880 <b>KEY_SEQ</b> short => sequence number within foreign key
1883 <b>UPDATE_RULE</b> short => What happens to
1884 foreign key when primary is updated:
1886 <li> importedNoAction - do not allow update of primary
1887 key if it has been imported
1889 <li> importedKeyCascade - change imported key to agree
1890 with primary key update
1892 <li> importedKeySetNull - change imported key to NULL if
1893 its primary key has been updated
1895 <li> importedKeySetDefault - change imported key to default values
1896 if its primary key has been updated
1898 <li> importedKeyRestrict - same as importedKeyNoAction
1899 (for ODBC 2.x compatibility)
1904 <b>DELETE_RULE</b> short => What happens to
1905 the foreign key when primary is deleted.
1907 <li> importedKeyNoAction - do not allow delete of primary
1908 key if it has been imported
1910 <li> importedKeyCascade - delete rows that import a deleted key
1912 <li> importedKeySetNull - change imported key to NULL if
1913 its primary key has been deleted
1915 <li> importedKeyRestrict - same as importedKeyNoAction
1916 (for ODBC 2.x compatibility)
1918 <li> importedKeySetDefault - change imported key to default if
1919 its primary key has been deleted
1924 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
1927 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1930 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
1931 constraints be deferred until commit
1933 <li> importedKeyInitiallyDeferred - see SQL92 for definition
1935 <li> importedKeyInitiallyImmediate - see SQL92 for definition
1937 <li> importedKeyNotDeferrable - see SQL92 for definition
1943 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1945 a schema name; "" retrieves those without a schema
1949 each row is a primary key column description
1950 @throws SQLException
1951 if a database access error occurs.
1953 XResultSet getImportedKeys
([in]any catalog
, [in]string schema
,
1954 [in]string table
) raises
(SQLException
);
1955 //-------------------------------------------------------------------------
1957 /** gets a description of the foreign key columns that reference a
1958 table's primary key columns (the foreign keys exported by a
1959 table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
1960 FKTABLE_NAME, and KEY_SEQ.
1963 <p>Each foreign key column description has the following columns:
1967 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
1970 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
1973 <b>PKTABLE_NAME</b> string => primary key table name
1976 <b>PKCOLUMN_NAME</b> string => primary key column name
1979 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1980 being exported (may be <NULL/>)
1983 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1984 being exported (may be <NULL/>)
1987 <b>FKTABLE_NAME</b> string => foreign key table name
1991 <b>FKCOLUMN_NAME</b> string => foreign key column name
1995 <b>KEY_SEQ</b> short => sequence number within foreign key
1998 <b>UPDATE_RULE</b> short => What happens to
1999 foreign key when primary is updated:
2001 <li> NO_ACTION - do not allow update of primary
2002 key if it has been imported
2004 <li> CASCADE - change imported key to agree
2005 with primary key update
2007 <li> SET_NULL - change imported key to NULL if
2008 its primary key has been updated
2010 <li> SET_DEFAULT - change imported key to default values
2011 if its primary key has been updated
2013 <li> RESTRICT - same as importedKeyNoAction
2014 (for ODBC 2.x compatibility)
2019 <b>DELETE_RULE</b> short => What happens to
2020 the foreign key when primary is deleted.
2022 <li> NO_ACTION - do not allow delete of primary
2023 key if it has been imported
2025 <li> CASCADE - delete rows that import a deleted key
2027 <li> SET_NULL - change imported key to NULL if
2028 its primary key has been deleted
2030 <li> RESTRICT - same as importedKeyNoAction
2031 (for ODBC 2.x compatibility)
2033 <li> SET_DEFAULT - change imported key to default if
2034 its primary key has been deleted
2039 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2042 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2045 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2046 constraints be deferred until commit
2048 <li> INITIALLY_DEFERRED - see SQL92 for definition
2050 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2052 <li> NONE - see SQL92 for definition
2058 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2060 a schema name; "" retrieves those without a schema
2064 each row is a foreign key column description
2065 @throws SQLException
2066 if a database access error occurs.
2068 XResultSet getExportedKeys
([in]any catalog
, [in]string schema
,
2069 [in]string table
) raises
(SQLException
);
2070 //-------------------------------------------------------------------------
2072 /** gets a description of the foreign key columns in the foreign key
2073 table that reference the primary key columns of the primary key
2074 table (describe how one table imports another's key.) This
2075 should normally return a single foreign key/primary key pair
2076 (most tables only import a foreign key from a table once.). They
2077 are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and
2081 <p>Each foreign key column description has the following columns:
2085 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
2088 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
2091 <b>PKTABLE_NAME</b> string => primary key table name
2094 <b>PKCOLUMN_NAME</b> string => primary key column name
2097 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
2098 being exported (may be <NULL/>)
2101 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
2102 being exported (may be <NULL/>)
2105 <b>FKTABLE_NAME</b> string => foreign key table name
2109 <b>FKCOLUMN_NAME</b> string => foreign key column name
2113 <b>KEY_SEQ</b> short => sequence number within foreign key
2116 <b>UPDATE_RULE</b> short => What happens to
2117 foreign key when primary is updated:
2119 <li> NO_ACTION - do not allow update of primary
2120 key if it has been imported
2122 <li> CASCADE - change imported key to agree
2123 with primary key update
2125 <li> SET_NULL - change imported key to NULL if
2126 its primary key has been updated
2128 <li> SET_DEFAULT - change imported key to default values
2129 if its primary key has been updated
2131 <li> RESTRICT - same as importedKeyNoAction
2132 (for ODBC 2.x compatibility)
2137 <b>DELETE_RULE</b> short => What happens to
2138 the foreign key when primary is deleted.
2140 <li> NO_ACTION - do not allow delete of primary
2141 key if it has been imported
2143 <li> CASCADE - delete rows that import a deleted key
2145 <li> SET_NULL - change imported key to NULL if
2146 its primary key has been deleted
2148 <li> RESTRICT - same as importedKeyNoAction
2149 (for ODBC 2.x compatibility)
2151 <li> SET_DEFAULT - change imported key to default if
2152 its primary key has been deleted
2157 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2160 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2163 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2164 constraints be deferred until commit
2166 <li> INITIALLY_DEFERRED - see SQL92 for definition
2168 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2170 <li> NONE - see SQL92 for definition
2175 @param primaryCatalog
2176 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2177 @param primarySchema
2178 a schema name; "" retrieves those without a schema
2180 the table name that exports the key
2181 @param foreignCatalog
2182 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2183 @param foreignSchema
2184 a schema name; "" retrieves those without a schema
2186 the table name that imports the key
2188 each row is a foreign key column description
2189 @throws SQLException
2190 if a database access error occurs.
2192 XResultSet getCrossReference
(
2193 [in]any primaryCatalog
, [in]string primarySchema
,
2194 [in]string primaryTable
,
2195 [in]any foreignCatalog
, [in]string foreignSchema
,
2196 [in]string foreignTable
) raises
(SQLException
);
2197 //-------------------------------------------------------------------------
2199 /** gets a description of all the standard SQL types supported by
2200 this database. They are ordered by DATA_TYPE and then by how
2201 closely the data type maps to the corresponding SDBC SQL type.
2205 <p>Each type description has the following columns:
2209 <b>TYPE_NAME</b> string => Type name
2212 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
2215 <b>PRECISION</b> long => maximum precision
2218 <b>LITERAL_PREFIX</b> string => prefix used to quote a literal
2222 <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal
2226 <b>CREATE_PARAMS</b> string => parameters used in creating
2227 the type (may be <NULL/>)
2230 <b>NULLABLE</b> short => can you use NULL for this type?
2232 <li> NO_NULLS - does not allow NULL values
2234 <li> NULLABLE - allows NULL values
2236 <li> NULLABLE_UNKNOWN - nullability unknown
2241 <b>CASE_SENSITIVE</b> boolean=> is it case sensitive?
2244 <b>SEARCHABLE</b> short => can you use "WHERE" based on this type:
2246 <li> NONE - No support
2248 <li> CHAR - Only supported with WHERE .. LIKE
2250 <li> BASIC - Supported except for WHERE .. LIKE
2252 <li> FULL - Supported for all WHERE ..
2257 <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned?
2260 <b>FIXED_PREC_SCALE</b> boolean => can it be a money value?
2263 <b>AUTO_INCREMENT</b> boolean => can it be used for an
2264 auto-increment value?
2267 <b>LOCAL_TYPE_NAME</b> string => localized version of type name
2271 <b>MINIMUM_SCALE</b> short => minimum scale supported
2274 <b>MAXIMUM_SCALE</b> short => maximum scale supported
2277 <b>SQL_DATA_TYPE</b> long => unused
2280 <b>SQL_DATETIME_SUB</b> long => unused
2283 <b>NUM_PREC_RADIX</b> long => usually 2 or 10
2287 each row is a SQL type description
2288 @throws SQLException
2289 if a database access error occurs.
2291 XResultSet getTypeInfo
() raises
(SQLException
);
2292 //-------------------------------------------------------------------------
2294 /** gets a description of a table's indices and statistics. They are
2295 ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
2298 <p>Each index column description has the following columns:
2302 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
2305 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
2308 <b>TABLE_NAME</b> string => table name
2311 <b>NON_UNIQUE</b> boolean => Can index values be non-unique?
2312 <FALSE/> when TYPE is tableIndexStatistic
2315 <b>INDEX_QUALIFIER</b> string => index catalog (may be <NULL/>);
2316 <NULL/> when TYPE is tableIndexStatistic
2319 <b>INDEX_NAME</b> string => index name; <NULL/> when TYPE is
2323 <b>TYPE</b> short => index type:
2325 <li> 0 - this identifies table statistics that are
2326 returned in conjuction with a table's index descriptions
2328 <li> CLUSTERED - this is a clustered index
2330 <li> HASHED - this is a hashed index
2332 <li> OTHER - this is some other style of index
2337 <b>ORDINAL_POSITION</b> short => column sequence number
2338 within index; zero when TYPE is tableIndexStatistic
2341 <b>COLUMN_NAME</b> string => column name; <NULL/> when TYPE is
2345 <b>ASC_OR_DESC</b> string => column sort sequence, "A" => ascending,
2346 "D" => descending, may be <NULL/> if sort sequence is not supported;
2347 <NULL/> when TYPE is tableIndexStatistic
2350 <b>CARDINALITY</b> long => When TYPE is tableIndexStatistic, then
2351 this is the number of rows in the table; otherwise, it is the
2352 number of unique values in the index.
2355 <b>PAGES</b> long => When TYPE is tableIndexStatisic then
2356 this is the number of pages used for the table, otherwise it
2357 is the number of pages used for the current index.
2360 <b>FILTER_CONDITION</b> string => Filter condition, if any.
2365 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2367 a schema name; "" retrieves those without a schema
2369 the table name that exports the key
2371 when <TRUE/>, return only indices for unique values; when <FALSE/>, return indices regardless of whether unique or not
2373 when <TRUE/>, result is allowed to reflect approximate or out of data values; when <FALSE/>, results are requested to be accurate
2375 each row is an index column description
2376 @throws SQLException
2377 if a database access error occurs.
2379 XResultSet getIndexInfo
([in]any catalog
, [in]string schema
, [in]string table
,
2380 [in]boolean unique, [in]boolean approximate
)
2381 raises
(SQLException
);
2382 //-------------------------------------------------------------------------
2384 /** Does the database support the given result set type?
2387 <type scop="com::sun::star::sdbc">ResultSetType</type>
2390 @throws SQLException
2391 if a database access error occurs.
2393 boolean supportsResultSetType
([in]long setType
) raises
(SQLException
);
2394 //-------------------------------------------------------------------------
2396 /** Does the database support the concurrency type in combination
2397 with the given result set type?
2400 <type scop="com::sun::star::sdbc">ResultSetType</type>
2403 <type scop="com::sun::star::sdbc">ResultSetConcurrency</type>
2406 @throws SQLException
2407 if a database access error occurs.
2409 boolean supportsResultSetConcurrency
([in]long setType
,
2410 [in]long concurrency
)
2411 raises
(SQLException
);
2412 //-------------------------------------------------------------------------
2414 /** indicates whether a result set's own updates are visible.
2417 <type scop="com::sun::star::sdbc">ResultSetType</type>
2420 @throws SQLException
2421 if a database access error occurs.
2423 boolean ownUpdatesAreVisible
([in]long setType
) raises
(SQLException
);
2424 //-------------------------------------------------------------------------
2426 /** indicates whether a result set's own deletes are visible.
2429 <type scop="com::sun::star::sdbc">ResultSetType</type>
2432 @throws SQLException
2433 if a database access error occurs.
2435 boolean ownDeletesAreVisible
([in]long setType
) raises
(SQLException
);
2436 //-------------------------------------------------------------------------
2438 /** indicates whether a result set's own inserts are visible.
2441 <type scop="com::sun::star::sdbc">ResultSetType</type>
2444 @throws SQLException
2445 if a database access error occurs.
2447 boolean ownInsertsAreVisible
([in]long setType
) raises
(SQLException
);
2448 //-------------------------------------------------------------------------
2450 /** indicates whether updates made by others are visible.
2453 <type scop="com::sun::star::sdbc">ResultSetType</type>
2456 @throws SQLException
2457 if a database access error occurs.
2459 boolean othersUpdatesAreVisible
([in]long setType
) raises
(SQLException
);
2460 //-------------------------------------------------------------------------
2462 /** indicates whether deletes made by others are visible.
2465 <type scop="com::sun::star::sdbc">ResultSetType</type>
2468 @throws SQLException
2469 if a database access error occurs.
2471 boolean othersDeletesAreVisible
([in]long setType
) raises
(SQLException
);
2472 //-------------------------------------------------------------------------
2474 /** indicates whether inserts made by others are visible.
2477 <type scop="com::sun::star::sdbc">ResultSetType</type>
2480 @throws SQLException
2481 if a database access error occurs.
2483 boolean othersInsertsAreVisible
([in]long setType
) raises
(SQLException
);
2484 //-------------------------------------------------------------------------
2486 /** indicates whether or not a visible row update can be detected by
2488 <code>XResultSet.rowUpdated</code>.
2491 <type scop="com::sun::star::sdbc">ResultSetType</type>
2494 @throws SQLException
2495 if a database access error occurs.
2497 boolean updatesAreDetected
([in]long setType
) raises
(SQLException
);
2498 //-------------------------------------------------------------------------
2500 /** indicates whether or not a visible row delete can be detected by
2502 <member scope="com::sun::star::sdbc">XResultSet::rowDeleted()</member>
2503 . If deletesAreDetected()
2504 returns <FALSE/>, then deleted rows are removed from the result set.
2507 <type scop="com::sun::star::sdbc">ResultSetType</type>
2510 @throws SQLException
2511 if a database access error occurs.
2513 boolean deletesAreDetected
([in]long setType
) raises
(SQLException
);
2514 //-------------------------------------------------------------------------
2516 /** indicates whether or not a visible row insert can be detected
2518 <member scope="com::sun::star::sdbc">XResultSet::rowInserted().</member>
2521 <type scop="com::sun::star::sdbc">ResultSetType</type>
2524 @throws SQLException
2525 if a database access error occurs.
2527 boolean insertsAreDetected
([in]long setType
) raises
(SQLException
);
2528 //-------------------------------------------------------------------------
2530 /** indicates whether the driver supports batch updates.
2533 @throws SQLException
2534 if a database access error occurs.
2536 boolean supportsBatchUpdates
() raises
(SQLException
);
2537 //-------------------------------------------------------------------------
2539 /** Gets a description of the user-defined types defined in a particular
2540 schema. Schema-specific UDTs may have type OBJECT, STRUCT,
2544 <p>Only types matching the catalog, schema, type name, and type
2545 criteria are returned. They are ordered by DATA_TYPE, TYPE_SCHEM,
2546 and TYPE_NAME. The type name parameter may be a fully-qualified
2547 name. In this case, the catalog and schemaPattern parameters are
2550 <p>Each type description has the following columns:
2554 <b>TYPE_CAT</b> string => the type's catalog (may be <NULL/>)
2557 <b>TYPE_SCHEM</b> string => type's schema (may be <NULL/>)
2560 <b>TYPE_NAME</b> string => type name
2563 <b>CLASS_NAME</b> string => Java class name or service name
2566 <b>DATA_TYPE</b> string => type value.
2567 One of OBJECT, STRUCT, or DISTINCT
2570 <b>REMARKS</b> string => explanatory comment on the type
2574 <b>Note:</b> If the driver does not support UDTs, an empty
2575 result set is returned.
2578 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2579 @param schemaPattern
2580 a schema name pattern; "" retrieves those without a schema
2581 @param typeNamePattern
2582 a type name pattern; may be a fully-qualified name
2584 a list of user-named types to include (OBJECT, STRUCT, or DISTINCT)
2586 each row is a type description
2587 @throws SQLException
2588 if a database access error occurs.
2590 XResultSet getUDTs
([in]any catalog
, [in]string schemaPattern
,
2591 [in]string typeNamePattern
, [in]sequence
<long> types
)
2592 raises
(SQLException
);
2593 //-------------------------------------------------------------------------
2595 /** retrieves the connection that produced this metadata object.
2597 the Connection object
2598 @throws SQLException
2599 if a database access error occurs.
2601 XConnection getConnection
() raises
(SQLException
);
2604 //=============================================================================
2608 /*===========================================================================
2609 ===========================================================================*/