Update ooo320-m1
[ooovba.git] / offapi / com / sun / star / sdbc / XDatabaseMetaData.idl
blob6e946d1d1dc38e32a674c39ce7d17a11b164b831
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: XDatabaseMetaData.idl,v $
10 * $Revision: 1.21 $
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>
35 #endif
37 #ifndef __com_sun_star_sdbc_SQLException_idl__
38 #include <com/sun/star/sdbc/SQLException.idl>
39 #endif
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
51 the form of
52 <type scope="com::sun::star::sdbc">XResultSet</type>
53 objects.
54 You can use the normal <type scope="com::sun::star::sdbc">XResultSet</type>
55 methods such as
56 <member scope="com::sun::star::sdbc">XResultSet::getString()</member>
57 and
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.
66 </p>
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.
73 </p>
74 <p>
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
86 current user?
88 @return
89 <TRUE/>
90 if the user is allowed to call all procedures returned by getProcedures
91 otherwise
92 <FALSE/>
94 @throws SQLException
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
101 current user?
102 @returns
103 <TRUE/> if so
104 @throws SQLException
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.
121 @returns
122 <TRUE/> if so
123 @throws SQLException
124 if a database access error occurs.
126 boolean isReadOnly() raises (SQLException);
127 //-------------------------------------------------------------------------
129 /** Are NULL values sorted high?
130 @returns
131 <TRUE/> if so
132 @throws SQLException
133 if a database access error occurs.
135 boolean nullsAreSortedHigh() raises (SQLException);
136 //-------------------------------------------------------------------------
138 /** Are NULL values sorted low?
139 @returns
140 <TRUE/> if so
141 @throws SQLException
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?
148 @returns
149 <TRUE/> if so
150 @throws SQLException
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?
157 @returns
158 <TRUE/> if so
159 @throws SQLException
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.
196 @returns
197 <TRUE/> if so
198 @throws SQLException
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.
205 @returns
206 <TRUE/> if so
207 @throws SQLException
208 if a database access error occurs.
210 boolean usesLocalFilePerTable() raises (SQLException);
211 //-------------------------------------------------------------------------
213 /** use the database 'mixed case unquoted SQL identifiers' case sensitive.
214 @returns
215 <TRUE/> if so
216 @throws SQLException
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?
224 @returns
225 <TRUE/> if so
226 @throws SQLException
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?
234 @returns
235 <TRUE/> if so
236 @throws SQLException
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?
244 @returns
245 <TRUE/> if so
246 @throws SQLException
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?
254 @returns
255 <TRUE/> if so
256 @throws SQLException
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?
264 @returns
265 <TRUE/> if so
266 @throws SQLException
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?
274 @returns
275 <TRUE/> if so
276 @throws SQLException
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?
284 @returns
285 <TRUE/> if so
286 @throws SQLException
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.
294 @returns
295 <TRUE/> if so
296 @throws SQLException
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.
304 @returns
305 <TRUE/> if so
306 @throws SQLException
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
314 clause.
315 @returns
316 <TRUE/> if so
317 @throws SQLException
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
325 clause.
326 @returns
327 <TRUE/> if so
328 @throws SQLException
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
336 clause.
337 @returns
338 <TRUE/> if so
339 @throws SQLException
340 if a database access error occurs.
342 string getSystemFunctions() raises (SQLException);
343 //-------------------------------------------------------------------------
345 /** gets a comma-separated list of time and date functions.
346 @returns
347 <TRUE/> if so
348 @throws SQLException
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.
361 </p>
363 The '%' character represents any sequence of zero or
364 more characters.
365 </p>
366 @returns
367 <TRUE/> if so
368 @throws SQLException
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 _).
376 @returns
377 <TRUE/> if so
378 @throws SQLException
379 if a database access error occurs.
381 string getExtraNameCharacters() raises (SQLException);
382 //-------------------------------------------------------------------------
384 /** support the Database "ALTER TABLE" with add column?
385 @returns
386 <TRUE/> if so
387 @throws SQLException
388 if a database access error occurs.
390 boolean supportsAlterTableWithAddColumn() raises (SQLException);
391 //-------------------------------------------------------------------------
393 /** support the Database "ALTER TABLE" with drop column?
394 @returns
395 <TRUE/> if so
396 @throws SQLException
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.
408 </p>
409 @returns
410 <TRUE/> if so
411 @throws SQLException
412 if a database access error occurs.
414 boolean supportsColumnAliasing() raises (SQLException);
415 //-------------------------------------------------------------------------
417 /** are concatenations between NULL and non-NULL values NULL?
418 @returns
419 <TRUE/> if so
420 @throws SQLException
421 if a database access error occurs.
423 boolean nullPlusNonNullIsNull() raises (SQLException);
424 //-------------------------------------------------------------------------
426 /** <TRUE/>
427 , if the Database supports the CONVERT function between SQL types,
428 otherwise
429 <FALSE/>
431 @returns
432 <TRUE/> if so
433 @throws SQLException
434 if a database access error occurs.
436 boolean supportsTypeConversion() raises (SQLException);
437 //-------------------------------------------------------------------------
439 /** <TRUE/>
440 , if the Database supports the CONVERT between the given SQL types
441 otherwise
442 <FALSE/>
444 @returns
445 <TRUE/> if so
446 @throws SQLException
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?
454 @returns
455 <TRUE/> if so
456 @throws SQLException
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?
464 @returns
465 <TRUE/> if so
466 @throws SQLException
467 if a database access error occurs.
469 boolean supportsDifferentTableCorrelationNames()
470 raises (SQLException);
471 //-------------------------------------------------------------------------
473 /** Are expressions in "ORDER BY" lists supported?
474 @returns
475 <TRUE/> if so
476 @throws SQLException
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?
483 @returns
484 <TRUE/> if so
485 @throws SQLException
486 if a database access error occurs.
488 boolean supportsOrderByUnrelated() raises (SQLException);
489 //-------------------------------------------------------------------------
491 /** Is some form of "GROUP BY" clause supported?
492 @returns
493 <TRUE/> if so
494 @throws SQLException
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?
501 @returns
502 <TRUE/> if so
503 @throws SQLException
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?
511 @returns
512 <TRUE/> if so
513 @throws SQLException
514 if a database access error occurs.
516 boolean supportsGroupByBeyondSelect() raises (SQLException);
517 //-------------------------------------------------------------------------
519 /** Is the escape character in "LIKE" clauses supported?
520 @returns
521 <TRUE/> if so
522 @throws SQLException
523 if a database access error occurs.
525 boolean supportsLikeEscapeClause() raises (SQLException);
526 //-------------------------------------------------------------------------
528 /** Are multiple XResultSets from a single execute supported?
529 @returns
530 <TRUE/> if so
531 @throws SQLException
532 if a database access error occurs.
534 boolean supportsMultipleResultSets() raises (SQLException);
535 //-------------------------------------------------------------------------
537 /** Can we have multiple transactions open at once (on different
538 connections)?
539 @returns
540 <TRUE/> if so
541 @throws SQLException
542 if a database access error occurs.
544 boolean supportsMultipleTransactions() raises (SQLException);
545 //-------------------------------------------------------------------------
547 /** Can columns be defined as non-nullable?
548 @returns
549 <TRUE/> if so
550 @throws SQLException
551 if a database access error occurs.
553 boolean supportsNonNullableColumns() raises (SQLException);
554 //-------------------------------------------------------------------------
556 /** <TRUE/>, if the database supports ODBC Minimum SQL grammar,
557 otherwise <FALSE/>.
558 @returns
559 <TRUE/> if so
560 @throws SQLException
561 if a database access error occurs.
563 boolean supportsMinimumSQLGrammar() raises (SQLException);
564 //-------------------------------------------------------------------------
566 /** <TRUE/>, if the database supports ODBC Core SQL grammar,
567 otherwise <FALSE/>.
568 @returns
569 <TRUE/> if so
570 @throws SQLException
571 if a database access error occurs.
573 boolean supportsCoreSQLGrammar() raises (SQLException);
574 //-------------------------------------------------------------------------
576 /**
577 <TRUE/>, if the database supports ODBC Extended SQL grammar,
578 otherwise <FALSE/>.
579 @returns
580 <TRUE/> if so
581 @throws SQLException
582 if a database access error occurs.
584 boolean supportsExtendedSQLGrammar() raises (SQLException);
585 //-------------------------------------------------------------------------
587 /** @returns
588 <TRUE/>, if the database supports ANSI92 entry level SQL grammar,
589 otherwise <FALSE/>.
590 @throws SQLException
591 if a database access error occurs.
593 boolean supportsANSI92EntryLevelSQL() raises (SQLException);
594 //-------------------------------------------------------------------------
596 /** @returns
597 <TRUE/>, if the database supports ANSI92 intermediate SQL grammar,
598 otherwise <FALSE/>.
599 @throws SQLException
600 if a database access error occurs.
602 boolean supportsANSI92IntermediateSQL() raises (SQLException);
603 //-------------------------------------------------------------------------
605 /** @returns
606 <TRUE/>, if the database supports ANSI92 full SQL grammar,
607 otherwise <FALSE/>.
608 @throws SQLException
609 if a database access error occurs.
611 boolean supportsANSI92FullSQL() raises (SQLException);
612 //-------------------------------------------------------------------------
614 /** returns
615 <TRUE/>, if the Database supports SQL Integrity Enhancement Facility,
616 otherwise <FALSE/>.
617 @throws SQLException
618 if a database access error occurs.
620 boolean supportsIntegrityEnhancementFacility() raises (SQLException);
621 //-------------------------------------------------------------------------
623 /** @returns
624 <TRUE/>, if some form of outer join is supported,
625 otherwise <FALSE/>.
626 @throws SQLException
627 if a database access error occurs.
629 boolean supportsOuterJoins() raises (SQLException);
630 //-------------------------------------------------------------------------
632 /** @returns
633 <TRUE/>, if full nested outer joins are supported,
634 otherwise <FALSE/>.
635 @throws SQLException
636 if a database access error occurs.
638 boolean supportsFullOuterJoins() raises (SQLException);
639 //-------------------------------------------------------------------------
641 /** @returns
642 <TRUE/>, if there is limited support for outer joins.
643 (This will be <TRUE/> if supportFullOuterJoins is <TRUE/>.)
644 <FALSE/> is returned otherwise.
645 @throws SQLException
646 if a database access error occurs.
648 boolean supportsLimitedOuterJoins() raises (SQLException);
649 //-------------------------------------------------------------------------
651 /** return the database vendor's preferred term for "schema"
652 @returns
653 <TRUE/> if so
654 @throws SQLException
655 if a database access error occurs.
657 string getSchemaTerm() raises (SQLException);
658 //-------------------------------------------------------------------------
660 /** return the database vendor's preferred term for "procedure"
661 @returns
662 <TRUE/> if so
663 @throws SQLException
664 if a database access error occurs.
666 string getProcedureTerm() raises (SQLException);
667 //-------------------------------------------------------------------------
669 /** return the database vendor's preferred term for "catalog"
670 @returns
671 <TRUE/> if so
672 @throws SQLException
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)
680 @returns
681 <TRUE/> if so
682 @throws SQLException
683 if a database access error occurs.
685 boolean isCatalogAtStart() raises (SQLException);
686 //-------------------------------------------------------------------------
688 /** return the separator between catalog and table name
689 @returns
690 <TRUE/> if so
691 @throws SQLException
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?
698 @returns
699 <TRUE/> if so
700 @throws SQLException
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?
707 @returns
708 <TRUE/> if so
709 @throws SQLException
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?
716 @returns
717 <TRUE/> if so
718 @throws SQLException
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?
725 @returns
726 <TRUE/> if so
727 @throws SQLException
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?
734 @returns
735 <TRUE/> if so
736 @throws SQLException
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?
744 @returns
745 <TRUE/> if so
746 @throws SQLException
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?
753 @returns
754 <TRUE/> if so
755 @throws SQLException
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?
762 @returns
763 <TRUE/> if so
764 @throws SQLException
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?
771 @returns
772 <TRUE/> if so
773 @throws SQLException
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?
780 @returns
781 <TRUE/> if so
782 @throws SQLException
783 if a database access error occurs.
785 boolean supportsCatalogsInPrivilegeDefinitions()
786 raises (SQLException);
787 //-------------------------------------------------------------------------
789 /** Is positioned DELETE supported?
790 @returns
791 <TRUE/> if so
792 @throws SQLException
793 if a database access error occurs.
795 boolean supportsPositionedDelete() raises (SQLException);
796 //-------------------------------------------------------------------------
798 /** Is positioned UPDATE supported?
799 @returns
800 <TRUE/> if so
801 @throws SQLException
802 if a database access error occurs.
804 boolean supportsPositionedUpdate() raises (SQLException);
805 //-------------------------------------------------------------------------
807 /** Is SELECT for UPDATE supported?
808 @returns
809 <TRUE/> if so
810 @throws SQLException
811 if a database access error occurs.
813 boolean supportsSelectForUpdate() raises (SQLException);
814 //-------------------------------------------------------------------------
816 /** Are stored procedure calls using the stored procedure escape
817 syntax supported?
818 @returns
819 <TRUE/> if so
820 @throws SQLException
821 if a database access error occurs.
823 boolean supportsStoredProcedures() raises (SQLException);
824 //-------------------------------------------------------------------------
826 /** Are subqueries in comparison expressions supported?
827 @returns
828 <TRUE/> if so
829 @throws SQLException
830 if a database access error occurs.
832 boolean supportsSubqueriesInComparisons() raises (SQLException);
833 //-------------------------------------------------------------------------
835 /** Are subqueries in 'exists' expressions supported?
836 @returns
837 <TRUE/> if so
838 @throws SQLException
839 if a database access error occurs.
841 boolean supportsSubqueriesInExists() raises (SQLException);
842 //-------------------------------------------------------------------------
844 /** Are subqueries in 'in' statements supported?
845 @returns
846 <TRUE/> if so
847 @throws SQLException
848 if a database access error occurs.
850 boolean supportsSubqueriesInIns() raises (SQLException);
851 //-------------------------------------------------------------------------
853 /** Are subqueries in quantified expressions supported?
854 @returns
855 <TRUE/> if so
856 @throws SQLException
857 if a database access error occurs.
859 boolean supportsSubqueriesInQuantifieds() raises (SQLException);
860 //-------------------------------------------------------------------------
862 /** Are correlated subqueries supported?
863 @returns
864 <TRUE/> if so
865 @throws SQLException
866 if a database access error occurs.
868 boolean supportsCorrelatedSubqueries() raises (SQLException);
869 //-------------------------------------------------------------------------
871 /** Is SQL UNION supported?
872 @returns
873 <TRUE/> if so
874 @throws SQLException
875 if a database access error occurs.
877 boolean supportsUnion() raises (SQLException);
878 //-------------------------------------------------------------------------
880 /** Is SQL UNION ALL supported?
881 @returns
882 <TRUE/> if so
883 @throws SQLException
884 if a database access error occurs.
886 boolean supportsUnionAll() raises (SQLException);
887 //-------------------------------------------------------------------------
889 /** Can cursors remain open across commits?
890 @returns
891 <TRUE/> if so
892 @throws SQLException
893 if a database access error occurs.
895 boolean supportsOpenCursorsAcrossCommit() raises (SQLException);
896 //-------------------------------------------------------------------------
898 /** Can cursors remain open across rollbacks?
899 @returns
900 <TRUE/> if so
901 @throws SQLException
902 if a database access error occurs.
904 boolean supportsOpenCursorsAcrossRollback() raises (SQLException);
905 //-------------------------------------------------------------------------
907 /** Can statements remain open across commits?
908 @returns
909 <TRUE/> if so
910 @throws SQLException
911 if a database access error occurs.
913 boolean supportsOpenStatementsAcrossCommit() raises (SQLException);
914 //-------------------------------------------------------------------------
916 /** Can statements remain open across rollbacks?
917 @returns
918 <TRUE/> if so
919 @throws SQLException
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
927 @returns
928 <TRUE/> if so
929 @throws SQLException
930 if a database access error occurs.
932 long getMaxBinaryLiteralLength() raises (SQLException);
933 //-------------------------------------------------------------------------
935 /** return the max length for a character literal
936 @returns
937 <TRUE/> if so
938 @throws SQLException
939 if a database access error occurs.
941 long getMaxCharLiteralLength() raises (SQLException);
942 //-------------------------------------------------------------------------
944 /** return the limit on column name length
945 @returns
946 <TRUE/> if so
947 @throws SQLException
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
954 @returns
955 <TRUE/> if so
956 @throws SQLException
957 if a database access error occurs.
959 long getMaxColumnsInGroupBy() raises (SQLException);
960 //-------------------------------------------------------------------------
962 /** return the maximum number of columns allowed in an index
963 @returns
964 <TRUE/> if so
965 @throws SQLException
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
972 @returns
973 <TRUE/> if so
974 @throws SQLException
975 if a database access error occurs.
977 long getMaxColumnsInOrderBy() raises (SQLException);
978 //-------------------------------------------------------------------------
980 /** return the maximum number of columns in a "SELECT" list
981 @returns
982 <TRUE/> if so
983 @throws SQLException
984 if a database access error occurs.
986 long getMaxColumnsInSelect() raises (SQLException);
987 //-------------------------------------------------------------------------
989 /** return the maximum number of columns in a table
990 @returns
991 <TRUE/> if so
992 @throws SQLException
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.
999 @returns
1000 <TRUE/> if so
1001 @throws SQLException
1002 if a database access error occurs.
1004 long getMaxConnections() raises (SQLException);
1005 //-------------------------------------------------------------------------
1007 /** return the maximum cursor name length
1008 @returns
1009 <TRUE/> if so
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)
1017 @returns
1018 <TRUE/> if so
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
1026 @returns
1027 <TRUE/> if so
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
1035 @returns
1036 <TRUE/> if so
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
1044 @returns
1045 <TRUE/> if so
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.
1053 @returns
1054 <TRUE/> if so
1055 @throws SQLException
1056 if a database access error occurs.
1058 long getMaxRowSize() raises (SQLException);
1059 //-------------------------------------------------------------------------
1061 /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
1062 blobs?
1063 @returns
1064 <TRUE/> if so
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
1072 @returns
1073 <TRUE/> if so
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
1081 @returns
1082 <TRUE/> if so
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
1090 @returns
1091 <TRUE/> if so
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
1099 @returns
1100 <TRUE/> if so
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
1108 @returns
1109 <TRUE/> if so
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>.
1119 @returns
1120 <TRUE/> if so
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>
1131 is a noop and the
1132 isolation level is TransactionIsolation_NONE.
1133 @returns
1134 <TRUE/> if so
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?
1142 @returns
1143 <TRUE/> if so
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?
1154 @returns
1155 <TRUE/> if so
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."
1165 --> */
1166 boolean supportsDataDefinitionAndDataManipulationTransactions()
1167 raises (SQLException);
1168 //-------------------------------------------------------------------------
1170 /** are only data manipulation statements within a transaction
1171 supported?
1172 @returns
1173 <TRUE/> if so
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?
1183 @returns
1184 <TRUE/> if so
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?
1193 @returns
1194 <TRUE/> if so
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
1203 catalog.
1207 Only procedure descriptions matching the schema and
1208 procedure name criteria are returned. They are ordered by
1209 PROCEDURE_SCHEM, and PROCEDURE_NAME.
1210 </p>
1212 Each procedure description has the following columns:
1213 </p>
1214 <ol>
1215 <li>
1216 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1217 </li>
1218 <li>
1219 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1220 </li>
1221 <li>
1222 <b>PROCEDURE_NAME</b> string => procedure name
1223 </li>
1224 <li> reserved for future use
1225 </li>
1226 <li> reserved for future use
1227 </li>
1228 <li> reserved for future use
1229 </li>
1230 <li>
1231 <b>REMARKS</b> string => explanatory comment on the procedure
1232 </li>
1233 <li>
1234 <b>PROCEDURE_TYPE</b> short => kind of procedure:
1235 <ul>
1236 <li> UNKNOWN - May return a result
1237 </li>
1238 <li> NO - Does not return a result
1239 </li>
1240 <li> RETURN - Returns a result
1241 </li>
1242 </ul>
1243 </li>
1244 </ol>
1245 @param catalog
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
1251 @returns
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
1261 and result columns.
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.
1270 </p>
1271 <p>Each row in the XResultSet is a parameter description or
1272 column description with the following fields:
1273 </p>
1274 <ol>
1275 <li>
1276 <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>)
1277 </li>
1278 <li>
1279 <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>)
1280 </li>
1281 <li>
1282 <b>PROCEDURE_NAME</b> string => procedure name
1283 </li>
1284 <li>
1285 <b>COLUMN_NAME</b> string => column/parameter name
1286 </li>
1287 <li>
1288 <b>COLUMN_TYPE</b> Short => kind of column/parameter:
1289 <ul>
1290 <li> UNKNOWN - nobody knows
1291 </li>
1292 <li> IN - IN parameter
1293 </li>
1294 <li> INOUT - INOUT parameter
1295 </li>
1296 <li> OUT - OUT parameter
1297 </li>
1298 <li> RETURN - procedure return value
1299 </li>
1300 <li> RESULT - result column in XResultSet
1301 </li>
1302 </ul>
1303 </li>
1304 <li>
1305 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1306 </li>
1307 <li>
1308 <b>TYPE_NAME</b> string => SQL type name, for a UDT type the
1309 type name is fully qualified
1310 </li>
1311 <li>
1312 <b>PRECISION</b> long => precision
1313 </li>
1314 <li>
1315 <b>LENGTH</b> long => length in bytes of data
1316 </li>
1317 <li>
1318 <b>SCALE</b> short => scale
1319 </li>
1320 <li>
1321 <b>RADIX</b> short => radix
1322 </li>
1323 <li>
1324 <b>NULLABLE</b> short => can it contain NULL?
1325 <ul>
1326 <li> NO_NULLS - does not allow NULL values
1327 </li>
1328 <li> NULLABLE - allows NULL values
1329 </li>
1330 <li> NULLABLE_UNKNOWN - nullability unknown
1331 </li>
1332 </ul>
1333 </li>
1334 <li>
1335 <b>REMARKS</b> string => comment describing parameter/column
1336 </li>
1337 </ol>
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.
1342 </p>
1343 @param catalog
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
1351 @returns
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.
1368 </p>
1369 <p>Each table description has the following columns:
1370 </p>
1371 <ol>
1372 <li>
1373 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1374 </li>
1375 <li>
1376 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1377 </li>
1378 <li>
1379 <b>TABLE_NAME</b> string => table name
1380 </li>
1381 <li>
1382 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1383 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1384 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1385 </li>
1386 <li>
1387 <b>REMARKS</b> string => explanatory comment on the table
1388 </li>
1389 </ol>
1391 <b>Note:</b> Some databases may not return information for
1392 all tables.
1393 </p>
1394 @param catalog
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
1400 @param types
1401 a list of table types to include
1402 @returns
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:
1417 </p>
1418 <ol>
1419 <li>
1420 <b>TABLE_SCHEM</b> string => schema name
1421 </li>
1422 </ol>
1423 @returns
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:
1436 </p>
1437 <ol>
1438 <li>
1439 <b>TABLE_CAT</b> string => catalog name
1440 </li>
1441 </ol>
1442 @returns
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:
1455 </p>
1456 <ol>
1457 <li>
1458 <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE",
1459 "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
1460 "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1461 </li>
1462 </ol>
1463 @returns
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.
1478 </p>
1479 <p>Each column description has the following columns:
1480 </p>
1481 <ol>
1482 <li>
1483 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1484 </li>
1485 <li>
1486 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1487 </li>
1488 <li>
1489 <b>TABLE_NAME</b> string => table name
1490 </li>
1491 <li>
1492 <b>COLUMN_NAME</b> string => column name
1493 </li>
1494 <li>
1495 <b>DATA_TYPE</b> short => SQL type from java.sql.Types
1496 </li>
1497 <li>
1498 <b>TYPE_NAME</b> string => Data source dependent type name,
1499 for a UDT the type name is fully qualified
1500 </li>
1501 <li>
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.
1505 </li>
1506 <li>
1507 <b>BUFFER_LENGTH</b> is not used.
1508 </li>
1509 <li>
1510 <b>DECIMAL_DIGITS</b> long => the number of fractional digits
1511 </li>
1512 <li>
1513 <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2)
1514 </li>
1515 <li>
1516 <b>NULLABLE</b> long => is NULL allowed?
1517 <ul>
1518 <li> NO_NULLS - might not allow NULL values
1519 </li>
1520 <li> NULABLE - definitely allows NULL values
1521 </li>
1522 <li> NULLABLE_UNKNOWN - nullability unknown
1523 </li>
1524 </ul>
1525 </li>
1526 <li>
1527 <b>REMARKS</b> string => comment describing column (may be <NULL/>)
1528 </li>
1529 <li>
1530 <b>COLUMN_DEF</b> string => default value (may be <NULL/>)
1531 </li>
1532 <li>
1533 <b>SQL_DATA_TYPE</b> long => unused
1534 </li>
1535 <li>
1536 <b>SQL_DATETIME_SUB</b> long => unused
1537 </li>
1538 <li>
1539 <b>CHAR_OCTET_LENGTH</b> long => for char types the
1540 maximum number of bytes in the column
1541 </li>
1542 <li>
1543 <b>ORDINAL_POSITION</b> int => index of column in table
1544 (starting at 1)
1545 </li>
1546 <li>
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.
1550 </li>
1551 </ol>
1552 @param catalog
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
1560 @returns
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.
1576 </p>
1577 <p>Each privilige description has the following columns:
1578 </p>
1579 <ol>
1580 <li>
1581 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1582 </li>
1583 <li>
1584 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1585 </li>
1586 <li>
1587 <b>TABLE_NAME</b> string => table name
1588 </li>
1589 <li>
1590 <b>COLUMN_NAME</b> string => column name
1591 </li>
1592 <li>
1593 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1594 </li>
1595 <li>
1596 <b>GRANTEE</b> string => grantee of access
1597 </li>
1598 <li>
1599 <b>PRIVILEGE</b> string => name of access (SELECT,
1600 INSERT, UPDATE, REFERENCES, ...)
1601 </li>
1602 <li>
1603 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1604 to grant to others; "NO" if not; <NULL/> if unknown
1605 </li>
1606 </ol>
1607 @param catalog
1608 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1609 @param schema
1610 a schema name ; "" retrieves those without a schema
1611 @param table
1612 a table name
1613 @param columnNamePattern
1614 a column name pattern
1615 @returns
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.
1634 </p>
1635 <p>Each privilige description has the following columns:
1636 </p>
1637 <ol>
1638 <li>
1639 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1640 </li>
1641 <li>
1642 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1643 </li>
1644 <li>
1645 <b>TABLE_NAME</b> string => table name
1646 </li>
1647 <li>
1648 <b>GRANTOR</b> => grantor of access (may be <NULL/>)
1649 </li>
1650 <li>
1651 <b>GRANTEE</b> string => grantee of access
1652 </li>
1653 <li>
1654 <b>PRIVILEGE</b> string => name of access (SELECT,
1655 INSERT, UPDATE, REFERENCES, ...)
1656 </li>
1657 <li>
1658 <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted
1659 to grant to others; "NO" if not; <NULL/> if unknown
1660 </li>
1661 </ol>
1662 @param catalog
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
1668 @returns
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:
1682 </p>
1683 <ol>
1684 <li>
1685 <b>SCOPE</b> short => actual scope of result
1686 <ul>
1687 <li> TEMPORARY - very temporary, while using row
1688 </li>
1689 <li> TRANSACTION - valid for remainder of current transaction
1690 </li>
1691 <li> SESSION - valid for remainder of current session
1692 </li>
1693 </ul>
1694 </li>
1695 <li>
1696 <b>COLUMN_NAME</b> string => column name
1697 </li>
1698 <li>
1699 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1700 </li>
1701 <li>
1702 <b>TYPE_NAME</b> string => Data source dependent type name,
1703 for a UDT the type name is fully qualified
1704 </li>
1705 <li>
1706 <b>COLUMN_SIZE</b> long => precision
1707 </li>
1708 <li>
1709 <b>BUFFER_LENGTH</b> long => not used
1710 </li>
1711 <li>
1712 <b>DECIMAL_DIGITS</b> short => scale
1713 </li>
1714 <li>
1715 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1716 like an Oracle ROWID
1717 <ul>
1718 <li> UNKNOWN - may or may not be pseudo column
1719 </li>
1720 <li> NOT_PSEUDO - is NOT a pseudo column
1721 </li>
1722 <li> PSEUDO - is a pseudo column
1723 </li>
1724 </ul>
1725 </li>
1726 </ol>
1727 @param catalog
1728 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1729 @param schema
1730 a schema name; "" retrieves those without a schema
1731 @param table
1732 a table name
1733 @param scope
1734 the scope of interest; use same values as SCOPE
1735 @param nullable
1736 include columns that are nullable?
1737 @returns
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
1749 unordered.
1752 <p>Each column description has the following columns:
1753 </p>
1754 <ol>
1755 <li>
1756 <b>SCOPE</b> short => is not used
1757 </li>
1758 <li>
1759 <b>COLUMN_NAME</b> string => column name
1760 </li>
1761 <li>
1762 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
1763 </li>
1764 <li>
1765 <b>TYPE_NAME</b> string => Data source dependent type name
1766 </li>
1767 <li>
1768 <b>COLUMN_SIZE</b> long => precision
1769 </li>
1770 <li>
1771 <b>BUFFER_LENGTH</b> long => length of column value in bytes
1772 </li>
1773 <li>
1774 <b>DECIMAL_DIGITS</b> short => scale
1775 </li>
1776 <li>
1777 <b>PSEUDO_COLUMN</b> short => is this a pseudo column
1778 like an Oracle ROWID
1779 <ul>
1780 <li> UNKNOWN - may or may not be pseudo column
1781 </li>
1782 <li> NOT_PSEUDO - is NOT a pseudo column
1783 </li>
1784 <li> PSEUDO - is a pseudo column
1785 </li>
1786 </ul>
1787 </li>
1788 </ol>
1789 @param catalog
1790 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1791 @param schema
1792 a schema name; "" retrieves those without a schema
1793 @param table
1794 a table name
1795 @returns
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:
1809 </p>
1810 <ol>
1811 <li>
1812 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
1813 </li>
1814 <li>
1815 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
1816 </li>
1817 <li>
1818 <b>TABLE_NAME</b> string => table name
1819 </li>
1820 <li>
1821 <b>COLUMN_NAME</b> string => column name
1822 </li>
1823 <li>
1824 <b>KEY_SEQ</b> short => sequence number within primary key
1825 </li>
1826 <li>
1827 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1828 </li>
1829 </ol>
1830 @param catalog
1831 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1832 @param schema
1833 a schema name; "" retrieves those without a schema
1834 @param table
1835 a table name
1836 @returns
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:
1852 </p>
1853 <ol>
1854 <li>
1855 <b>PKTABLE_CAT</b> string => primary key table catalog
1856 being imported (may be <NULL/>)
1857 </li>
1858 <li>
1859 <b>PKTABLE_SCHEM</b> string => primary key table schema
1860 being imported (may be <NULL/>)
1861 </li>
1862 <li>
1863 <b>PKTABLE_NAME</b> string => primary key table name
1864 being imported
1865 </li>
1866 <li>
1867 <b>PKCOLUMN_NAME</b> string => primary key column name
1868 being imported
1869 </li>
1870 <li>
1871 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1872 </li>
1873 <li>
1874 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1875 </li>
1876 <li>
1877 <b>FKTABLE_NAME</b> string => foreign key table name
1878 </li>
1879 <li>
1880 <b>FKCOLUMN_NAME</b> string => foreign key column name
1881 </li>
1882 <li>
1883 <b>KEY_SEQ</b> short => sequence number within foreign key
1884 </li>
1885 <li>
1886 <b>UPDATE_RULE</b> short => What happens to
1887 foreign key when primary is updated:
1888 <ul>
1889 <li> importedNoAction - do not allow update of primary
1890 key if it has been imported
1891 </li>
1892 <li> importedKeyCascade - change imported key to agree
1893 with primary key update
1894 </li>
1895 <li> importedKeySetNull - change imported key to NULL if
1896 its primary key has been updated
1897 </li>
1898 <li> importedKeySetDefault - change imported key to default values
1899 if its primary key has been updated
1900 </li>
1901 <li> importedKeyRestrict - same as importedKeyNoAction
1902 (for ODBC 2.x compatibility)
1903 </li>
1904 </ul>
1905 </li>
1906 <li>
1907 <b>DELETE_RULE</b> short => What happens to
1908 the foreign key when primary is deleted.
1909 <ul>
1910 <li> importedKeyNoAction - do not allow delete of primary
1911 key if it has been imported
1912 </li>
1913 <li> importedKeyCascade - delete rows that import a deleted key
1914 </li>
1915 <li> importedKeySetNull - change imported key to NULL if
1916 its primary key has been deleted
1917 </li>
1918 <li> importedKeyRestrict - same as importedKeyNoAction
1919 (for ODBC 2.x compatibility)
1920 </li>
1921 <li> importedKeySetDefault - change imported key to default if
1922 its primary key has been deleted
1923 </li>
1924 </ul>
1925 </li>
1926 <li>
1927 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
1928 </li>
1929 <li>
1930 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
1931 </li>
1932 <li>
1933 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
1934 constraints be deferred until commit
1935 <ul>
1936 <li> importedKeyInitiallyDeferred - see SQL92 for definition
1937 </li>
1938 <li> importedKeyInitiallyImmediate - see SQL92 for definition
1939 </li>
1940 <li> importedKeyNotDeferrable - see SQL92 for definition
1941 </li>
1942 </ul>
1943 </li>
1944 </ol>
1945 @param catalog
1946 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
1947 @param schema
1948 a schema name; "" retrieves those without a schema
1949 @param table
1950 a table name
1951 @returns
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:
1967 </p>
1968 <ol>
1969 <li>
1970 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
1971 </li>
1972 <li>
1973 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
1974 </li>
1975 <li>
1976 <b>PKTABLE_NAME</b> string => primary key table name
1977 </li>
1978 <li>
1979 <b>PKCOLUMN_NAME</b> string => primary key column name
1980 </li>
1981 <li>
1982 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
1983 being exported (may be <NULL/>)
1984 </li>
1985 <li>
1986 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
1987 being exported (may be <NULL/>)
1988 </li>
1989 <li>
1990 <b>FKTABLE_NAME</b> string => foreign key table name
1991 being exported
1992 </li>
1993 <li>
1994 <b>FKCOLUMN_NAME</b> string => foreign key column name
1995 being exported
1996 </li>
1997 <li>
1998 <b>KEY_SEQ</b> short => sequence number within foreign key
1999 </li>
2000 <li>
2001 <b>UPDATE_RULE</b> short => What happens to
2002 foreign key when primary is updated:
2003 <ul>
2004 <li> NO_ACTION - do not allow update of primary
2005 key if it has been imported
2006 </li>
2007 <li> CASCADE - change imported key to agree
2008 with primary key update
2009 </li>
2010 <li> SET_NULL - change imported key to NULL if
2011 its primary key has been updated
2012 </li>
2013 <li> SET_DEFAULT - change imported key to default values
2014 if its primary key has been updated
2015 </li>
2016 <li> RESTRICT - same as importedKeyNoAction
2017 (for ODBC 2.x compatibility)
2018 </li>
2019 </ul>
2020 </li>
2021 <li>
2022 <b>DELETE_RULE</b> short => What happens to
2023 the foreign key when primary is deleted.
2024 <ul>
2025 <li> NO_ACTION - do not allow delete of primary
2026 key if it has been imported
2027 </li>
2028 <li> CASCADE - delete rows that import a deleted key
2029 </li>
2030 <li> SET_NULL - change imported key to NULL if
2031 its primary key has been deleted
2032 </li>
2033 <li> RESTRICT - same as importedKeyNoAction
2034 (for ODBC 2.x compatibility)
2035 </li>
2036 <li> SET_DEFAULT - change imported key to default if
2037 its primary key has been deleted
2038 </li>
2039 </ul>
2040 </li>
2041 <li>
2042 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2043 </li>
2044 <li>
2045 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2046 </li>
2047 <li>
2048 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2049 constraints be deferred until commit
2050 <ul>
2051 <li> INITIALLY_DEFERRED - see SQL92 for definition
2052 </li>
2053 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2054 </li>
2055 <li> NONE - see SQL92 for definition
2056 </li>
2057 </ul>
2058 </li>
2059 </ol>
2060 @param catalog
2061 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2062 @param schema
2063 a schema name; "" retrieves those without a schema
2064 @param table
2065 a table name
2066 @returns
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
2081 KEY_SEQ.
2084 <p>Each foreign key column description has the following columns:
2085 </p>
2086 <ol>
2087 <li>
2088 <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>)
2089 </li>
2090 <li>
2091 <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>)
2092 </li>
2093 <li>
2094 <b>PKTABLE_NAME</b> string => primary key table name
2095 </li>
2096 <li>
2097 <b>PKCOLUMN_NAME</b> string => primary key column name
2098 </li>
2099 <li>
2100 <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>)
2101 being exported (may be <NULL/>)
2102 </li>
2103 <li>
2104 <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>)
2105 being exported (may be <NULL/>)
2106 </li>
2107 <li>
2108 <b>FKTABLE_NAME</b> string => foreign key table name
2109 being exported
2110 </li>
2111 <li>
2112 <b>FKCOLUMN_NAME</b> string => foreign key column name
2113 being exported
2114 </li>
2115 <li>
2116 <b>KEY_SEQ</b> short => sequence number within foreign key
2117 </li>
2118 <li>
2119 <b>UPDATE_RULE</b> short => What happens to
2120 foreign key when primary is updated:
2121 <ul>
2122 <li> NO_ACTION - do not allow update of primary
2123 key if it has been imported
2124 </li>
2125 <li> CASCADE - change imported key to agree
2126 with primary key update
2127 </li>
2128 <li> SET_NULL - change imported key to NULL if
2129 its primary key has been updated
2130 </li>
2131 <li> SET_DEFAULT - change imported key to default values
2132 if its primary key has been updated
2133 </li>
2134 <li> RESTRICT - same as importedKeyNoAction
2135 (for ODBC 2.x compatibility)
2136 </li>
2137 </ul>
2138 </li>
2139 <li>
2140 <b>DELETE_RULE</b> short => What happens to
2141 the foreign key when primary is deleted.
2142 <ul>
2143 <li> NO_ACTION - do not allow delete of primary
2144 key if it has been imported
2145 </li>
2146 <li> CASCADE - delete rows that import a deleted key
2147 </li>
2148 <li> SET_NULL - change imported key to NULL if
2149 its primary key has been deleted
2150 </li>
2151 <li> RESTRICT - same as importedKeyNoAction
2152 (for ODBC 2.x compatibility)
2153 </li>
2154 <li> SET_DEFAULT - change imported key to default if
2155 its primary key has been deleted
2156 </li>
2157 </ul>
2158 </li>
2159 <li>
2160 <b>FK_NAME</b> string => foreign key name (may be <NULL/>)
2161 </li>
2162 <li>
2163 <b>PK_NAME</b> string => primary key name (may be <NULL/>)
2164 </li>
2165 <li>
2166 <b>DEFERRABILITY</b> short => can the evaluation of foreign key
2167 constraints be deferred until commit
2168 <ul>
2169 <li> INITIALLY_DEFERRED - see SQL92 for definition
2170 </li>
2171 <li> INITIALLY_IMMEDIATE - see SQL92 for definition
2172 </li>
2173 <li> NONE - see SQL92 for definition
2174 </li>
2175 </ul>
2176 </li>
2177 </ol>
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
2182 @param primaryTable
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
2188 @param foreignTable
2189 the table name that imports the key
2190 @returns
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:
2209 </p>
2210 <ol>
2211 <li>
2212 <b>TYPE_NAME</b> string => Type name
2213 </li>
2214 <li>
2215 <b>DATA_TYPE</b> short => SQL data type from java.sql.Types
2216 </li>
2217 <li>
2218 <b>PRECISION</b> long => maximum precision
2219 </li>
2220 <li>
2221 <b>LITERAL_PREFIX</b> string => prefix used to quote a literal
2222 (may be <NULL/>)
2223 </li>
2224 <li>
2225 <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal
2226 (may be <NULL/>)
2227 </li>
2228 <li>
2229 <b>CREATE_PARAMS</b> string => parameters used in creating
2230 the type (may be <NULL/>)
2231 </li>
2232 <li>
2233 <b>NULLABLE</b> short => can you use NULL for this type?
2234 <ul>
2235 <li> NO_NULLS - does not allow NULL values
2236 </li>
2237 <li> NULLABLE - allows NULL values
2238 </li>
2239 <li> NULLABLE_UNKNOWN - nullability unknown
2240 </li>
2241 </ul>
2242 </li>
2243 <li>
2244 <b>CASE_SENSITIVE</b> boolean=> is it case sensitive?
2245 </li>
2246 <li>
2247 <b>SEARCHABLE</b> short => can you use "WHERE" based on this type:
2248 <ul>
2249 <li> NONE - No support
2250 </li>
2251 <li> CHAR - Only supported with WHERE .. LIKE
2252 </li>
2253 <li> BASIC - Supported except for WHERE .. LIKE
2254 </li>
2255 <li> FULL - Supported for all WHERE ..
2256 </li>
2257 </ul>
2258 </li>
2259 <li>
2260 <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned?
2261 </li>
2262 <li>
2263 <b>FIXED_PREC_SCALE</b> boolean => can it be a money value?
2264 </li>
2265 <li>
2266 <b>AUTO_INCREMENT</b> boolean => can it be used for an
2267 auto-increment value?
2268 </li>
2269 <li>
2270 <b>LOCAL_TYPE_NAME</b> string => localized version of type name
2271 (may be <NULL/>)
2272 </li>
2273 <li>
2274 <b>MINIMUM_SCALE</b> short => minimum scale supported
2275 </li>
2276 <li>
2277 <b>MAXIMUM_SCALE</b> short => maximum scale supported
2278 </li>
2279 <li>
2280 <b>SQL_DATA_TYPE</b> long => unused
2281 </li>
2282 <li>
2283 <b>SQL_DATETIME_SUB</b> long => unused
2284 </li>
2285 <li>
2286 <b>NUM_PREC_RADIX</b> long => usually 2 or 10
2287 </li>
2288 </ol>
2289 @returns
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:
2302 </p>
2303 <ol>
2304 <li>
2305 <b>TABLE_CAT</b> string => table catalog (may be <NULL/>)
2306 </li>
2307 <li>
2308 <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>)
2309 </li>
2310 <li>
2311 <b>TABLE_NAME</b> string => table name
2312 </li>
2313 <li>
2314 <b>NON_UNIQUE</b> boolean => Can index values be non-unique?
2315 <FALSE/> when TYPE is tableIndexStatistic
2316 </li>
2317 <li>
2318 <b>INDEX_QUALIFIER</b> string => index catalog (may be <NULL/>);
2319 <NULL/> when TYPE is tableIndexStatistic
2320 </li>
2321 <li>
2322 <b>INDEX_NAME</b> string => index name; <NULL/> when TYPE is
2323 tableIndexStatistic
2324 </li>
2325 <li>
2326 <b>TYPE</b> short => index type:
2327 <ul>
2328 <li> 0 - this identifies table statistics that are
2329 returned in conjuction with a table's index descriptions
2330 </li>
2331 <li> CLUSTERED - this is a clustered index
2332 </li>
2333 <li> HASHED - this is a hashed index
2334 </li>
2335 <li> OTHER - this is some other style of index
2336 </li>
2337 </ul>
2338 </li>
2339 <li>
2340 <b>ORDINAL_POSITION</b> short => column sequence number
2341 within index; zero when TYPE is tableIndexStatistic
2342 </li>
2343 <li>
2344 <b>COLUMN_NAME</b> string => column name; <NULL/> when TYPE is
2345 tableIndexStatistic
2346 </li>
2347 <li>
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
2351 </li>
2352 <li>
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.
2356 </li>
2357 <li>
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.
2361 </li>
2362 <li>
2363 <b>FILTER_CONDITION</b> string => Filter condition, if any.
2364 (may be <NULL/>)
2365 </li>
2366 </ol>
2367 @param catalog
2368 a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria
2369 @param schema
2370 a schema name; "" retrieves those without a schema
2371 @param table
2372 the table name that exports the key
2373 @param unique
2374 when <TRUE/>, return only indices for unique values; when <FALSE/>, return indices regardless of whether unique or not
2375 @param approximate
2376 when <TRUE/>, result is allowed to reflect approximate or out of data values; when <FALSE/>, results are requested to be accurate
2377 @returns
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?
2388 @param setType
2389 defined in
2390 <type scop="com::sun::star::sdbc">ResultSetType</type>
2391 @returns
2392 <TRUE/> if so
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?
2401 @param setType
2402 defined in
2403 <type scop="com::sun::star::sdbc">ResultSetType</type>
2404 @param concurrency
2405 defined in
2406 <type scop="com::sun::star::sdbc">ResultSetConcurrency</type>
2407 @returns
2408 <TRUE/> if so
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.
2418 @param setType
2419 defined in
2420 <type scop="com::sun::star::sdbc">ResultSetType</type>
2421 @returns
2422 <TRUE/> if so
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.
2430 @param setType
2431 defined in
2432 <type scop="com::sun::star::sdbc">ResultSetType</type>
2433 @returns
2434 <TRUE/> if so
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.
2442 @param setType
2443 defined in
2444 <type scop="com::sun::star::sdbc">ResultSetType</type>
2445 @returns
2446 <TRUE/> if so
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.
2454 @param setType
2455 defined in
2456 <type scop="com::sun::star::sdbc">ResultSetType</type>
2457 @returns
2458 <TRUE/> if so
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.
2466 @param setType
2467 defined in
2468 <type scop="com::sun::star::sdbc">ResultSetType</type>
2469 @returns
2470 <TRUE/> if so
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.
2478 @param setType
2479 defined in
2480 <type scop="com::sun::star::sdbc">ResultSetType</type>
2481 @returns
2482 <TRUE/> if so
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
2490 calling the method
2491 <code>XResultSet.rowUpdated</code>.
2492 @param setType
2493 defined in
2494 <type scop="com::sun::star::sdbc">ResultSetType</type>
2495 @returns
2496 <TRUE/> if so
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
2504 calling
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.
2508 @param setType
2509 defined in
2510 <type scop="com::sun::star::sdbc">ResultSetType</type>
2511 @returns
2512 <TRUE/> if so
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
2520 by calling
2521 <member scope="com::sun::star::sdbc">XResultSet::rowInserted().</member>
2522 @param setType
2523 defined in
2524 <type scop="com::sun::star::sdbc">ResultSetType</type>
2525 @returns
2526 <TRUE/> if so
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.
2534 @returns
2535 <TRUE/> if so
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,
2544 or DISTINCT.
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
2551 ignored.
2552 </p>
2553 <p>Each type description has the following columns:
2554 </p>
2555 <ol>
2556 <li>
2557 <b>TYPE_CAT</b> string => the type's catalog (may be <NULL/>)
2558 </li>
2559 <li>
2560 <b>TYPE_SCHEM</b> string => type's schema (may be <NULL/>)
2561 </li>
2562 <li>
2563 <b>TYPE_NAME</b> string => type name
2564 </li>
2565 <li>
2566 <b>CLASS_NAME</b> string => Java class name or service name
2567 </li>
2568 <li>
2569 <b>DATA_TYPE</b> string => type value.
2570 One of OBJECT, STRUCT, or DISTINCT
2571 </li>
2572 <li>
2573 <b>REMARKS</b> string => explanatory comment on the type
2574 </li>
2575 </ol>
2577 <b>Note:</b> If the driver does not support UDTs, an empty
2578 result set is returned.
2579 </p>
2580 @param catalog
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
2586 @param types
2587 a list of user-named types to include (OBJECT, STRUCT, or DISTINCT)
2588 @returns
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.
2599 @returns
2600 the Connection object
2601 @throws SQLException
2602 if a database access error occurs.
2604 XConnection getConnection() raises (SQLException);
2607 //=============================================================================
2609 }; }; }; };
2611 /*===========================================================================
2612 ===========================================================================*/
2613 #endif