merged tag ooo/OOO330_m14
[LibreOffice.git] / offapi / com / sun / star / sdbc / XDatabaseMetaData.idl
blob085b2ed966e4790f0eef4bce28fcb66f73cf6bd5
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>
32 #endif
34 #ifndef __com_sun_star_sdbc_SQLException_idl__
35 #include <com/sun/star/sdbc/SQLException.idl>
36 #endif
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
48 the form of
49 <type scope="com::sun::star::sdbc">XResultSet</type>
50 objects.
51 You can use the normal <type scope="com::sun::star::sdbc">XResultSet</type>
52 methods such as
53 <member scope="com::sun::star::sdbc">XResultSet::getString()</member>
54 and
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.
63 </p>
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.
70 </p>
71 <p>
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
83 current user?
85 @return
86 <TRUE/>
87 if the user is allowed to call all procedures returned by getProcedures
88 otherwise
89 <FALSE/>
91 @throws SQLException
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
98 current user?
99 @returns
100 <TRUE/> if so
101 @throws SQLException
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.
118 @returns
119 <TRUE/> if so
120 @throws SQLException
121 if a database access error occurs.
123 boolean isReadOnly() raises (SQLException);
124 //-------------------------------------------------------------------------
126 /** Are NULL values sorted high?
127 @returns
128 <TRUE/> if so
129 @throws SQLException
130 if a database access error occurs.
132 boolean nullsAreSortedHigh() raises (SQLException);
133 //-------------------------------------------------------------------------
135 /** Are NULL values sorted low?
136 @returns
137 <TRUE/> if so
138 @throws SQLException
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?
145 @returns
146 <TRUE/> if so
147 @throws SQLException
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?
154 @returns
155 <TRUE/> if so
156 @throws SQLException
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.
193 @returns
194 <TRUE/> if so
195 @throws SQLException
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.
202 @returns
203 <TRUE/> if so
204 @throws SQLException
205 if a database access error occurs.
207 boolean usesLocalFilePerTable() raises (SQLException);
208 //-------------------------------------------------------------------------
210 /** use the database 'mixed case unquoted SQL identifiers' case sensitive.
211 @returns
212 <TRUE/> if so
213 @throws SQLException
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?
221 @returns
222 <TRUE/> if so
223 @throws SQLException
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?
231 @returns
232 <TRUE/> if so
233 @throws SQLException
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?
241 @returns
242 <TRUE/> if so
243 @throws SQLException
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?
251 @returns
252 <TRUE/> if so
253 @throws SQLException
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?
261 @returns
262 <TRUE/> if so
263 @throws SQLException
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?
271 @returns
272 <TRUE/> if so
273 @throws SQLException
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?
281 @returns
282 <TRUE/> if so
283 @throws SQLException
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.
291 @returns
292 <TRUE/> if so
293 @throws SQLException
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.
301 @returns
302 <TRUE/> if so
303 @throws SQLException
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
311 clause.
312 @returns
313 <TRUE/> if so
314 @throws SQLException
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
322 clause.
323 @returns
324 <TRUE/> if so
325 @throws SQLException
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
333 clause.
334 @returns
335 <TRUE/> if so
336 @throws SQLException
337 if a database access error occurs.
339 string getSystemFunctions() raises (SQLException);
340 //-------------------------------------------------------------------------
342 /** gets a comma-separated list of time and date functions.
343 @returns
344 <TRUE/> if so
345 @throws SQLException
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.
358 </p>
360 The '%' character represents any sequence of zero or
361 more characters.
362 </p>
363 @returns
364 <TRUE/> if so
365 @throws SQLException
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 _).
373 @returns
374 <TRUE/> if so
375 @throws SQLException
376 if a database access error occurs.
378 string getExtraNameCharacters() raises (SQLException);
379 //-------------------------------------------------------------------------
381 /** support the Database "ALTER TABLE" with add column?
382 @returns
383 <TRUE/> if so
384 @throws SQLException
385 if a database access error occurs.
387 boolean supportsAlterTableWithAddColumn() raises (SQLException);
388 //-------------------------------------------------------------------------
390 /** support the Database "ALTER TABLE" with drop column?
391 @returns
392 <TRUE/> if so
393 @throws SQLException
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.
405 </p>
406 @returns
407 <TRUE/> if so
408 @throws SQLException
409 if a database access error occurs.
411 boolean supportsColumnAliasing() raises (SQLException);
412 //-------------------------------------------------------------------------
414 /** are concatenations between NULL and non-NULL values NULL?
415 @returns
416 <TRUE/> if so
417 @throws SQLException
418 if a database access error occurs.
420 boolean nullPlusNonNullIsNull() raises (SQLException);
421 //-------------------------------------------------------------------------
423 /** <TRUE/>
424 , if the Database supports the CONVERT function between SQL types,
425 otherwise
426 <FALSE/>
428 @returns
429 <TRUE/> if so
430 @throws SQLException
431 if a database access error occurs.
433 boolean supportsTypeConversion() raises (SQLException);
434 //-------------------------------------------------------------------------
436 /** <TRUE/>
437 , if the Database supports the CONVERT between the given SQL types
438 otherwise
439 <FALSE/>
441 @returns
442 <TRUE/> if so
443 @throws SQLException
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?
451 @returns
452 <TRUE/> if so
453 @throws SQLException
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?
461 @returns
462 <TRUE/> if so
463 @throws SQLException
464 if a database access error occurs.
466 boolean supportsDifferentTableCorrelationNames()
467 raises (SQLException);
468 //-------------------------------------------------------------------------
470 /** Are expressions in "ORDER BY" lists supported?
471 @returns
472 <TRUE/> if so
473 @throws SQLException
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?
480 @returns
481 <TRUE/> if so
482 @throws SQLException
483 if a database access error occurs.
485 boolean supportsOrderByUnrelated() raises (SQLException);
486 //-------------------------------------------------------------------------
488 /** Is some form of "GROUP BY" clause supported?
489 @returns
490 <TRUE/> if so
491 @throws SQLException
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?
498 @returns
499 <TRUE/> if so
500 @throws SQLException
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?
508 @returns
509 <TRUE/> if so
510 @throws SQLException
511 if a database access error occurs.
513 boolean supportsGroupByBeyondSelect() raises (SQLException);
514 //-------------------------------------------------------------------------
516 /** Is the escape character in "LIKE" clauses supported?
517 @returns
518 <TRUE/> if so
519 @throws SQLException
520 if a database access error occurs.
522 boolean supportsLikeEscapeClause() raises (SQLException);
523 //-------------------------------------------------------------------------
525 /** Are multiple XResultSets from a single execute supported?
526 @returns
527 <TRUE/> if so
528 @throws SQLException
529 if a database access error occurs.
531 boolean supportsMultipleResultSets() raises (SQLException);
532 //-------------------------------------------------------------------------
534 /** Can we have multiple transactions open at once (on different
535 connections)?
536 @returns
537 <TRUE/> if so
538 @throws SQLException
539 if a database access error occurs.
541 boolean supportsMultipleTransactions() raises (SQLException);
542 //-------------------------------------------------------------------------
544 /** Can columns be defined as non-nullable?
545 @returns
546 <TRUE/> if so
547 @throws SQLException
548 if a database access error occurs.
550 boolean supportsNonNullableColumns() raises (SQLException);
551 //-------------------------------------------------------------------------
553 /** <TRUE/>, if the database supports ODBC Minimum SQL grammar,
554 otherwise <FALSE/>.
555 @returns
556 <TRUE/> if so
557 @throws SQLException
558 if a database access error occurs.
560 boolean supportsMinimumSQLGrammar() raises (SQLException);
561 //-------------------------------------------------------------------------
563 /** <TRUE/>, if the database supports ODBC Core SQL grammar,
564 otherwise <FALSE/>.
565 @returns
566 <TRUE/> if so
567 @throws SQLException
568 if a database access error occurs.
570 boolean supportsCoreSQLGrammar() raises (SQLException);
571 //-------------------------------------------------------------------------
574 <TRUE/>, if the database supports ODBC Extended SQL grammar,
575 otherwise <FALSE/>.
576 @returns
577 <TRUE/> if so
578 @throws SQLException
579 if a database access error occurs.
581 boolean supportsExtendedSQLGrammar() raises (SQLException);
582 //-------------------------------------------------------------------------
584 /** @returns
585 <TRUE/>, if the database supports ANSI92 entry level SQL grammar,
586 otherwise <FALSE/>.
587 @throws SQLException
588 if a database access error occurs.
590 boolean supportsANSI92EntryLevelSQL() raises (SQLException);
591 //-------------------------------------------------------------------------
593 /** @returns
594 <TRUE/>, if the database supports ANSI92 intermediate SQL grammar,
595 otherwise <FALSE/>.
596 @throws SQLException
597 if a database access error occurs.
599 boolean supportsANSI92IntermediateSQL() raises (SQLException);
600 //-------------------------------------------------------------------------
602 /** @returns
603 <TRUE/>, if the database supports ANSI92 full SQL grammar,
604 otherwise <FALSE/>.
605 @throws SQLException
606 if a database access error occurs.
608 boolean supportsANSI92FullSQL() raises (SQLException);
609 //-------------------------------------------------------------------------
611 /** returns
612 <TRUE/>, if the Database supports SQL Integrity Enhancement Facility,
613 otherwise <FALSE/>.
614 @throws SQLException
615 if a database access error occurs.
617 boolean supportsIntegrityEnhancementFacility() raises (SQLException);
618 //-------------------------------------------------------------------------
620 /** @returns
621 <TRUE/>, if some form of outer join is supported,
622 otherwise <FALSE/>.
623 @throws SQLException
624 if a database access error occurs.
626 boolean supportsOuterJoins() raises (SQLException);
627 //-------------------------------------------------------------------------
629 /** @returns
630 <TRUE/>, if full nested outer joins are supported,
631 otherwise <FALSE/>.
632 @throws SQLException
633 if a database access error occurs.
635 boolean supportsFullOuterJoins() raises (SQLException);
636 //-------------------------------------------------------------------------
638 /** @returns
639 <TRUE/>, if there is limited support for outer joins.
640 (This will be <TRUE/> if supportFullOuterJoins is <TRUE/>.)
641 <FALSE/> is returned otherwise.
642 @throws SQLException
643 if a database access error occurs.
645 boolean supportsLimitedOuterJoins() raises (SQLException);
646 //-------------------------------------------------------------------------
648 /** return the database vendor's preferred term for "schema"
649 @returns
650 <TRUE/> if so
651 @throws SQLException
652 if a database access error occurs.
654 string getSchemaTerm() raises (SQLException);
655 //-------------------------------------------------------------------------
657 /** return the database vendor's preferred term for "procedure"
658 @returns
659 <TRUE/> if so
660 @throws SQLException
661 if a database access error occurs.
663 string getProcedureTerm() raises (SQLException);
664 //-------------------------------------------------------------------------
666 /** return the database vendor's preferred term for "catalog"
667 @returns
668 <TRUE/> if so
669 @throws SQLException
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)
677 @returns
678 <TRUE/> if so
679 @throws SQLException
680 if a database access error occurs.
682 boolean isCatalogAtStart() raises (SQLException);
683 //-------------------------------------------------------------------------
685 /** return the separator between catalog and table name
686 @returns
687 <TRUE/> if so
688 @throws SQLException
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?
695 @returns
696 <TRUE/> if so
697 @throws SQLException
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?
704 @returns
705 <TRUE/> if so
706 @throws SQLException
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?
713 @returns
714 <TRUE/> if so
715 @throws SQLException
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?
722 @returns
723 <TRUE/> if so
724 @throws SQLException
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?
731 @returns
732 <TRUE/> if so
733 @throws SQLException
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?
741 @returns
742 <TRUE/> if so
743 @throws SQLException
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?
750 @returns
751 <TRUE/> if so
752 @throws SQLException
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?
759 @returns
760 <TRUE/> if so
761 @throws SQLException
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?
768 @returns
769 <TRUE/> if so
770 @throws SQLException
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?
777 @returns
778 <TRUE/> if so
779 @throws SQLException
780 if a database access error occurs.
782 boolean supportsCatalogsInPrivilegeDefinitions()
783 raises (SQLException);
784 //-------------------------------------------------------------------------
786 /** Is positioned DELETE supported?
787 @returns
788 <TRUE/> if so
789 @throws SQLException
790 if a database access error occurs.
792 boolean supportsPositionedDelete() raises (SQLException);
793 //-------------------------------------------------------------------------
795 /** Is positioned UPDATE supported?
796 @returns
797 <TRUE/> if so
798 @throws SQLException
799 if a database access error occurs.
801 boolean supportsPositionedUpdate() raises (SQLException);
802 //-------------------------------------------------------------------------
804 /** Is SELECT for UPDATE supported?
805 @returns
806 <TRUE/> if so
807 @throws SQLException
808 if a database access error occurs.
810 boolean supportsSelectForUpdate() raises (SQLException);
811 //-------------------------------------------------------------------------
813 /** Are stored procedure calls using the stored procedure escape
814 syntax supported?
815 @returns
816 <TRUE/> if so
817 @throws SQLException
818 if a database access error occurs.
820 boolean supportsStoredProcedures() raises (SQLException);
821 //-------------------------------------------------------------------------
823 /** Are subqueries in comparison expressions supported?
824 @returns
825 <TRUE/> if so
826 @throws SQLException
827 if a database access error occurs.
829 boolean supportsSubqueriesInComparisons() raises (SQLException);
830 //-------------------------------------------------------------------------
832 /** Are subqueries in 'exists' expressions supported?
833 @returns
834 <TRUE/> if so
835 @throws SQLException
836 if a database access error occurs.
838 boolean supportsSubqueriesInExists() raises (SQLException);
839 //-------------------------------------------------------------------------
841 /** Are subqueries in 'in' statements supported?
842 @returns
843 <TRUE/> if so
844 @throws SQLException
845 if a database access error occurs.
847 boolean supportsSubqueriesInIns() raises (SQLException);
848 //-------------------------------------------------------------------------
850 /** Are subqueries in quantified expressions supported?
851 @returns
852 <TRUE/> if so
853 @throws SQLException
854 if a database access error occurs.
856 boolean supportsSubqueriesInQuantifieds() raises (SQLException);
857 //-------------------------------------------------------------------------
859 /** Are correlated subqueries supported?
860 @returns
861 <TRUE/> if so
862 @throws SQLException
863 if a database access error occurs.
865 boolean supportsCorrelatedSubqueries() raises (SQLException);
866 //-------------------------------------------------------------------------
868 /** Is SQL UNION supported?
869 @returns
870 <TRUE/> if so
871 @throws SQLException
872 if a database access error occurs.
874 boolean supportsUnion() raises (SQLException);
875 //-------------------------------------------------------------------------
877 /** Is SQL UNION ALL supported?
878 @returns
879 <TRUE/> if so
880 @throws SQLException
881 if a database access error occurs.
883 boolean supportsUnionAll() raises (SQLException);
884 //-------------------------------------------------------------------------
886 /** Can cursors remain open across commits?
887 @returns
888 <TRUE/> if so
889 @throws SQLException
890 if a database access error occurs.
892 boolean supportsOpenCursorsAcrossCommit() raises (SQLException);
893 //-------------------------------------------------------------------------
895 /** Can cursors remain open across rollbacks?
896 @returns
897 <TRUE/> if so
898 @throws SQLException
899 if a database access error occurs.
901 boolean supportsOpenCursorsAcrossRollback() raises (SQLException);
902 //-------------------------------------------------------------------------
904 /** Can statements remain open across commits?
905 @returns
906 <TRUE/> if so
907 @throws SQLException
908 if a database access error occurs.
910 boolean supportsOpenStatementsAcrossCommit() raises (SQLException);
911 //-------------------------------------------------------------------------
913 /** Can statements remain open across rollbacks?
914 @returns
915 <TRUE/> if so
916 @throws SQLException
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
924 @returns
925 <TRUE/> if so
926 @throws SQLException
927 if a database access error occurs.
929 long getMaxBinaryLiteralLength() raises (SQLException);
930 //-------------------------------------------------------------------------
932 /** return the max length for a character literal
933 @returns
934 <TRUE/> if so
935 @throws SQLException
936 if a database access error occurs.
938 long getMaxCharLiteralLength() raises (SQLException);
939 //-------------------------------------------------------------------------
941 /** return the limit on column name length
942 @returns
943 <TRUE/> if so
944 @throws SQLException
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
951 @returns
952 <TRUE/> if so
953 @throws SQLException
954 if a database access error occurs.
956 long getMaxColumnsInGroupBy() raises (SQLException);
957 //-------------------------------------------------------------------------
959 /** return the maximum number of columns allowed in an index
960 @returns
961 <TRUE/> if so
962 @throws SQLException
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
969 @returns
970 <TRUE/> if so
971 @throws SQLException
972 if a database access error occurs.
974 long getMaxColumnsInOrderBy() raises (SQLException);
975 //-------------------------------------------------------------------------
977 /** return the maximum number of columns in a "SELECT" list
978 @returns
979 <TRUE/> if so
980 @throws SQLException
981 if a database access error occurs.
983 long getMaxColumnsInSelect() raises (SQLException);
984 //-------------------------------------------------------------------------
986 /** return the maximum number of columns in a table
987 @returns
988 <TRUE/> if so
989 @throws SQLException
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.
996 @returns
997 <TRUE/> if so
998 @throws SQLException
999 if a database access error occurs.
1001 long getMaxConnections() raises (SQLException);
1002 //-------------------------------------------------------------------------
1004 /** return the maximum cursor name length
1005 @returns
1006 <TRUE/> if so
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)
1014 @returns
1015 <TRUE/> if so
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
1023 @returns
1024 <TRUE/> if so
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
1032 @returns
1033 <TRUE/> if so
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
1041 @returns
1042 <TRUE/> if so
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.
1050 @returns
1051 <TRUE/> if so
1052 @throws SQLException
1053 if a database access error occurs.
1055 long getMaxRowSize() raises (SQLException);
1056 //-------------------------------------------------------------------------
1058 /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
1059 blobs?
1060 @returns
1061 <TRUE/> if so
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
1069 @returns
1070 <TRUE/> if so
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
1078 @returns
1079 <TRUE/> if so
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
1087 @returns
1088 <TRUE/> if so
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
1096 @returns
1097 <TRUE/> if so
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
1105 @returns
1106 <TRUE/> if so
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>.
1116 @returns
1117 <TRUE/> if so
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>
1128 is a noop and the
1129 isolation level is TransactionIsolation_NONE.
1130 @returns
1131 <TRUE/> if so
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?
1139 @returns
1140 <TRUE/> if so
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?
1151 @returns
1152 <TRUE/> if so
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."
1162 --> */
1163 boolean supportsDataDefinitionAndDataManipulationTransactions()
1164 raises (SQLException);
1165 //-------------------------------------------------------------------------
1167 /** are only data manipulation statements within a transaction
1168 supported?
1169 @returns
1170 <TRUE/> if so
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?
1180 @returns
1181 <TRUE/> if so
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?
1190 @returns
1191 <TRUE/> if so
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
1200 catalog.
1204 Only procedure descriptions matching the schema and
1205 procedure name criteria are returned. They are ordered by
1206 PROCEDURE_SCHEM, and PROCEDURE_NAME.
1207 </p>
1209 Each procedure description has the following columns:
1210 </p>
1211 <ol>
1212 <li>
1213 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1214 </li>
1215 <li>
1216 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1217 </li>
1218 <li>
1219 <b>PROCEDURE_NAME</b> string => procedure name
1220 </li>
1221 <li> reserved for future use
1222 </li>
1223 <li> reserved for future use
1224 </li>
1225 <li> reserved for future use
1226 </li>
1227 <li>
1228 <b>REMARKS</b> string => explanatory comment on the procedure
1229 </li>
1230 <li>
1231 <b>PROCEDURE_TYPE</b> short => kind of procedure:
1232 <ul>
1233 <li> UNKNOWN - May return a result
1234 </li>
1235 <li> NO - Does not return a result
1236 </li>
1237 <li> RETURN - Returns a result
1238 </li>
1239 </ul>
1240 </li>
1241 </ol>
1242 @param catalog
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
1248 @returns
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
1258 and result columns.
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.
1267 </p>
1268 <p>Each row in the XResultSet is a parameter description or
1269 column description with the following fields:
1270 </p>
1271 <ol>
1272 <li>
1273 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1274 </li>
1275 <li>
1276 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1277 </li>
1278 <li>
1279 <b>PROCEDURE_NAME</b> string => procedure name
1280 </li>
1281 <li>
1282 <b>COLUMN_NAME</b> string => column/parameter name
1283 </li>
1284 <li>
1285 <b>COLUMN_TYPE</b> Short => kind of column/parameter:
1286 <ul>
1287 <li> UNKNOWN - nobody knows
1288 </li>
1289 <li> IN - IN parameter
1290 </li>
1291 <li> INOUT - INOUT parameter
1292 </li>
1293 <li> OUT - OUT parameter
1294 </li>
1295 <li> RETURN - procedure return value
1296 </li>
1297 <li> RESULT - result column in XResultSet
1298 </li>
1299 </ul>
1300 </li>
1301 <li>
1302 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1303 </li>
1304 <li>
1305 <b>TYPE_NAME</b> string => SQL type name, for a UDT type the
1306 type name is fully qualified
1307 </li>
1308 <li>
1309 <b>PRECISION</b> long => precision
1310 </li>
1311 <li>
1312 <b>LENGTH</b> long => length in bytes of data
1313 </li>
1314 <li>
1315 <b>SCALE</b> short => scale
1316 </li>
1317 <li>
1318 <b>RADIX</b> short => radix
1319 </li>
1320 <li>
1321 <b>NULLABLE</b> short => can it contain NULL?
1322 <ul>
1323 <li> NO_NULLS - does not allow NULL values
1324 </li>
1325 <li> NULLABLE - allows NULL values
1326 </li>
1327 <li> NULLABLE_UNKNOWN - nullability unknown
1328 </li>
1329 </ul>
1330 </li>
1331 <li>
1332 <b>REMARKS</b> string => comment describing parameter/column
1333 </li>
1334 </ol>
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.
1339 </p>
1340 @param catalog
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
1348 @returns
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.
1365 </p>
1366 <p>Each table description has the following columns:
1367 </p>
1368 <ol>
1369 <li>
1370 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1371 </li>
1372 <li>
1373 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1374 </li>
1375 <li>
1376 <b>TABLE_NAME</b> string => table name
1377 </li>
1378 <li>
1379 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1380 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1381 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1382 </li>
1383 <li>
1384 <b>REMARKS</b> string => explanatory comment on the table
1385 </li>
1386 </ol>
1388 <b>Note:</b> Some databases may not return information for
1389 all tables.
1390 </p>
1391 @param catalog
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
1397 @param types
1398 a list of table types to include
1399 @returns
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:
1414 </p>
1415 <ol>
1416 <li>
1417 <b>TABLE_SCHEM</b> string => schema name
1418 </li>
1419 </ol>
1420 @returns
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:
1433 </p>
1434 <ol>
1435 <li>
1436 <b>TABLE_CAT</b> string => catalog name
1437 </li>
1438 </ol>
1439 @returns
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:
1452 </p>
1453 <ol>
1454 <li>
1455 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1456 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1457 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1458 </li>
1459 </ol>
1460 @returns
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.
1475 </p>
1476 <p>Each column description has the following columns:
1477 </p>
1478 <ol>
1479 <li>
1480 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1481 </li>
1482 <li>
1483 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1484 </li>
1485 <li>
1486 <b>TABLE_NAME</b> string => table name
1487 </li>
1488 <li>
1489 <b>COLUMN_NAME</b> string => column name
1490 </li>
1491 <li>
1492 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1493 </li>
1494 <li>
1495 <b>TYPE_NAME</b> string => Data source dependent type name,
1496 for a UDT the type name is fully qualified
1497 </li>
1498 <li>
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.
1502 </li>
1503 <li>
1504 <b>BUFFER_LENGTH</b> is not used.
1505 </li>
1506 <li>
1507 <b>DECIMAL_DIGITS</b> long => the number of fractional digits
1508 </li>
1509 <li>
1510 <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2)
1511 </li>
1512 <li>
1513 <b>NULLABLE</b> long => is NULL allowed?
1514 <ul>
1515 <li> NO_NULLS - might not allow NULL values
1516 </li>
1517 <li> NULABLE - definitely allows NULL values
1518 </li>
1519 <li> NULLABLE_UNKNOWN - nullability unknown
1520 </li>
1521 </ul>
1522 </li>
1523 <li>
1524 <b>REMARKS</b> string => comment describing column (may be <NULL/>)
1525 </li>
1526 <li>
1527 <b>COLUMN_DEF</b> string => default value (may be <NULL/>)
1528 </li>
1529 <li>
1530 <b>SQL_DATA_TYPE</b> long => unused
1531 </li>
1532 <li>
1533 <b>SQL_DATETIME_SUB</b> long => unused
1534 </li>
1535 <li>
1536 <b>CHAR_OCTET_LENGTH</b> long => for char types the
1537 maximum number of bytes in the column
1538 </li>
1539 <li>
1540 <b>ORDINAL_POSITION</b> int => index of column in table
1541 (starting at 1)
1542 </li>
1543 <li>
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.
1547 </li>
1548 </ol>
1549 @param catalog
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
1557 @returns
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.
1573 </p>
1574 <p>Each privilige description has the following columns:
1575 </p>
1576 <ol>
1577 <li>
1578 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1579 </li>
1580 <li>
1581 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1582 </li>
1583 <li>
1584 <b>TABLE_NAME</b> string => table name
1585 </li>
1586 <li>
1587 <b>COLUMN_NAME</b> string => column name
1588 </li>
1589 <li>
1590 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1591 </li>
1592 <li>
1593 <b>GRANTEE</b> string => grantee of access
1594 </li>
1595 <li>
1596 <b>PRIVILEGE</b> string => name of access (SELECT,
1597 INSERT, UPDATE, REFERENCES, ...)
1598 </li>
1599 <li>
1600 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1601 to grant to others; "NO" if not; <NULL/> if unknown
1602 </li>
1603 </ol>
1604 @param catalog
1605 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1606 @param schema
1607 a schema name ; "" retrieves those without a schema
1608 @param table
1609 a table name
1610 @param columnNamePattern
1611 a column name pattern
1612 @returns
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.
1631 </p>
1632 <p>Each privilige description has the following columns:
1633 </p>
1634 <ol>
1635 <li>
1636 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1637 </li>
1638 <li>
1639 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1640 </li>
1641 <li>
1642 <b>TABLE_NAME</b> string => table name
1643 </li>
1644 <li>
1645 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1646 </li>
1647 <li>
1648 <b>GRANTEE</b> string => grantee of access
1649 </li>
1650 <li>
1651 <b>PRIVILEGE</b> string => name of access (SELECT,
1652 INSERT, UPDATE, REFERENCES, ...)
1653 </li>
1654 <li>
1655 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1656 to grant to others; "NO" if not; <NULL/> if unknown
1657 </li>
1658 </ol>
1659 @param catalog
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
1665 @returns
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:
1679 </p>
1680 <ol>
1681 <li>
1682 <b>SCOPE</b> short => actual scope of result
1683 <ul>
1684 <li> TEMPORARY - very temporary, while using row
1685 </li>
1686 <li> TRANSACTION - valid for remainder of current transaction
1687 </li>
1688 <li> SESSION - valid for remainder of current session
1689 </li>
1690 </ul>
1691 </li>
1692 <li>
1693 <b>COLUMN_NAME</b> string => column name
1694 </li>
1695 <li>
1696 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1697 </li>
1698 <li>
1699 <b>TYPE_NAME</b> string => Data source dependent type name,
1700 for a UDT the type name is fully qualified
1701 </li>
1702 <li>
1703 <b>COLUMN_SIZE</b> long => precision
1704 </li>
1705 <li>
1706 <b>BUFFER_LENGTH</b> long => not used
1707 </li>
1708 <li>
1709 <b>DECIMAL_DIGITS</b> short => scale
1710 </li>
1711 <li>
1712 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1713 like an Oracle ROWID
1714 <ul>
1715 <li> UNKNOWN - may or may not be pseudo column
1716 </li>
1717 <li> NOT_PSEUDO - is NOT a pseudo column
1718 </li>
1719 <li> PSEUDO - is a pseudo column
1720 </li>
1721 </ul>
1722 </li>
1723 </ol>
1724 @param catalog
1725 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1726 @param schema
1727 a schema name; "" retrieves those without a schema
1728 @param table
1729 a table name
1730 @param scope
1731 the scope of interest; use same values as SCOPE
1732 @param nullable
1733 include columns that are nullable?
1734 @returns
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
1746 unordered.
1749 <p>Each column description has the following columns:
1750 </p>
1751 <ol>
1752 <li>
1753 <b>SCOPE</b> short => is not used
1754 </li>
1755 <li>
1756 <b>COLUMN_NAME</b> string => column name
1757 </li>
1758 <li>
1759 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1760 </li>
1761 <li>
1762 <b>TYPE_NAME</b> string => Data source dependent type name
1763 </li>
1764 <li>
1765 <b>COLUMN_SIZE</b> long => precision
1766 </li>
1767 <li>
1768 <b>BUFFER_LENGTH</b> long => length of column value in bytes
1769 </li>
1770 <li>
1771 <b>DECIMAL_DIGITS</b> short => scale
1772 </li>
1773 <li>
1774 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1775 like an Oracle ROWID
1776 <ul>
1777 <li> UNKNOWN - may or may not be pseudo column
1778 </li>
1779 <li> NOT_PSEUDO - is NOT a pseudo column
1780 </li>
1781 <li> PSEUDO - is a pseudo column
1782 </li>
1783 </ul>
1784 </li>
1785 </ol>
1786 @param catalog
1787 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1788 @param schema
1789 a schema name; "" retrieves those without a schema
1790 @param table
1791 a table name
1792 @returns
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:
1806 </p>
1807 <ol>
1808 <li>
1809 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1810 </li>
1811 <li>
1812 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1813 </li>
1814 <li>
1815 <b>TABLE_NAME</b> string => table name
1816 </li>
1817 <li>
1818 <b>COLUMN_NAME</b> string => column name
1819 </li>
1820 <li>
1821 <b>KEY_SEQ</b> short => sequence number within primary key
1822 </li>
1823 <li>
1824 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1825 </li>
1826 </ol>
1827 @param catalog
1828 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1829 @param schema
1830 a schema name; "" retrieves those without a schema
1831 @param table
1832 a table name
1833 @returns
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:
1849 </p>
1850 <ol>
1851 <li>
1852 <b>PKTABLE_CAT</b> string => primary key table catalog
1853 being imported (may be <NULL/>)
1854 </li>
1855 <li>
1856 <b>PKTABLE_SCHEM</b> string => primary key table schema
1857 being imported (may be <NULL/>)
1858 </li>
1859 <li>
1860 <b>PKTABLE_NAME</b> string => primary key table name
1861 being imported
1862 </li>
1863 <li>
1864 <b>PKCOLUMN_NAME</b> string => primary key column name
1865 being imported
1866 </li>
1867 <li>
1868 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1869 </li>
1870 <li>
1871 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1872 </li>
1873 <li>
1874 <b>FKTABLE_NAME</b> string => foreign key table name
1875 </li>
1876 <li>
1877 <b>FKCOLUMN_NAME</b> string => foreign key column name
1878 </li>
1879 <li>
1880 <b>KEY_SEQ</b> short => sequence number within foreign key
1881 </li>
1882 <li>
1883 <b>UPDATE_RULE</b> short => What happens to
1884 foreign key when primary is updated:
1885 <ul>
1886 <li> importedNoAction - do not allow update of primary
1887 key if it has been imported
1888 </li>
1889 <li> importedKeyCascade - change imported key to agree
1890 with primary key update
1891 </li>
1892 <li> importedKeySetNull - change imported key to NULL if
1893 its primary key has been updated
1894 </li>
1895 <li> importedKeySetDefault - change imported key to default values
1896 if its primary key has been updated
1897 </li>
1898 <li> importedKeyRestrict - same as importedKeyNoAction
1899 (for ODBC 2.x compatibility)
1900 </li>
1901 </ul>
1902 </li>
1903 <li>
1904 <b>DELETE_RULE</b> short => What happens to
1905 the foreign key when primary is deleted.
1906 <ul>
1907 <li> importedKeyNoAction - do not allow delete of primary
1908 key if it has been imported
1909 </li>
1910 <li> importedKeyCascade - delete rows that import a deleted key
1911 </li>
1912 <li> importedKeySetNull - change imported key to NULL if
1913 its primary key has been deleted
1914 </li>
1915 <li> importedKeyRestrict - same as importedKeyNoAction
1916 (for ODBC 2.x compatibility)
1917 </li>
1918 <li> importedKeySetDefault - change imported key to default if
1919 its primary key has been deleted
1920 </li>
1921 </ul>
1922 </li>
1923 <li>
1924 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
1925 </li>
1926 <li>
1927 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1928 </li>
1929 <li>
1930 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
1931 constraints be deferred until commit
1932 <ul>
1933 <li> importedKeyInitiallyDeferred - see SQL92 for definition
1934 </li>
1935 <li> importedKeyInitiallyImmediate - see SQL92 for definition
1936 </li>
1937 <li> importedKeyNotDeferrable - see SQL92 for definition
1938 </li>
1939 </ul>
1940 </li>
1941 </ol>
1942 @param catalog
1943 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1944 @param schema
1945 a schema name; "" retrieves those without a schema
1946 @param table
1947 a table name
1948 @returns
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:
1964 </p>
1965 <ol>
1966 <li>
1967 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
1968 </li>
1969 <li>
1970 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
1971 </li>
1972 <li>
1973 <b>PKTABLE_NAME</b> string => primary key table name
1974 </li>
1975 <li>
1976 <b>PKCOLUMN_NAME</b> string => primary key column name
1977 </li>
1978 <li>
1979 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1980 being exported (may be <NULL/>)
1981 </li>
1982 <li>
1983 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1984 being exported (may be <NULL/>)
1985 </li>
1986 <li>
1987 <b>FKTABLE_NAME</b> string => foreign key table name
1988 being exported
1989 </li>
1990 <li>
1991 <b>FKCOLUMN_NAME</b> string => foreign key column name
1992 being exported
1993 </li>
1994 <li>
1995 <b>KEY_SEQ</b> short => sequence number within foreign key
1996 </li>
1997 <li>
1998 <b>UPDATE_RULE</b> short => What happens to
1999 foreign key when primary is updated:
2000 <ul>
2001 <li> NO_ACTION - do not allow update of primary
2002 key if it has been imported
2003 </li>
2004 <li> CASCADE - change imported key to agree
2005 with primary key update
2006 </li>
2007 <li> SET_NULL - change imported key to NULL if
2008 its primary key has been updated
2009 </li>
2010 <li> SET_DEFAULT - change imported key to default values
2011 if its primary key has been updated
2012 </li>
2013 <li> RESTRICT - same as importedKeyNoAction
2014 (for ODBC 2.x compatibility)
2015 </li>
2016 </ul>
2017 </li>
2018 <li>
2019 <b>DELETE_RULE</b> short => What happens to
2020 the foreign key when primary is deleted.
2021 <ul>
2022 <li> NO_ACTION - do not allow delete of primary
2023 key if it has been imported
2024 </li>
2025 <li> CASCADE - delete rows that import a deleted key
2026 </li>
2027 <li> SET_NULL - change imported key to NULL if
2028 its primary key has been deleted
2029 </li>
2030 <li> RESTRICT - same as importedKeyNoAction
2031 (for ODBC 2.x compatibility)
2032 </li>
2033 <li> SET_DEFAULT - change imported key to default if
2034 its primary key has been deleted
2035 </li>
2036 </ul>
2037 </li>
2038 <li>
2039 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2040 </li>
2041 <li>
2042 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2043 </li>
2044 <li>
2045 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2046 constraints be deferred until commit
2047 <ul>
2048 <li> INITIALLY_DEFERRED - see SQL92 for definition
2049 </li>
2050 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2051 </li>
2052 <li> NONE - see SQL92 for definition
2053 </li>
2054 </ul>
2055 </li>
2056 </ol>
2057 @param catalog
2058 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2059 @param schema
2060 a schema name; "" retrieves those without a schema
2061 @param table
2062 a table name
2063 @returns
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
2078 KEY_SEQ.
2081 <p>Each foreign key column description has the following columns:
2082 </p>
2083 <ol>
2084 <li>
2085 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
2086 </li>
2087 <li>
2088 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
2089 </li>
2090 <li>
2091 <b>PKTABLE_NAME</b> string => primary key table name
2092 </li>
2093 <li>
2094 <b>PKCOLUMN_NAME</b> string => primary key column name
2095 </li>
2096 <li>
2097 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
2098 being exported (may be <NULL/>)
2099 </li>
2100 <li>
2101 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
2102 being exported (may be <NULL/>)
2103 </li>
2104 <li>
2105 <b>FKTABLE_NAME</b> string => foreign key table name
2106 being exported
2107 </li>
2108 <li>
2109 <b>FKCOLUMN_NAME</b> string => foreign key column name
2110 being exported
2111 </li>
2112 <li>
2113 <b>KEY_SEQ</b> short => sequence number within foreign key
2114 </li>
2115 <li>
2116 <b>UPDATE_RULE</b> short => What happens to
2117 foreign key when primary is updated:
2118 <ul>
2119 <li> NO_ACTION - do not allow update of primary
2120 key if it has been imported
2121 </li>
2122 <li> CASCADE - change imported key to agree
2123 with primary key update
2124 </li>
2125 <li> SET_NULL - change imported key to NULL if
2126 its primary key has been updated
2127 </li>
2128 <li> SET_DEFAULT - change imported key to default values
2129 if its primary key has been updated
2130 </li>
2131 <li> RESTRICT - same as importedKeyNoAction
2132 (for ODBC 2.x compatibility)
2133 </li>
2134 </ul>
2135 </li>
2136 <li>
2137 <b>DELETE_RULE</b> short => What happens to
2138 the foreign key when primary is deleted.
2139 <ul>
2140 <li> NO_ACTION - do not allow delete of primary
2141 key if it has been imported
2142 </li>
2143 <li> CASCADE - delete rows that import a deleted key
2144 </li>
2145 <li> SET_NULL - change imported key to NULL if
2146 its primary key has been deleted
2147 </li>
2148 <li> RESTRICT - same as importedKeyNoAction
2149 (for ODBC 2.x compatibility)
2150 </li>
2151 <li> SET_DEFAULT - change imported key to default if
2152 its primary key has been deleted
2153 </li>
2154 </ul>
2155 </li>
2156 <li>
2157 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2158 </li>
2159 <li>
2160 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2161 </li>
2162 <li>
2163 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2164 constraints be deferred until commit
2165 <ul>
2166 <li> INITIALLY_DEFERRED - see SQL92 for definition
2167 </li>
2168 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2169 </li>
2170 <li> NONE - see SQL92 for definition
2171 </li>
2172 </ul>
2173 </li>
2174 </ol>
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
2179 @param primaryTable
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
2185 @param foreignTable
2186 the table name that imports the key
2187 @returns
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:
2206 </p>
2207 <ol>
2208 <li>
2209 <b>TYPE_NAME</b> string => Type name
2210 </li>
2211 <li>
2212 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
2213 </li>
2214 <li>
2215 <b>PRECISION</b> long => maximum precision
2216 </li>
2217 <li>
2218 <b>LITERAL_PREFIX</b> string => prefix used to quote a literal
2219 (may be <NULL/>)
2220 </li>
2221 <li>
2222 <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal
2223 (may be <NULL/>)
2224 </li>
2225 <li>
2226 <b>CREATE_PARAMS</b> string => parameters used in creating
2227 the type (may be <NULL/>)
2228 </li>
2229 <li>
2230 <b>NULLABLE</b> short => can you use NULL for this type?
2231 <ul>
2232 <li> NO_NULLS - does not allow NULL values
2233 </li>
2234 <li> NULLABLE - allows NULL values
2235 </li>
2236 <li> NULLABLE_UNKNOWN - nullability unknown
2237 </li>
2238 </ul>
2239 </li>
2240 <li>
2241 <b>CASE_SENSITIVE</b> boolean=> is it case sensitive?
2242 </li>
2243 <li>
2244 <b>SEARCHABLE</b> short => can you use "WHERE" based on this type:
2245 <ul>
2246 <li> NONE - No support
2247 </li>
2248 <li> CHAR - Only supported with WHERE .. LIKE
2249 </li>
2250 <li> BASIC - Supported except for WHERE .. LIKE
2251 </li>
2252 <li> FULL - Supported for all WHERE ..
2253 </li>
2254 </ul>
2255 </li>
2256 <li>
2257 <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned?
2258 </li>
2259 <li>
2260 <b>FIXED_PREC_SCALE</b> boolean => can it be a money value?
2261 </li>
2262 <li>
2263 <b>AUTO_INCREMENT</b> boolean => can it be used for an
2264 auto-increment value?
2265 </li>
2266 <li>
2267 <b>LOCAL_TYPE_NAME</b> string => localized version of type name
2268 (may be <NULL/>)
2269 </li>
2270 <li>
2271 <b>MINIMUM_SCALE</b> short => minimum scale supported
2272 </li>
2273 <li>
2274 <b>MAXIMUM_SCALE</b> short => maximum scale supported
2275 </li>
2276 <li>
2277 <b>SQL_DATA_TYPE</b> long => unused
2278 </li>
2279 <li>
2280 <b>SQL_DATETIME_SUB</b> long => unused
2281 </li>
2282 <li>
2283 <b>NUM_PREC_RADIX</b> long => usually 2 or 10
2284 </li>
2285 </ol>
2286 @returns
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:
2299 </p>
2300 <ol>
2301 <li>
2302 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
2303 </li>
2304 <li>
2305 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
2306 </li>
2307 <li>
2308 <b>TABLE_NAME</b> string => table name
2309 </li>
2310 <li>
2311 <b>NON_UNIQUE</b> boolean => Can index values be non-unique?
2312 <FALSE/> when TYPE is tableIndexStatistic
2313 </li>
2314 <li>
2315 <b>INDEX_QUALIFIER</b> string => index catalog (may be <NULL/>);
2316 <NULL/> when TYPE is tableIndexStatistic
2317 </li>
2318 <li>
2319 <b>INDEX_NAME</b> string => index name; <NULL/> when TYPE is
2320 tableIndexStatistic
2321 </li>
2322 <li>
2323 <b>TYPE</b> short => index type:
2324 <ul>
2325 <li> 0 - this identifies table statistics that are
2326 returned in conjuction with a table's index descriptions
2327 </li>
2328 <li> CLUSTERED - this is a clustered index
2329 </li>
2330 <li> HASHED - this is a hashed index
2331 </li>
2332 <li> OTHER - this is some other style of index
2333 </li>
2334 </ul>
2335 </li>
2336 <li>
2337 <b>ORDINAL_POSITION</b> short => column sequence number
2338 within index; zero when TYPE is tableIndexStatistic
2339 </li>
2340 <li>
2341 <b>COLUMN_NAME</b> string => column name; <NULL/> when TYPE is
2342 tableIndexStatistic
2343 </li>
2344 <li>
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
2348 </li>
2349 <li>
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.
2353 </li>
2354 <li>
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.
2358 </li>
2359 <li>
2360 <b>FILTER_CONDITION</b> string => Filter condition, if any.
2361 (may be <NULL/>)
2362 </li>
2363 </ol>
2364 @param catalog
2365 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2366 @param schema
2367 a schema name; "" retrieves those without a schema
2368 @param table
2369 the table name that exports the key
2370 @param unique
2371 when <TRUE/>, return only indices for unique values; when <FALSE/>, return indices regardless of whether unique or not
2372 @param approximate
2373 when <TRUE/>, result is allowed to reflect approximate or out of data values; when <FALSE/>, results are requested to be accurate
2374 @returns
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?
2385 @param setType
2386 defined in
2387 <type scop="com::sun::star::sdbc">ResultSetType</type>
2388 @returns
2389 <TRUE/> if so
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?
2398 @param setType
2399 defined in
2400 <type scop="com::sun::star::sdbc">ResultSetType</type>
2401 @param concurrency
2402 defined in
2403 <type scop="com::sun::star::sdbc">ResultSetConcurrency</type>
2404 @returns
2405 <TRUE/> if so
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.
2415 @param setType
2416 defined in
2417 <type scop="com::sun::star::sdbc">ResultSetType</type>
2418 @returns
2419 <TRUE/> if so
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.
2427 @param setType
2428 defined in
2429 <type scop="com::sun::star::sdbc">ResultSetType</type>
2430 @returns
2431 <TRUE/> if so
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.
2439 @param setType
2440 defined in
2441 <type scop="com::sun::star::sdbc">ResultSetType</type>
2442 @returns
2443 <TRUE/> if so
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.
2451 @param setType
2452 defined in
2453 <type scop="com::sun::star::sdbc">ResultSetType</type>
2454 @returns
2455 <TRUE/> if so
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.
2463 @param setType
2464 defined in
2465 <type scop="com::sun::star::sdbc">ResultSetType</type>
2466 @returns
2467 <TRUE/> if so
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.
2475 @param setType
2476 defined in
2477 <type scop="com::sun::star::sdbc">ResultSetType</type>
2478 @returns
2479 <TRUE/> if so
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
2487 calling the method
2488 <code>XResultSet.rowUpdated</code>.
2489 @param setType
2490 defined in
2491 <type scop="com::sun::star::sdbc">ResultSetType</type>
2492 @returns
2493 <TRUE/> if so
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
2501 calling
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.
2505 @param setType
2506 defined in
2507 <type scop="com::sun::star::sdbc">ResultSetType</type>
2508 @returns
2509 <TRUE/> if so
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
2517 by calling
2518 <member scope="com::sun::star::sdbc">XResultSet::rowInserted().</member>
2519 @param setType
2520 defined in
2521 <type scop="com::sun::star::sdbc">ResultSetType</type>
2522 @returns
2523 <TRUE/> if so
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.
2531 @returns
2532 <TRUE/> if so
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,
2541 or DISTINCT.
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
2548 ignored.
2549 </p>
2550 <p>Each type description has the following columns:
2551 </p>
2552 <ol>
2553 <li>
2554 <b>TYPE_CAT</b> string => the type's catalog (may be <NULL/>)
2555 </li>
2556 <li>
2557 <b>TYPE_SCHEM</b> string => type's schema (may be <NULL/>)
2558 </li>
2559 <li>
2560 <b>TYPE_NAME</b> string => type name
2561 </li>
2562 <li>
2563 <b>CLASS_NAME</b> string => Java class name or service name
2564 </li>
2565 <li>
2566 <b>DATA_TYPE</b> string => type value.
2567 One of OBJECT, STRUCT, or DISTINCT
2568 </li>
2569 <li>
2570 <b>REMARKS</b> string => explanatory comment on the type
2571 </li>
2572 </ol>
2574 <b>Note:</b> If the driver does not support UDTs, an empty
2575 result set is returned.
2576 </p>
2577 @param catalog
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
2583 @param types
2584 a list of user-named types to include (OBJECT, STRUCT, or DISTINCT)
2585 @returns
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.
2596 @returns
2597 the Connection object
2598 @throws SQLException
2599 if a database access error occurs.
2601 XConnection getConnection() raises (SQLException);
2604 //=============================================================================
2606 }; }; }; };
2608 /*===========================================================================
2609 ===========================================================================*/
2610 #endif