1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: XDatabaseMetaData.idl,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
30 #ifndef __com_sun_star_sdbc_XDatabaseMetaData_idl__
31 #define __com_sun_star_sdbc_XDatabaseMetaData_idl__
33 #ifndef __com_sun_star_uno_XInterface_idl__
34 #include
<com
/sun
/star
/uno
/XInterface.idl
>
37 #ifndef __com_sun_star_sdbc_SQLException_idl__
38 #include
<com
/sun
/star
/sdbc
/SQLException.idl
>
42 module com
{ module sun
{ module star
{ module sdbc
{
44 published
interface XResultSet
;
45 published
interface XConnection
;
47 /** provides comprehensive information about the database as a whole.
50 <p>Many of the methods here return lists of information in
52 <type scope="com::sun::star::sdbc">XResultSet</type>
54 You can use the normal <type scope="com::sun::star::sdbc">XResultSet</type>
56 <member scope="com::sun::star::sdbc">XResultSet::getString()</member>
58 <member scope="com::sun::star::sdbc">XResultSet::getInt()</member>
59 to retrieve the data from these XResultSets. If a given form of
60 metadata is not available, these methods should throw a
61 <type scope="com::sun::star::sdbc">SQLException</type>
63 That a value of <type scope="com::sun::star::sdbc">XResultSet</type> is <NULL/>
64 can be chaked with the method <member scope="com::sun::star::sdbc">XResultSet::wasNull()</member>.
65 In the text only "(may be <NULL/>)" is mentioned for this case.
67 <p>Some of these methods take arguments that are String patterns. These
68 arguments all have names such as fooPattern. Within a pattern String, "%"
69 means match any substring of 0 or more characters, and "_" means match
70 any one character. Only metadata entries matching the search pattern
71 are returned. If a search pattern argument is set to <VOID/>,
72 that argument's criteria will be dropped from the search.
76 <type scope="com::sun::star::sdbc">SQLException</type>
77 will be thrown if a driver does not support
78 a meta data method. In the case of methods that return an XResultSet,
79 either an XResultSet (which may be empty) is returned or a
80 SQLException is thrown.</p>
82 published
interface XDatabaseMetaData
: com
::sun
::star
::uno
::XInterface
85 /** Can all the procedures returned by getProcedures be called by the
90 if the user is allowed to call all procedures returned by getProcedures
95 if a database access error occurs.
97 boolean allProceduresAreCallable
() raises
(SQLException
);
98 //-------------------------------------------------------------------------
100 /** Can all the tables returned by getTable be SELECTed by the
105 if a database access error occurs.
107 boolean allTablesAreSelectable
() raises
(SQLException
);
108 //-------------------------------------------------------------------------
110 /** returns the URL for the database connection
112 string getURL
() raises
(SQLException
);
113 //-------------------------------------------------------------------------
115 /** returns the user name from this database connection.
117 string getUserName
() raises
(SQLException
);
118 //-------------------------------------------------------------------------
120 /** checks if the database in read-only mode.
124 if a database access error occurs.
126 boolean isReadOnly
() raises
(SQLException
);
127 //-------------------------------------------------------------------------
129 /** Are NULL values sorted high?
133 if a database access error occurs.
135 boolean nullsAreSortedHigh
() raises
(SQLException
);
136 //-------------------------------------------------------------------------
138 /** Are NULL values sorted low?
142 if a database access error occurs.
144 boolean nullsAreSortedLow
() raises
(SQLException
);
145 //-------------------------------------------------------------------------
147 /** Are NULL values sorted at the start regardless of sort order?
151 if a database access error occurs.
153 boolean nullsAreSortedAtStart
() raises
(SQLException
);
154 //-------------------------------------------------------------------------
156 /** Are NULL values sorted at the end, regardless of sort order?
160 if a database access error occurs.
162 boolean nullsAreSortedAtEnd
() raises
(SQLException
);
163 //-------------------------------------------------------------------------
165 /** returns the name of the database product.
167 string getDatabaseProductName
() raises
(SQLException
);
168 //-------------------------------------------------------------------------
170 /** returns the version of the database product.
172 string getDatabaseProductVersion
() raises
(SQLException
);
173 //-------------------------------------------------------------------------
175 /** returns the name of the SDBC driver.
177 string getDriverName
() raises
(SQLException
);
178 //-------------------------------------------------------------------------
180 /** returns the version number of the SDBC driver.
182 string getDriverVersion
() raises
(SQLException
);
183 //-------------------------------------------------------------------------
185 /** returns the SDBC driver major version number.
187 long getDriverMajorVersion
();
188 //-------------------------------------------------------------------------
190 /** returns the SDBC driver minor version number.
192 long getDriverMinorVersion
();
193 //-------------------------------------------------------------------------
195 /** use the database local files to save the tables.
199 if a database access error occurs.
201 boolean usesLocalFiles
() raises
(SQLException
);
202 //-------------------------------------------------------------------------
204 /** use the database one local file to save for each table.
208 if a database access error occurs.
210 boolean usesLocalFilePerTable
() raises
(SQLException
);
211 //-------------------------------------------------------------------------
213 /** use the database 'mixed case unquoted SQL identifiers' case sensitive.
217 if a database access error occurs.
219 boolean supportsMixedCaseIdentifiers
() raises
(SQLException
);
220 //-------------------------------------------------------------------------
222 /** Does the database treat mixed case unquoted SQL identifiers as
223 case insensitive and store them in upper case?
227 if a database access error occurs.
229 boolean storesUpperCaseIdentifiers
() raises
(SQLException
);
230 //-------------------------------------------------------------------------
232 /** Does the database treat mixed case unquoted SQL identifiers as
233 case insensitive and store them in lower case?
237 if a database access error occurs.
239 boolean storesLowerCaseIdentifiers
() raises
(SQLException
);
240 //-------------------------------------------------------------------------
242 /** Does the database treat mixed case unquoted SQL identifiers as
243 case insensitive and store them in mixed case?
247 if a database access error occurs.
249 boolean storesMixedCaseIdentifiers
() raises
(SQLException
);
250 //-------------------------------------------------------------------------
252 /** Does the database treat mixed case quoted SQL identifiers as
253 case sensitive and as a result store them in mixed case?
257 if a database access error occurs.
259 boolean supportsMixedCaseQuotedIdentifiers
() raises
(SQLException
);
260 //-------------------------------------------------------------------------
262 /** Does the database treat mixed case quoted SQL identifiers as
263 case insensitive and store them in upper case?
267 if a database access error occurs.
269 boolean storesUpperCaseQuotedIdentifiers
() raises
(SQLException
);
270 //-------------------------------------------------------------------------
272 /** Does the database treat mixed case quoted SQL identifiers as
273 case insensitive and store them in lower case?
277 if a database access error occurs.
279 boolean storesLowerCaseQuotedIdentifiers
() raises
(SQLException
);
280 //-------------------------------------------------------------------------
282 /** Does the database treat mixed case quoted SQL identifiers as
283 case insensitive and store them in mixed case?
287 if a database access error occurs.
289 boolean storesMixedCaseQuotedIdentifiers
() raises
(SQLException
);
290 //-------------------------------------------------------------------------
292 /** What's the string used to quote SQL identifiers?
293 This returns a space " " if identifier quoting is not supported.
297 if a database access error occurs.
299 string getIdentifierQuoteString
() raises
(SQLException
);
300 //-------------------------------------------------------------------------
302 /** gets a comma-separated list of all a database's SQL keywords
303 that are NOT also SQL92 keywords.
307 if a database access error occurs.
309 string getSQLKeywords
() raises
(SQLException
);
310 //-------------------------------------------------------------------------
312 /** gets a comma-separated list of math functions. These are the
313 X/Open CLI math function names used in the SDBC function escape
318 if a database access error occurs.
320 string getNumericFunctions
() raises
(SQLException
);
321 //-------------------------------------------------------------------------
323 /** gets a comma-separated list of string functions. These are the
324 X/Open CLI string function names used in the SDBC function escape
329 if a database access error occurs.
331 string getStringFunctions
() raises
(SQLException
);
332 //-------------------------------------------------------------------------
334 /** gets a comma-separated list of system functions. These are the
335 X/Open CLI system function names used in the SDBC function escape
340 if a database access error occurs.
342 string getSystemFunctions
() raises
(SQLException
);
343 //-------------------------------------------------------------------------
345 /** gets a comma-separated list of time and date functions.
349 if a database access error occurs.
351 string getTimeDateFunctions
() raises
(SQLException
);
352 //-------------------------------------------------------------------------
354 /** gets the string that can be used to escape wildcard characters.
355 This is the string that can be used to escape '_' or '%' in
356 the string pattern style catalog search parameters.
360 The '_' character represents any single character.
363 The '%' character represents any sequence of zero or
369 if a database access error occurs.
371 string getSearchStringEscape
() raises
(SQLException
);
372 //-------------------------------------------------------------------------
374 /** gets all the "extra" characters that can be used in unquoted
375 identifier names (those beyond a-z, A-Z, 0-9 and _).
379 if a database access error occurs.
381 string getExtraNameCharacters
() raises
(SQLException
);
382 //-------------------------------------------------------------------------
384 /** support the Database "ALTER TABLE" with add column?
388 if a database access error occurs.
390 boolean supportsAlterTableWithAddColumn
() raises
(SQLException
);
391 //-------------------------------------------------------------------------
393 /** support the Database "ALTER TABLE" with drop column?
397 if a database access error occurs.
399 boolean supportsAlterTableWithDropColumn
() raises
(SQLException
);
400 //-------------------------------------------------------------------------
402 /** support the Database column aliasing?
406 The SQL AS clause can be used to provide names for
407 computed columns or to provide alias names for columns as required.
412 if a database access error occurs.
414 boolean supportsColumnAliasing
() raises
(SQLException
);
415 //-------------------------------------------------------------------------
417 /** are concatenations between NULL and non-NULL values NULL?
421 if a database access error occurs.
423 boolean nullPlusNonNullIsNull
() raises
(SQLException
);
424 //-------------------------------------------------------------------------
427 , if the Database supports the CONVERT function between SQL types,
434 if a database access error occurs.
436 boolean supportsTypeConversion
() raises
(SQLException
);
437 //-------------------------------------------------------------------------
440 , if the Database supports the CONVERT between the given SQL types
447 if a database access error occurs.
449 boolean supportsConvert
([in]long fromType
, [in]long toType
)
450 raises
(SQLException
);
451 //-------------------------------------------------------------------------
453 /** Are table correlation names supported?
457 if a database access error occurs.
459 boolean supportsTableCorrelationNames
() raises
(SQLException
);
460 //-------------------------------------------------------------------------
462 /** If table correlation names are supported, are they restricted
463 to be different from the names of the tables?
467 if a database access error occurs.
469 boolean supportsDifferentTableCorrelationNames
()
470 raises
(SQLException
);
471 //-------------------------------------------------------------------------
473 /** Are expressions in "ORDER BY" lists supported?
477 if a database access error occurs.
479 boolean supportsExpressionsInOrderBy
() raises
(SQLException
);
480 //-------------------------------------------------------------------------
482 /** Can an "ORDER BY" clause use columns not in the SELECT statement?
486 if a database access error occurs.
488 boolean supportsOrderByUnrelated
() raises
(SQLException
);
489 //-------------------------------------------------------------------------
491 /** Is some form of "GROUP BY" clause supported?
495 if a database access error occurs.
497 boolean supportsGroupBy
() raises
(SQLException
);
498 //-------------------------------------------------------------------------
500 /** Can a "GROUP BY" clause use columns not in the SELECT?
504 if a database access error occurs.
506 boolean supportsGroupByUnrelated
() raises
(SQLException
);
507 //-------------------------------------------------------------------------
509 /** Can a "GROUP BY" clause add columns not in the SELECT
510 provided it specifies all the columns in the SELECT?
514 if a database access error occurs.
516 boolean supportsGroupByBeyondSelect
() raises
(SQLException
);
517 //-------------------------------------------------------------------------
519 /** Is the escape character in "LIKE" clauses supported?
523 if a database access error occurs.
525 boolean supportsLikeEscapeClause
() raises
(SQLException
);
526 //-------------------------------------------------------------------------
528 /** Are multiple XResultSets from a single execute supported?
532 if a database access error occurs.
534 boolean supportsMultipleResultSets
() raises
(SQLException
);
535 //-------------------------------------------------------------------------
537 /** Can we have multiple transactions open at once (on different
542 if a database access error occurs.
544 boolean supportsMultipleTransactions
() raises
(SQLException
);
545 //-------------------------------------------------------------------------
547 /** Can columns be defined as non-nullable?
551 if a database access error occurs.
553 boolean supportsNonNullableColumns
() raises
(SQLException
);
554 //-------------------------------------------------------------------------
556 /** <TRUE/>, if the database supports ODBC Minimum SQL grammar,
561 if a database access error occurs.
563 boolean supportsMinimumSQLGrammar
() raises
(SQLException
);
564 //-------------------------------------------------------------------------
566 /** <TRUE/>, if the database supports ODBC Core SQL grammar,
571 if a database access error occurs.
573 boolean supportsCoreSQLGrammar
() raises
(SQLException
);
574 //-------------------------------------------------------------------------
577 <TRUE/>, if the database supports ODBC Extended SQL grammar,
582 if a database access error occurs.
584 boolean supportsExtendedSQLGrammar
() raises
(SQLException
);
585 //-------------------------------------------------------------------------
588 <TRUE/>, if the database supports ANSI92 entry level SQL grammar,
591 if a database access error occurs.
593 boolean supportsANSI92EntryLevelSQL
() raises
(SQLException
);
594 //-------------------------------------------------------------------------
597 <TRUE/>, if the database supports ANSI92 intermediate SQL grammar,
600 if a database access error occurs.
602 boolean supportsANSI92IntermediateSQL
() raises
(SQLException
);
603 //-------------------------------------------------------------------------
606 <TRUE/>, if the database supports ANSI92 full SQL grammar,
609 if a database access error occurs.
611 boolean supportsANSI92FullSQL
() raises
(SQLException
);
612 //-------------------------------------------------------------------------
615 <TRUE/>, if the Database supports SQL Integrity Enhancement Facility,
618 if a database access error occurs.
620 boolean supportsIntegrityEnhancementFacility
() raises
(SQLException
);
621 //-------------------------------------------------------------------------
624 <TRUE/>, if some form of outer join is supported,
627 if a database access error occurs.
629 boolean supportsOuterJoins
() raises
(SQLException
);
630 //-------------------------------------------------------------------------
633 <TRUE/>, if full nested outer joins are supported,
636 if a database access error occurs.
638 boolean supportsFullOuterJoins
() raises
(SQLException
);
639 //-------------------------------------------------------------------------
642 <TRUE/>, if there is limited support for outer joins.
643 (This will be <TRUE/> if supportFullOuterJoins is <TRUE/>.)
644 <FALSE/> is returned otherwise.
646 if a database access error occurs.
648 boolean supportsLimitedOuterJoins
() raises
(SQLException
);
649 //-------------------------------------------------------------------------
651 /** return the database vendor's preferred term for "schema"
655 if a database access error occurs.
657 string getSchemaTerm
() raises
(SQLException
);
658 //-------------------------------------------------------------------------
660 /** return the database vendor's preferred term for "procedure"
664 if a database access error occurs.
666 string getProcedureTerm
() raises
(SQLException
);
667 //-------------------------------------------------------------------------
669 /** return the database vendor's preferred term for "catalog"
673 if a database access error occurs.
675 string getCatalogTerm
() raises
(SQLException
);
676 //-------------------------------------------------------------------------
678 /** Does a catalog appear at the start of a qualified table name?
679 (Otherwise it appears at the end)
683 if a database access error occurs.
685 boolean isCatalogAtStart
() raises
(SQLException
);
686 //-------------------------------------------------------------------------
688 /** return the separator between catalog and table name
692 if a database access error occurs.
694 string getCatalogSeparator
() raises
(SQLException
);
695 //-------------------------------------------------------------------------
697 /** Can a schema name be used in a data manipulation statement?
701 if a database access error occurs.
703 boolean supportsSchemasInDataManipulation
() raises
(SQLException
);
704 //-------------------------------------------------------------------------
706 /** Can a schema name be used in a procedure call statement?
710 if a database access error occurs.
712 boolean supportsSchemasInProcedureCalls
() raises
(SQLException
);
713 //-------------------------------------------------------------------------
715 /** Can a schema name be used in a table definition statement?
719 if a database access error occurs.
721 boolean supportsSchemasInTableDefinitions
() raises
(SQLException
);
722 //-------------------------------------------------------------------------
724 /** Can a schema name be used in an index definition statement?
728 if a database access error occurs.
730 boolean supportsSchemasInIndexDefinitions
() raises
(SQLException
);
731 //-------------------------------------------------------------------------
733 /** Can a schema name be used in a privilege definition statement?
737 if a database access error occurs.
739 boolean supportsSchemasInPrivilegeDefinitions
()
740 raises
(SQLException
);
741 //-------------------------------------------------------------------------
743 /** Can a catalog name be used in a data manipulation statement?
747 if a database access error occurs.
749 boolean supportsCatalogsInDataManipulation
() raises
(SQLException
);
750 //-------------------------------------------------------------------------
752 /** Can a catalog name be used in a procedure call statement?
756 if a database access error occurs.
758 boolean supportsCatalogsInProcedureCalls
() raises
(SQLException
);
759 //-------------------------------------------------------------------------
761 /** Can a catalog name be used in a table definition statement?
765 if a database access error occurs.
767 boolean supportsCatalogsInTableDefinitions
() raises
(SQLException
);
768 //-------------------------------------------------------------------------
770 /** Can a catalog name be used in an index definition statement?
774 if a database access error occurs.
776 boolean supportsCatalogsInIndexDefinitions
() raises
(SQLException
);
777 //-------------------------------------------------------------------------
779 /** Can a catalog name be used in a privilege definition statement?
783 if a database access error occurs.
785 boolean supportsCatalogsInPrivilegeDefinitions
()
786 raises
(SQLException
);
787 //-------------------------------------------------------------------------
789 /** Is positioned DELETE supported?
793 if a database access error occurs.
795 boolean supportsPositionedDelete
() raises
(SQLException
);
796 //-------------------------------------------------------------------------
798 /** Is positioned UPDATE supported?
802 if a database access error occurs.
804 boolean supportsPositionedUpdate
() raises
(SQLException
);
805 //-------------------------------------------------------------------------
807 /** Is SELECT for UPDATE supported?
811 if a database access error occurs.
813 boolean supportsSelectForUpdate
() raises
(SQLException
);
814 //-------------------------------------------------------------------------
816 /** Are stored procedure calls using the stored procedure escape
821 if a database access error occurs.
823 boolean supportsStoredProcedures
() raises
(SQLException
);
824 //-------------------------------------------------------------------------
826 /** Are subqueries in comparison expressions supported?
830 if a database access error occurs.
832 boolean supportsSubqueriesInComparisons
() raises
(SQLException
);
833 //-------------------------------------------------------------------------
835 /** Are subqueries in 'exists' expressions supported?
839 if a database access error occurs.
841 boolean supportsSubqueriesInExists
() raises
(SQLException
);
842 //-------------------------------------------------------------------------
844 /** Are subqueries in 'in' statements supported?
848 if a database access error occurs.
850 boolean supportsSubqueriesInIns
() raises
(SQLException
);
851 //-------------------------------------------------------------------------
853 /** Are subqueries in quantified expressions supported?
857 if a database access error occurs.
859 boolean supportsSubqueriesInQuantifieds
() raises
(SQLException
);
860 //-------------------------------------------------------------------------
862 /** Are correlated subqueries supported?
866 if a database access error occurs.
868 boolean supportsCorrelatedSubqueries
() raises
(SQLException
);
869 //-------------------------------------------------------------------------
871 /** Is SQL UNION supported?
875 if a database access error occurs.
877 boolean supportsUnion
() raises
(SQLException
);
878 //-------------------------------------------------------------------------
880 /** Is SQL UNION ALL supported?
884 if a database access error occurs.
886 boolean supportsUnionAll
() raises
(SQLException
);
887 //-------------------------------------------------------------------------
889 /** Can cursors remain open across commits?
893 if a database access error occurs.
895 boolean supportsOpenCursorsAcrossCommit
() raises
(SQLException
);
896 //-------------------------------------------------------------------------
898 /** Can cursors remain open across rollbacks?
902 if a database access error occurs.
904 boolean supportsOpenCursorsAcrossRollback
() raises
(SQLException
);
905 //-------------------------------------------------------------------------
907 /** Can statements remain open across commits?
911 if a database access error occurs.
913 boolean supportsOpenStatementsAcrossCommit
() raises
(SQLException
);
914 //-------------------------------------------------------------------------
916 /** Can statements remain open across rollbacks?
920 if a database access error occurs.
922 boolean supportsOpenStatementsAcrossRollback
()
923 raises
(SQLException
);
924 //-------------------------------------------------------------------------
926 /** return the maximal number of hex characters in an inline binary literal
930 if a database access error occurs.
932 long getMaxBinaryLiteralLength
() raises
(SQLException
);
933 //-------------------------------------------------------------------------
935 /** return the max length for a character literal
939 if a database access error occurs.
941 long getMaxCharLiteralLength
() raises
(SQLException
);
942 //-------------------------------------------------------------------------
944 /** return the limit on column name length
948 if a database access error occurs.
950 long getMaxColumnNameLength
() raises
(SQLException
);
951 //-------------------------------------------------------------------------
953 /** return the maximum number of columns in a "GROUP BY" clause
957 if a database access error occurs.
959 long getMaxColumnsInGroupBy
() raises
(SQLException
);
960 //-------------------------------------------------------------------------
962 /** return the maximum number of columns allowed in an index
966 if a database access error occurs.
968 long getMaxColumnsInIndex
() raises
(SQLException
);
969 //-------------------------------------------------------------------------
971 /** return the maximum number of columns in an "ORDER BY" clause
975 if a database access error occurs.
977 long getMaxColumnsInOrderBy
() raises
(SQLException
);
978 //-------------------------------------------------------------------------
980 /** return the maximum number of columns in a "SELECT" list
984 if a database access error occurs.
986 long getMaxColumnsInSelect
() raises
(SQLException
);
987 //-------------------------------------------------------------------------
989 /** return the maximum number of columns in a table
993 if a database access error occurs.
995 long getMaxColumnsInTable
() raises
(SQLException
);
996 //-------------------------------------------------------------------------
998 /** return the number of active connections at a time to this database.
1001 @throws SQLException
1002 if a database access error occurs.
1004 long getMaxConnections
() raises
(SQLException
);
1005 //-------------------------------------------------------------------------
1007 /** return the maximum cursor name length
1010 @throws SQLException
1011 if a database access error occurs.
1013 long getMaxCursorNameLength
() raises
(SQLException
);
1014 //-------------------------------------------------------------------------
1016 /** return the maximum length of an index (in bytes)
1019 @throws SQLException
1020 if a database access error occurs.
1022 long getMaxIndexLength
() raises
(SQLException
);
1023 //-------------------------------------------------------------------------
1025 /** return the maximum length allowed for a schema name
1028 @throws SQLException
1029 if a database access error occurs.
1031 long getMaxSchemaNameLength
() raises
(SQLException
);
1032 //-------------------------------------------------------------------------
1034 /** return the maximum length of a procedure name
1037 @throws SQLException
1038 if a database access error occurs.
1040 long getMaxProcedureNameLength
() raises
(SQLException
);
1041 //-------------------------------------------------------------------------
1043 /** return the maximum length of a catalog name
1046 @throws SQLException
1047 if a database access error occurs.
1049 long getMaxCatalogNameLength
() raises
(SQLException
);
1050 //-------------------------------------------------------------------------
1052 /** return the maximum length of a single row.
1055 @throws SQLException
1056 if a database access error occurs.
1058 long getMaxRowSize
() raises
(SQLException
);
1059 //-------------------------------------------------------------------------
1061 /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
1065 @throws SQLException
1066 if a database access error occurs.
1068 boolean doesMaxRowSizeIncludeBlobs
() raises
(SQLException
);
1069 //-------------------------------------------------------------------------
1071 /** return the maximum length of a SQL statement
1074 @throws SQLException
1075 if a database access error occurs.
1077 long getMaxStatementLength
() raises
(SQLException
);
1078 //-------------------------------------------------------------------------
1080 /** return the maximal number of open active statements at one time to this database
1083 @throws SQLException
1084 if a database access error occurs.
1086 long getMaxStatements
() raises
(SQLException
);
1087 //-------------------------------------------------------------------------
1089 /** return the maximum length of a table name
1092 @throws SQLException
1093 if a database access error occurs.
1095 long getMaxTableNameLength
() raises
(SQLException
);
1096 //-------------------------------------------------------------------------
1098 /** return the maximum number of tables in a SELECT statement
1101 @throws SQLException
1102 if a database access error occurs.
1104 long getMaxTablesInSelect
() raises
(SQLException
);
1105 //-------------------------------------------------------------------------
1107 /** return the maximum length of a user name
1110 @throws SQLException
1111 if a database access error occurs.
1113 long getMaxUserNameLength
() raises
(SQLException
);
1114 //-------------------------------------------------------------------------
1116 /** return the database default transaction isolation level.
1117 The values are defined in
1118 <type scope="com::sun::star::sdbc">TransactionIsolation</type>.
1121 @throws SQLException
1122 if a database access error occurs.
1123 @see com::sun::star::sdbc::XConnection
1125 long getDefaultTransactionIsolation
() raises
(SQLException
);
1126 //-------------------------------------------------------------------------
1128 /** support the Database transactions?
1129 If not, invoking the method
1130 <member scope="com::sun::star::sdbc">XConnection::commit()</member>
1132 isolation level is TransactionIsolation_NONE.
1135 @throws SQLException
1136 if a database access error occurs.
1138 boolean supportsTransactions
() raises
(SQLException
);
1139 //-------------------------------------------------------------------------
1141 /** Does this database support the given transaction isolation level?
1144 @throws SQLException
1145 if a database access error occurs.
1146 @see com::sun::star::sdbc::Connection
1148 boolean supportsTransactionIsolationLevel
([in]long level
)
1149 raises
(SQLException
);
1150 //-------------------------------------------------------------------------
1152 /** support the Database both data definition and data manipulation statements
1153 within a transaction?
1156 @throws SQLException
1157 if a database access error occurs.
1158 <!-- JRH: Unclear on the intent of these many support questions.
1159 If asking, it should state, "Does the Database support both ....?
1160 If declaring, it should state something like the following:
1162 metadata: supportsDataDefinitionAndDataManipulationTransactions
1164 "provides support for both data definition and data manipulation statements within a transaction."
1166 boolean supportsDataDefinitionAndDataManipulationTransactions
()
1167 raises
(SQLException
);
1168 //-------------------------------------------------------------------------
1170 /** are only data manipulation statements within a transaction
1174 @throws SQLException
1175 if a database access error occurs.
1177 boolean supportsDataManipulationTransactionsOnly
()
1178 raises
(SQLException
);
1179 //-------------------------------------------------------------------------
1181 /** does a data definition statement within a transaction force the
1182 transaction to commit?
1185 @throws SQLException
1186 if a database access error occurs.
1188 boolean dataDefinitionCausesTransactionCommit
()
1189 raises
(SQLException
);
1190 //-------------------------------------------------------------------------
1192 /** is a data definition statement within a transaction ignored?
1195 @throws SQLException
1196 if a database access error occurs.
1198 boolean dataDefinitionIgnoredInTransactions
()
1199 raises
(SQLException
);
1200 //-------------------------------------------------------------------------
1202 /** Gets a description of the stored procedures available in a
1207 Only procedure descriptions matching the schema and
1208 procedure name criteria are returned. They are ordered by
1209 PROCEDURE_SCHEM, and PROCEDURE_NAME.
1212 Each procedure description has the following columns:
1216 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1219 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1222 <b>PROCEDURE_NAME</b> string => procedure name
1224 <li> reserved for future use
1226 <li> reserved for future use
1228 <li> reserved for future use
1231 <b>REMARKS</b> string => explanatory comment on the procedure
1234 <b>PROCEDURE_TYPE</b> short => kind of procedure:
1236 <li> UNKNOWN - May return a result
1238 <li> NO - Does not return a result
1240 <li> RETURN - Returns a result
1246 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1247 @param schemaPattern
1248 a schema name pattern; "" retrieves those without a schema
1249 @param procedureNamePattern
1250 a procedure name pattern
1252 each row is a procedure description
1253 @throws SQLException
1254 if a database access error occurs.
1256 XResultSet getProcedures
([in]any catalog
, [in]string schemaPattern
,
1257 [in]string procedureNamePattern
) raises
(SQLException
);
1258 //-------------------------------------------------------------------------
1260 /** gets a description of a catalog's stored procedure parameters
1265 Only descriptions matching the schema, procedure and
1266 parameter name criteria are returned. They are ordered by
1267 PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value,
1268 if any, is first. Next are the parameter descriptions in call
1269 order. The column descriptions follow in column number order.
1271 <p>Each row in the XResultSet is a parameter description or
1272 column description with the following fields:
1276 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1279 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1282 <b>PROCEDURE_NAME</b> string => procedure name
1285 <b>COLUMN_NAME</b> string => column/parameter name
1288 <b>COLUMN_TYPE</b> Short => kind of column/parameter:
1290 <li> UNKNOWN - nobody knows
1292 <li> IN - IN parameter
1294 <li> INOUT - INOUT parameter
1296 <li> OUT - OUT parameter
1298 <li> RETURN - procedure return value
1300 <li> RESULT - result column in XResultSet
1305 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1308 <b>TYPE_NAME</b> string => SQL type name, for a UDT type the
1309 type name is fully qualified
1312 <b>PRECISION</b> long => precision
1315 <b>LENGTH</b> long => length in bytes of data
1318 <b>SCALE</b> short => scale
1321 <b>RADIX</b> short => radix
1324 <b>NULLABLE</b> short => can it contain NULL?
1326 <li> NO_NULLS - does not allow NULL values
1328 <li> NULLABLE - allows NULL values
1330 <li> NULLABLE_UNKNOWN - nullability unknown
1335 <b>REMARKS</b> string => comment describing parameter/column
1339 <b>Note:</b> Some databases may not return the column
1340 descriptions for a procedure. Additional columns beyond
1341 REMARKS can be defined by the database.
1344 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1345 @param schemaPattern
1346 a schema name pattern; "" retrieves those without a schema
1347 @param procedureNamePattern
1348 a procedure name pattern
1349 @param columnNamePattern
1350 a column name pattern
1352 each row describes a stored procedure parameter or column
1353 @throws SQLException
1354 if a database access error occurs.
1356 XResultSet getProcedureColumns
([in]any catalog
, [in]string schemaPattern
,
1357 [in]string procedureNamePattern
,
1358 [in]string columnNamePattern
)
1359 raises
(SQLException
);
1360 //-------------------------------------------------------------------------
1362 /** gets a description of tables available in a catalog.
1365 <p>Only table descriptions matching the catalog, schema, table
1366 name, and type criteria are returned. They are ordered by
1367 TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME.
1369 <p>Each table description has the following columns:
1373 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1376 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1379 <b>TABLE_NAME</b> string => table name
1382 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1383 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1384 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1387 <b>REMARKS</b> string => explanatory comment on the table
1391 <b>Note:</b> Some databases may not return information for
1395 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1396 @param schemaPattern
1397 a schema name pattern; "" retrieves those without a schema
1398 @param tableNamePattern
1399 a table name pattern
1401 a list of table types to include
1403 each row is a table description
1404 @throws SQLException
1405 if a database access error occurs.
1407 XResultSet getTables
([in]any catalog
, [in]string schemaPattern
,
1408 [in]string tableNamePattern
, [in]sequence
<string> types
)
1409 raises
(SQLException
);
1410 //-------------------------------------------------------------------------
1412 /** Gets the schema names available in this database. The results
1413 are ordered by schema name.
1416 <p>The schema column is:
1420 <b>TABLE_SCHEM</b> string => schema name
1424 each row has a single String column that is a schema name
1425 @throws SQLException
1426 if a database access error occurs.
1428 XResultSet getSchemas
() raises
(SQLException
);
1429 //-------------------------------------------------------------------------
1431 /** gets the catalog names available in this database. The results
1432 are ordered by catalog name.
1435 <p>The catalog column is:
1439 <b>TABLE_CAT</b> string => catalog name
1443 each row has a single String column that is a catalog name
1444 @throws SQLException
1445 if a database access error occurs.
1447 XResultSet getCatalogs
() raises
(SQLException
);
1448 //-------------------------------------------------------------------------
1450 /** gets the table types available in this database. The results
1451 are ordered by table type.
1454 <p>The table type is:
1458 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1459 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1460 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1464 each row has a single String column that is a table type
1465 @throws SQLException
1466 if a database access error occurs.
1468 XResultSet getTableTypes
() raises
(SQLException
);
1469 //-------------------------------------------------------------------------
1471 /** gets a description of table columns available in
1472 the specified catalog.
1475 <p>Only column descriptions matching the catalog, schema, table
1476 and column name criteria are returned. They are ordered by
1477 TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION.
1479 <p>Each column description has the following columns:
1483 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1486 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1489 <b>TABLE_NAME</b> string => table name
1492 <b>COLUMN_NAME</b> string => column name
1495 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1498 <b>TYPE_NAME</b> string => Data source dependent type name,
1499 for a UDT the type name is fully qualified
1502 <b>COLUMN_SIZE</b> long => column size. For char or date
1503 types this is the maximum number of characters, for numeric or
1504 decimal types this is precision.
1507 <b>BUFFER_LENGTH</b> is not used.
1510 <b>DECIMAL_DIGITS</b> long => the number of fractional digits
1513 <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2)
1516 <b>NULLABLE</b> long => is NULL allowed?
1518 <li> NO_NULLS - might not allow NULL values
1520 <li> NULABLE - definitely allows NULL values
1522 <li> NULLABLE_UNKNOWN - nullability unknown
1527 <b>REMARKS</b> string => comment describing column (may be <NULL/>)
1530 <b>COLUMN_DEF</b> string => default value (may be <NULL/>)
1533 <b>SQL_DATA_TYPE</b> long => unused
1536 <b>SQL_DATETIME_SUB</b> long => unused
1539 <b>CHAR_OCTET_LENGTH</b> long => for char types the
1540 maximum number of bytes in the column
1543 <b>ORDINAL_POSITION</b> int => index of column in table
1547 <b>IS_NULLABLE</b> string => "NO" means column definitely
1548 does not allow NULL values; "YES" means the column might
1549 allow NULL values. An empty string means nobody knows.
1553 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1554 @param schemaPattern
1555 a schema name pattern; "" retrieves those without a schema
1556 @param tableNamePattern
1557 a table name pattern
1558 @param columnNamePattern
1559 a column name pattern
1561 each row is a column description
1562 @throws SQLException
1563 if a database access error occurs.
1565 XResultSet getColumns
([in]any catalog
, [in]string schemaPattern
,
1566 [in]string tableNamePattern
, [in]string columnNamePattern
)
1567 raises
(SQLException
);
1568 //-------------------------------------------------------------------------
1570 /** gets a description of the access rights for a table's columns.
1574 Only privileges matching the column name criteria are
1575 returned. They are ordered by COLUMN_NAME and PRIVILEGE.
1577 <p>Each privilige description has the following columns:
1581 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1584 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1587 <b>TABLE_NAME</b> string => table name
1590 <b>COLUMN_NAME</b> string => column name
1593 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1596 <b>GRANTEE</b> string => grantee of access
1599 <b>PRIVILEGE</b> string => name of access (SELECT,
1600 INSERT, UPDATE, REFERENCES, ...)
1603 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1604 to grant to others; "NO" if not; <NULL/> if unknown
1608 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1610 a schema name ; "" retrieves those without a schema
1613 @param columnNamePattern
1614 a column name pattern
1616 each row is a column privilege description
1617 @throws SQLException
1618 if a database access error occurs.
1620 XResultSet getColumnPrivileges
([in]any catalog
, [in]string schema
,
1621 [in]string table
, [in]string columnNamePattern
) raises
(SQLException
);
1622 //-------------------------------------------------------------------------
1624 /** gets a description of the access rights for each table available
1625 in a catalog. Note that a table privilege applies to one or
1626 more columns in the table. It would be wrong to assume that
1627 this priviledge applies to all columns (this may be <TRUE/> for
1628 some systems but is not <TRUE/> for all.)
1631 <p>Only privileges matching the schema and table name
1632 criteria are returned. They are ordered by TABLE_SCHEM,
1633 TABLE_NAME, and PRIVILEGE.
1635 <p>Each privilige description has the following columns:
1639 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1642 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1645 <b>TABLE_NAME</b> string => table name
1648 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1651 <b>GRANTEE</b> string => grantee of access
1654 <b>PRIVILEGE</b> string => name of access (SELECT,
1655 INSERT, UPDATE, REFERENCES, ...)
1658 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1659 to grant to others; "NO" if not; <NULL/> if unknown
1663 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1664 @param schemaPattern
1665 a schema name pattern; "" retrieves those without a schema
1666 @param tableNamePattern
1667 a table name pattern
1669 each row is a table privilege description
1670 @throws SQLException
1671 if a database access error occurs.
1673 XResultSet getTablePrivileges
([in]any catalog
, [in]string schemaPattern
,
1674 [in]string tableNamePattern
) raises
(SQLException
);
1675 //-------------------------------------------------------------------------
1677 /** gets a description of a table's optimal set of columns that
1678 uniquely identifies a row. They are ordered by SCOPE.
1681 <p>Each column description has the following columns:
1685 <b>SCOPE</b> short => actual scope of result
1687 <li> TEMPORARY - very temporary, while using row
1689 <li> TRANSACTION - valid for remainder of current transaction
1691 <li> SESSION - valid for remainder of current session
1696 <b>COLUMN_NAME</b> string => column name
1699 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1702 <b>TYPE_NAME</b> string => Data source dependent type name,
1703 for a UDT the type name is fully qualified
1706 <b>COLUMN_SIZE</b> long => precision
1709 <b>BUFFER_LENGTH</b> long => not used
1712 <b>DECIMAL_DIGITS</b> short => scale
1715 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1716 like an Oracle ROWID
1718 <li> UNKNOWN - may or may not be pseudo column
1720 <li> NOT_PSEUDO - is NOT a pseudo column
1722 <li> PSEUDO - is a pseudo column
1728 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1730 a schema name; "" retrieves those without a schema
1734 the scope of interest; use same values as SCOPE
1736 include columns that are nullable?
1738 each row is a column description
1739 @throws SQLException
1740 if a database access error occurs.
1742 XResultSet getBestRowIdentifier
([in]any catalog
, [in]string schema
,
1743 [in]string table
, [in]long scope
, [in] boolean nullable
)
1744 raises
(SQLException
);
1745 //-------------------------------------------------------------------------
1747 /** gets a description of a table's columns that are automatically
1748 updated when any value in a row is updated. They are
1752 <p>Each column description has the following columns:
1756 <b>SCOPE</b> short => is not used
1759 <b>COLUMN_NAME</b> string => column name
1762 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1765 <b>TYPE_NAME</b> string => Data source dependent type name
1768 <b>COLUMN_SIZE</b> long => precision
1771 <b>BUFFER_LENGTH</b> long => length of column value in bytes
1774 <b>DECIMAL_DIGITS</b> short => scale
1777 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1778 like an Oracle ROWID
1780 <li> UNKNOWN - may or may not be pseudo column
1782 <li> NOT_PSEUDO - is NOT a pseudo column
1784 <li> PSEUDO - is a pseudo column
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 column description
1797 @throws SQLException
1798 if a database access error occurs.
1800 XResultSet getVersionColumns
([in]any catalog
, [in]string schema
,
1801 [in]string table
) raises
(SQLException
);
1802 //-------------------------------------------------------------------------
1804 /** gets a description of a table's primary key columns. They
1805 are ordered by COLUMN_NAME.
1808 <p>Each primary key column description has the following columns:
1812 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1815 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1818 <b>TABLE_NAME</b> string => table name
1821 <b>COLUMN_NAME</b> string => column name
1824 <b>KEY_SEQ</b> short => sequence number within primary key
1827 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1831 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1833 a schema name; "" retrieves those without a schema
1837 each row is a primary key column description
1838 @throws SQLException
1839 if a database access error occurs.
1841 XResultSet getPrimaryKeys
([in]any catalog
, [in]string schema
,
1842 [in]string table
) raises
(SQLException
);
1843 //-------------------------------------------------------------------------
1845 /** gets a description of the primary key columns that are
1846 referenced by a table's foreign key columns (the primary keys
1847 imported by a table). They are ordered by PKTABLE_CAT,
1848 PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
1851 <p>Each primary key column description has the following columns:
1855 <b>PKTABLE_CAT</b> string => primary key table catalog
1856 being imported (may be <NULL/>)
1859 <b>PKTABLE_SCHEM</b> string => primary key table schema
1860 being imported (may be <NULL/>)
1863 <b>PKTABLE_NAME</b> string => primary key table name
1867 <b>PKCOLUMN_NAME</b> string => primary key column name
1871 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1874 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1877 <b>FKTABLE_NAME</b> string => foreign key table name
1880 <b>FKCOLUMN_NAME</b> string => foreign key column name
1883 <b>KEY_SEQ</b> short => sequence number within foreign key
1886 <b>UPDATE_RULE</b> short => What happens to
1887 foreign key when primary is updated:
1889 <li> importedNoAction - do not allow update of primary
1890 key if it has been imported
1892 <li> importedKeyCascade - change imported key to agree
1893 with primary key update
1895 <li> importedKeySetNull - change imported key to NULL if
1896 its primary key has been updated
1898 <li> importedKeySetDefault - change imported key to default values
1899 if its primary key has been updated
1901 <li> importedKeyRestrict - same as importedKeyNoAction
1902 (for ODBC 2.x compatibility)
1907 <b>DELETE_RULE</b> short => What happens to
1908 the foreign key when primary is deleted.
1910 <li> importedKeyNoAction - do not allow delete of primary
1911 key if it has been imported
1913 <li> importedKeyCascade - delete rows that import a deleted key
1915 <li> importedKeySetNull - change imported key to NULL if
1916 its primary key has been deleted
1918 <li> importedKeyRestrict - same as importedKeyNoAction
1919 (for ODBC 2.x compatibility)
1921 <li> importedKeySetDefault - change imported key to default if
1922 its primary key has been deleted
1927 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
1930 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1933 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
1934 constraints be deferred until commit
1936 <li> importedKeyInitiallyDeferred - see SQL92 for definition
1938 <li> importedKeyInitiallyImmediate - see SQL92 for definition
1940 <li> importedKeyNotDeferrable - see SQL92 for definition
1946 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1948 a schema name; "" retrieves those without a schema
1952 each row is a primary key column description
1953 @throws SQLException
1954 if a database access error occurs.
1956 XResultSet getImportedKeys
([in]any catalog
, [in]string schema
,
1957 [in]string table
) raises
(SQLException
);
1958 //-------------------------------------------------------------------------
1960 /** gets a description of the foreign key columns that reference a
1961 table's primary key columns (the foreign keys exported by a
1962 table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
1963 FKTABLE_NAME, and KEY_SEQ.
1966 <p>Each foreign key column description has the following columns:
1970 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
1973 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
1976 <b>PKTABLE_NAME</b> string => primary key table name
1979 <b>PKCOLUMN_NAME</b> string => primary key column name
1982 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1983 being exported (may be <NULL/>)
1986 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1987 being exported (may be <NULL/>)
1990 <b>FKTABLE_NAME</b> string => foreign key table name
1994 <b>FKCOLUMN_NAME</b> string => foreign key column name
1998 <b>KEY_SEQ</b> short => sequence number within foreign key
2001 <b>UPDATE_RULE</b> short => What happens to
2002 foreign key when primary is updated:
2004 <li> NO_ACTION - do not allow update of primary
2005 key if it has been imported
2007 <li> CASCADE - change imported key to agree
2008 with primary key update
2010 <li> SET_NULL - change imported key to NULL if
2011 its primary key has been updated
2013 <li> SET_DEFAULT - change imported key to default values
2014 if its primary key has been updated
2016 <li> RESTRICT - same as importedKeyNoAction
2017 (for ODBC 2.x compatibility)
2022 <b>DELETE_RULE</b> short => What happens to
2023 the foreign key when primary is deleted.
2025 <li> NO_ACTION - do not allow delete of primary
2026 key if it has been imported
2028 <li> CASCADE - delete rows that import a deleted key
2030 <li> SET_NULL - change imported key to NULL if
2031 its primary key has been deleted
2033 <li> RESTRICT - same as importedKeyNoAction
2034 (for ODBC 2.x compatibility)
2036 <li> SET_DEFAULT - change imported key to default if
2037 its primary key has been deleted
2042 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2045 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2048 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2049 constraints be deferred until commit
2051 <li> INITIALLY_DEFERRED - see SQL92 for definition
2053 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2055 <li> NONE - see SQL92 for definition
2061 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2063 a schema name; "" retrieves those without a schema
2067 each row is a foreign key column description
2068 @throws SQLException
2069 if a database access error occurs.
2071 XResultSet getExportedKeys
([in]any catalog
, [in]string schema
,
2072 [in]string table
) raises
(SQLException
);
2073 //-------------------------------------------------------------------------
2075 /** gets a description of the foreign key columns in the foreign key
2076 table that reference the primary key columns of the primary key
2077 table (describe how one table imports another's key.) This
2078 should normally return a single foreign key/primary key pair
2079 (most tables only import a foreign key from a table once.). They
2080 are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and
2084 <p>Each foreign key column description has the following columns:
2088 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
2091 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
2094 <b>PKTABLE_NAME</b> string => primary key table name
2097 <b>PKCOLUMN_NAME</b> string => primary key column name
2100 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
2101 being exported (may be <NULL/>)
2104 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
2105 being exported (may be <NULL/>)
2108 <b>FKTABLE_NAME</b> string => foreign key table name
2112 <b>FKCOLUMN_NAME</b> string => foreign key column name
2116 <b>KEY_SEQ</b> short => sequence number within foreign key
2119 <b>UPDATE_RULE</b> short => What happens to
2120 foreign key when primary is updated:
2122 <li> NO_ACTION - do not allow update of primary
2123 key if it has been imported
2125 <li> CASCADE - change imported key to agree
2126 with primary key update
2128 <li> SET_NULL - change imported key to NULL if
2129 its primary key has been updated
2131 <li> SET_DEFAULT - change imported key to default values
2132 if its primary key has been updated
2134 <li> RESTRICT - same as importedKeyNoAction
2135 (for ODBC 2.x compatibility)
2140 <b>DELETE_RULE</b> short => What happens to
2141 the foreign key when primary is deleted.
2143 <li> NO_ACTION - do not allow delete of primary
2144 key if it has been imported
2146 <li> CASCADE - delete rows that import a deleted key
2148 <li> SET_NULL - change imported key to NULL if
2149 its primary key has been deleted
2151 <li> RESTRICT - same as importedKeyNoAction
2152 (for ODBC 2.x compatibility)
2154 <li> SET_DEFAULT - change imported key to default if
2155 its primary key has been deleted
2160 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2163 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2166 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2167 constraints be deferred until commit
2169 <li> INITIALLY_DEFERRED - see SQL92 for definition
2171 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2173 <li> NONE - see SQL92 for definition
2178 @param primaryCatalog
2179 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2180 @param primarySchema
2181 a schema name; "" retrieves those without a schema
2183 the table name that exports the key
2184 @param foreignCatalog
2185 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2186 @param foreignSchema
2187 a schema name; "" retrieves those without a schema
2189 the table name that imports the key
2191 each row is a foreign key column description
2192 @throws SQLException
2193 if a database access error occurs.
2195 XResultSet getCrossReference
(
2196 [in]any primaryCatalog
, [in]string primarySchema
,
2197 [in]string primaryTable
,
2198 [in]any foreignCatalog
, [in]string foreignSchema
,
2199 [in]string foreignTable
) raises
(SQLException
);
2200 //-------------------------------------------------------------------------
2202 /** gets a description of all the standard SQL types supported by
2203 this database. They are ordered by DATA_TYPE and then by how
2204 closely the data type maps to the corresponding SDBC SQL type.
2208 <p>Each type description has the following columns:
2212 <b>TYPE_NAME</b> string => Type name
2215 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
2218 <b>PRECISION</b> long => maximum precision
2221 <b>LITERAL_PREFIX</b> string => prefix used to quote a literal
2225 <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal
2229 <b>CREATE_PARAMS</b> string => parameters used in creating
2230 the type (may be <NULL/>)
2233 <b>NULLABLE</b> short => can you use NULL for this type?
2235 <li> NO_NULLS - does not allow NULL values
2237 <li> NULLABLE - allows NULL values
2239 <li> NULLABLE_UNKNOWN - nullability unknown
2244 <b>CASE_SENSITIVE</b> boolean=> is it case sensitive?
2247 <b>SEARCHABLE</b> short => can you use "WHERE" based on this type:
2249 <li> NONE - No support
2251 <li> CHAR - Only supported with WHERE .. LIKE
2253 <li> BASIC - Supported except for WHERE .. LIKE
2255 <li> FULL - Supported for all WHERE ..
2260 <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned?
2263 <b>FIXED_PREC_SCALE</b> boolean => can it be a money value?
2266 <b>AUTO_INCREMENT</b> boolean => can it be used for an
2267 auto-increment value?
2270 <b>LOCAL_TYPE_NAME</b> string => localized version of type name
2274 <b>MINIMUM_SCALE</b> short => minimum scale supported
2277 <b>MAXIMUM_SCALE</b> short => maximum scale supported
2280 <b>SQL_DATA_TYPE</b> long => unused
2283 <b>SQL_DATETIME_SUB</b> long => unused
2286 <b>NUM_PREC_RADIX</b> long => usually 2 or 10
2290 each row is a SQL type description
2291 @throws SQLException
2292 if a database access error occurs.
2294 XResultSet getTypeInfo
() raises
(SQLException
);
2295 //-------------------------------------------------------------------------
2297 /** gets a description of a table's indices and statistics. They are
2298 ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
2301 <p>Each index column description has the following columns:
2305 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
2308 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
2311 <b>TABLE_NAME</b> string => table name
2314 <b>NON_UNIQUE</b> boolean => Can index values be non-unique?
2315 <FALSE/> when TYPE is tableIndexStatistic
2318 <b>INDEX_QUALIFIER</b> string => index catalog (may be <NULL/>);
2319 <NULL/> when TYPE is tableIndexStatistic
2322 <b>INDEX_NAME</b> string => index name; <NULL/> when TYPE is
2326 <b>TYPE</b> short => index type:
2328 <li> 0 - this identifies table statistics that are
2329 returned in conjuction with a table's index descriptions
2331 <li> CLUSTERED - this is a clustered index
2333 <li> HASHED - this is a hashed index
2335 <li> OTHER - this is some other style of index
2340 <b>ORDINAL_POSITION</b> short => column sequence number
2341 within index; zero when TYPE is tableIndexStatistic
2344 <b>COLUMN_NAME</b> string => column name; <NULL/> when TYPE is
2348 <b>ASC_OR_DESC</b> string => column sort sequence, "A" => ascending,
2349 "D" => descending, may be <NULL/> if sort sequence is not supported;
2350 <NULL/> when TYPE is tableIndexStatistic
2353 <b>CARDINALITY</b> long => When TYPE is tableIndexStatistic, then
2354 this is the number of rows in the table; otherwise, it is the
2355 number of unique values in the index.
2358 <b>PAGES</b> long => When TYPE is tableIndexStatisic then
2359 this is the number of pages used for the table, otherwise it
2360 is the number of pages used for the current index.
2363 <b>FILTER_CONDITION</b> string => Filter condition, if any.
2368 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2370 a schema name; "" retrieves those without a schema
2372 the table name that exports the key
2374 when <TRUE/>, return only indices for unique values; when <FALSE/>, return indices regardless of whether unique or not
2376 when <TRUE/>, result is allowed to reflect approximate or out of data values; when <FALSE/>, results are requested to be accurate
2378 each row is an index column description
2379 @throws SQLException
2380 if a database access error occurs.
2382 XResultSet getIndexInfo
([in]any catalog
, [in]string schema
, [in]string table
,
2383 [in]boolean unique, [in]boolean approximate
)
2384 raises
(SQLException
);
2385 //-------------------------------------------------------------------------
2387 /** Does the database support the given result set type?
2390 <type scop="com::sun::star::sdbc">ResultSetType</type>
2393 @throws SQLException
2394 if a database access error occurs.
2396 boolean supportsResultSetType
([in]long setType
) raises
(SQLException
);
2397 //-------------------------------------------------------------------------
2399 /** Does the database support the concurrency type in combination
2400 with the given result set type?
2403 <type scop="com::sun::star::sdbc">ResultSetType</type>
2406 <type scop="com::sun::star::sdbc">ResultSetConcurrency</type>
2409 @throws SQLException
2410 if a database access error occurs.
2412 boolean supportsResultSetConcurrency
([in]long setType
,
2413 [in]long concurrency
)
2414 raises
(SQLException
);
2415 //-------------------------------------------------------------------------
2417 /** indicates whether a result set's own updates are visible.
2420 <type scop="com::sun::star::sdbc">ResultSetType</type>
2423 @throws SQLException
2424 if a database access error occurs.
2426 boolean ownUpdatesAreVisible
([in]long setType
) raises
(SQLException
);
2427 //-------------------------------------------------------------------------
2429 /** indicates whether a result set's own deletes are visible.
2432 <type scop="com::sun::star::sdbc">ResultSetType</type>
2435 @throws SQLException
2436 if a database access error occurs.
2438 boolean ownDeletesAreVisible
([in]long setType
) raises
(SQLException
);
2439 //-------------------------------------------------------------------------
2441 /** indicates whether a result set's own inserts are visible.
2444 <type scop="com::sun::star::sdbc">ResultSetType</type>
2447 @throws SQLException
2448 if a database access error occurs.
2450 boolean ownInsertsAreVisible
([in]long setType
) raises
(SQLException
);
2451 //-------------------------------------------------------------------------
2453 /** indicates whether updates made by others are visible.
2456 <type scop="com::sun::star::sdbc">ResultSetType</type>
2459 @throws SQLException
2460 if a database access error occurs.
2462 boolean othersUpdatesAreVisible
([in]long setType
) raises
(SQLException
);
2463 //-------------------------------------------------------------------------
2465 /** indicates whether deletes made by others are visible.
2468 <type scop="com::sun::star::sdbc">ResultSetType</type>
2471 @throws SQLException
2472 if a database access error occurs.
2474 boolean othersDeletesAreVisible
([in]long setType
) raises
(SQLException
);
2475 //-------------------------------------------------------------------------
2477 /** indicates whether inserts made by others are visible.
2480 <type scop="com::sun::star::sdbc">ResultSetType</type>
2483 @throws SQLException
2484 if a database access error occurs.
2486 boolean othersInsertsAreVisible
([in]long setType
) raises
(SQLException
);
2487 //-------------------------------------------------------------------------
2489 /** indicates whether or not a visible row update can be detected by
2491 <code>XResultSet.rowUpdated</code>.
2494 <type scop="com::sun::star::sdbc">ResultSetType</type>
2497 @throws SQLException
2498 if a database access error occurs.
2500 boolean updatesAreDetected
([in]long setType
) raises
(SQLException
);
2501 //-------------------------------------------------------------------------
2503 /** indicates whether or not a visible row delete can be detected by
2505 <member scope="com::sun::star::sdbc">XResultSet::rowDeleted()</member>
2506 . If deletesAreDetected()
2507 returns <FALSE/>, then deleted rows are removed from the result set.
2510 <type scop="com::sun::star::sdbc">ResultSetType</type>
2513 @throws SQLException
2514 if a database access error occurs.
2516 boolean deletesAreDetected
([in]long setType
) raises
(SQLException
);
2517 //-------------------------------------------------------------------------
2519 /** indicates whether or not a visible row insert can be detected
2521 <member scope="com::sun::star::sdbc">XResultSet::rowInserted().</member>
2524 <type scop="com::sun::star::sdbc">ResultSetType</type>
2527 @throws SQLException
2528 if a database access error occurs.
2530 boolean insertsAreDetected
([in]long setType
) raises
(SQLException
);
2531 //-------------------------------------------------------------------------
2533 /** indicates whether the driver supports batch updates.
2536 @throws SQLException
2537 if a database access error occurs.
2539 boolean supportsBatchUpdates
() raises
(SQLException
);
2540 //-------------------------------------------------------------------------
2542 /** Gets a description of the user-defined types defined in a particular
2543 schema. Schema-specific UDTs may have type OBJECT, STRUCT,
2547 <p>Only types matching the catalog, schema, type name, and type
2548 criteria are returned. They are ordered by DATA_TYPE, TYPE_SCHEM,
2549 and TYPE_NAME. The type name parameter may be a fully-qualified
2550 name. In this case, the catalog and schemaPattern parameters are
2553 <p>Each type description has the following columns:
2557 <b>TYPE_CAT</b> string => the type's catalog (may be <NULL/>)
2560 <b>TYPE_SCHEM</b> string => type's schema (may be <NULL/>)
2563 <b>TYPE_NAME</b> string => type name
2566 <b>CLASS_NAME</b> string => Java class name or service name
2569 <b>DATA_TYPE</b> string => type value.
2570 One of OBJECT, STRUCT, or DISTINCT
2573 <b>REMARKS</b> string => explanatory comment on the type
2577 <b>Note:</b> If the driver does not support UDTs, an empty
2578 result set is returned.
2581 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2582 @param schemaPattern
2583 a schema name pattern; "" retrieves those without a schema
2584 @param typeNamePattern
2585 a type name pattern; may be a fully-qualified name
2587 a list of user-named types to include (OBJECT, STRUCT, or DISTINCT)
2589 each row is a type description
2590 @throws SQLException
2591 if a database access error occurs.
2593 XResultSet getUDTs
([in]any catalog
, [in]string schemaPattern
,
2594 [in]string typeNamePattern
, [in]sequence
<long> types
)
2595 raises
(SQLException
);
2596 //-------------------------------------------------------------------------
2598 /** retrieves the connection that produced this metadata object.
2600 the Connection object
2601 @throws SQLException
2602 if a database access error occurs.
2604 XConnection getConnection
() raises
(SQLException
);
2607 //=============================================================================
2611 /*===========================================================================
2612 ===========================================================================*/