1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 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. 14 * 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). 20 * 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. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_sdbc_XDatabaseMetaData_idl__ 28#define __com_sun_star_sdbc_XDatabaseMetaData_idl__ 29 30#ifndef __com_sun_star_uno_XInterface_idl__ 31#include <com/sun/star/uno/XInterface.idl> 32#endif 33 34#ifndef __com_sun_star_sdbc_SQLException_idl__ 35#include <com/sun/star/sdbc/SQLException.idl> 36#endif 37 38 39 module com { module sun { module star { module sdbc { 40 41 published interface XResultSet; 42 published interface XConnection; 43 44/** provides comprehensive information about the database as a whole. 45 46 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> 59 . 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> 72 A 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> 78 */ 79published interface XDatabaseMetaData: com::sun::star::uno::XInterface 80{ 81 82 /** Can all the procedures returned by getProcedures be called by the 83 current user? 84 85 @return 86 <TRUE/> 87 if the user is allowed to call all procedures returned by getProcedures 88 otherwise 89 <FALSE/> 90 . 91 @throws SQLException 92 if a database access error occurs. 93 */ 94 boolean allProceduresAreCallable() raises (SQLException); 95 //------------------------------------------------------------------------- 96 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. 103 */ 104 boolean allTablesAreSelectable() raises (SQLException); 105 //------------------------------------------------------------------------- 106 107 /** returns the URL for the database connection 108 */ 109 string getURL() raises (SQLException); 110 //------------------------------------------------------------------------- 111 112 /** returns the user name from this database connection. 113 */ 114 string getUserName() raises (SQLException); 115 //------------------------------------------------------------------------- 116 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. 122 */ 123 boolean isReadOnly() raises (SQLException); 124 //------------------------------------------------------------------------- 125 126 /** Are NULL values sorted high? 127 @returns 128 <TRUE/> if so 129 @throws SQLException 130 if a database access error occurs. 131 */ 132 boolean nullsAreSortedHigh() raises (SQLException); 133 //------------------------------------------------------------------------- 134 135 /** Are NULL values sorted low? 136 @returns 137 <TRUE/> if so 138 @throws SQLException 139 if a database access error occurs. 140 */ 141 boolean nullsAreSortedLow() raises (SQLException); 142 //------------------------------------------------------------------------- 143 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. 149 */ 150 boolean nullsAreSortedAtStart() raises (SQLException); 151 //------------------------------------------------------------------------- 152 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. 158 */ 159 boolean nullsAreSortedAtEnd() raises (SQLException); 160 //------------------------------------------------------------------------- 161 162 /** returns the name of the database product. 163 */ 164 string getDatabaseProductName() raises (SQLException); 165 //------------------------------------------------------------------------- 166 167 /** returns the version of the database product. 168 */ 169 string getDatabaseProductVersion() raises (SQLException); 170 //------------------------------------------------------------------------- 171 172 /** returns the name of the SDBC driver. 173 */ 174 string getDriverName() raises (SQLException); 175 //------------------------------------------------------------------------- 176 177 /** returns the version number of the SDBC driver. 178 */ 179 string getDriverVersion() raises (SQLException); 180 //------------------------------------------------------------------------- 181 182 /** returns the SDBC driver major version number. 183 */ 184 long getDriverMajorVersion(); 185 //------------------------------------------------------------------------- 186 187 /** returns the SDBC driver minor version number. 188 */ 189 long getDriverMinorVersion(); 190 //------------------------------------------------------------------------- 191 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. 197 */ 198 boolean usesLocalFiles() raises (SQLException); 199 //------------------------------------------------------------------------- 200 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. 206 */ 207 boolean usesLocalFilePerTable() raises (SQLException); 208 //------------------------------------------------------------------------- 209 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. 215 */ 216 boolean supportsMixedCaseIdentifiers() raises (SQLException); 217 //------------------------------------------------------------------------- 218 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. 225 */ 226 boolean storesUpperCaseIdentifiers() raises (SQLException); 227 //------------------------------------------------------------------------- 228 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. 235 */ 236 boolean storesLowerCaseIdentifiers() raises (SQLException); 237 //------------------------------------------------------------------------- 238 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. 245 */ 246 boolean storesMixedCaseIdentifiers() raises (SQLException); 247 //------------------------------------------------------------------------- 248 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. 255 */ 256 boolean supportsMixedCaseQuotedIdentifiers() raises (SQLException); 257 //------------------------------------------------------------------------- 258 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. 265 */ 266 boolean storesUpperCaseQuotedIdentifiers() raises (SQLException); 267 //------------------------------------------------------------------------- 268 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. 275 */ 276 boolean storesLowerCaseQuotedIdentifiers() raises (SQLException); 277 //------------------------------------------------------------------------- 278 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. 285 */ 286 boolean storesMixedCaseQuotedIdentifiers() raises (SQLException); 287 //------------------------------------------------------------------------- 288 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. 295 */ 296 string getIdentifierQuoteString() raises (SQLException); 297 //------------------------------------------------------------------------- 298 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. 305 */ 306 string getSQLKeywords() raises (SQLException); 307 //------------------------------------------------------------------------- 308 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. 316 */ 317 string getNumericFunctions() raises (SQLException); 318 //------------------------------------------------------------------------- 319 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. 327 */ 328 string getStringFunctions() raises (SQLException); 329 //------------------------------------------------------------------------- 330 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. 338 */ 339 string getSystemFunctions() raises (SQLException); 340 //------------------------------------------------------------------------- 341 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. 347 */ 348 string getTimeDateFunctions() raises (SQLException); 349 //------------------------------------------------------------------------- 350 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. 354 355 356 <p> 357 The '_' character represents any single character. 358 </p> 359 <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. 367 */ 368 string getSearchStringEscape() raises (SQLException); 369 //------------------------------------------------------------------------- 370 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. 377 */ 378 string getExtraNameCharacters() raises (SQLException); 379 //------------------------------------------------------------------------- 380 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. 386 */ 387 boolean supportsAlterTableWithAddColumn() raises (SQLException); 388 //------------------------------------------------------------------------- 389 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. 395 */ 396 boolean supportsAlterTableWithDropColumn() raises (SQLException); 397 //------------------------------------------------------------------------- 398 399 /** support the Database column aliasing? 400 401 402 <p> 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. 410 */ 411 boolean supportsColumnAliasing() raises (SQLException); 412 //------------------------------------------------------------------------- 413 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. 419 */ 420 boolean nullPlusNonNullIsNull() raises (SQLException); 421 //------------------------------------------------------------------------- 422 423 /** <TRUE/> 424 , if the Database supports the CONVERT function between SQL types, 425 otherwise 426 <FALSE/> 427 . 428 @returns 429 <TRUE/> if so 430 @throws SQLException 431 if a database access error occurs. 432 */ 433 boolean supportsTypeConversion() raises (SQLException); 434 //------------------------------------------------------------------------- 435 436 /** <TRUE/> 437 , if the Database supports the CONVERT between the given SQL types 438 otherwise 439 <FALSE/> 440 . 441 @returns 442 <TRUE/> if so 443 @throws SQLException 444 if a database access error occurs. 445 */ 446 boolean supportsConvert([in]long fromType, [in]long toType) 447 raises (SQLException); 448 //------------------------------------------------------------------------- 449 450 /** Are table correlation names supported? 451 @returns 452 <TRUE/> if so 453 @throws SQLException 454 if a database access error occurs. 455 */ 456 boolean supportsTableCorrelationNames() raises (SQLException); 457 //------------------------------------------------------------------------- 458 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. 465 */ 466 boolean supportsDifferentTableCorrelationNames() 467 raises (SQLException); 468 //------------------------------------------------------------------------- 469 470 /** Are expressions in "ORDER BY" lists supported? 471 @returns 472 <TRUE/> if so 473 @throws SQLException 474 if a database access error occurs. 475 */ 476 boolean supportsExpressionsInOrderBy() raises (SQLException); 477 //------------------------------------------------------------------------- 478 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. 484 */ 485 boolean supportsOrderByUnrelated() raises (SQLException); 486 //------------------------------------------------------------------------- 487 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. 493 */ 494 boolean supportsGroupBy() raises (SQLException); 495 //------------------------------------------------------------------------- 496 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. 502 */ 503 boolean supportsGroupByUnrelated() raises (SQLException); 504 //------------------------------------------------------------------------- 505 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. 512 */ 513 boolean supportsGroupByBeyondSelect() raises (SQLException); 514 //------------------------------------------------------------------------- 515 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. 521 */ 522 boolean supportsLikeEscapeClause() raises (SQLException); 523 //------------------------------------------------------------------------- 524 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. 530 */ 531 boolean supportsMultipleResultSets() raises (SQLException); 532 //------------------------------------------------------------------------- 533 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. 540 */ 541 boolean supportsMultipleTransactions() raises (SQLException); 542 //------------------------------------------------------------------------- 543 544 /** Can columns be defined as non-nullable? 545 @returns 546 <TRUE/> if so 547 @throws SQLException 548 if a database access error occurs. 549 */ 550 boolean supportsNonNullableColumns() raises (SQLException); 551 //------------------------------------------------------------------------- 552 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. 559 */ 560 boolean supportsMinimumSQLGrammar() raises (SQLException); 561 //------------------------------------------------------------------------- 562 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. 569 */ 570 boolean supportsCoreSQLGrammar() raises (SQLException); 571 //------------------------------------------------------------------------- 572 573 /** 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. 580 */ 581 boolean supportsExtendedSQLGrammar() raises (SQLException); 582 //------------------------------------------------------------------------- 583 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. 589 */ 590 boolean supportsANSI92EntryLevelSQL() raises (SQLException); 591 //------------------------------------------------------------------------- 592 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. 598 */ 599 boolean supportsANSI92IntermediateSQL() raises (SQLException); 600 //------------------------------------------------------------------------- 601 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. 607 */ 608 boolean supportsANSI92FullSQL() raises (SQLException); 609 //------------------------------------------------------------------------- 610 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. 616 */ 617 boolean supportsIntegrityEnhancementFacility() raises (SQLException); 618 //------------------------------------------------------------------------- 619 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. 625 */ 626 boolean supportsOuterJoins() raises (SQLException); 627 //------------------------------------------------------------------------- 628 629 /** @returns 630 <TRUE/>, if full nested outer joins are supported, 631 otherwise <FALSE/>. 632 @throws SQLException 633 if a database access error occurs. 634 */ 635 boolean supportsFullOuterJoins() raises (SQLException); 636 //------------------------------------------------------------------------- 637 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. 644 */ 645 boolean supportsLimitedOuterJoins() raises (SQLException); 646 //------------------------------------------------------------------------- 647 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. 653 */ 654 string getSchemaTerm() raises (SQLException); 655 //------------------------------------------------------------------------- 656 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. 662 */ 663 string getProcedureTerm() raises (SQLException); 664 //------------------------------------------------------------------------- 665 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. 671 */ 672 string getCatalogTerm() raises (SQLException); 673 //------------------------------------------------------------------------- 674 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. 681 */ 682 boolean isCatalogAtStart() raises (SQLException); 683 //------------------------------------------------------------------------- 684 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. 690 */ 691 string getCatalogSeparator() raises (SQLException); 692 //------------------------------------------------------------------------- 693 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. 699 */ 700 boolean supportsSchemasInDataManipulation() raises (SQLException); 701 //------------------------------------------------------------------------- 702 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. 708 */ 709 boolean supportsSchemasInProcedureCalls() raises (SQLException); 710 //------------------------------------------------------------------------- 711 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. 717 */ 718 boolean supportsSchemasInTableDefinitions() raises (SQLException); 719 //------------------------------------------------------------------------- 720 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. 726 */ 727 boolean supportsSchemasInIndexDefinitions() raises (SQLException); 728 //------------------------------------------------------------------------- 729 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. 735 */ 736 boolean supportsSchemasInPrivilegeDefinitions() 737 raises (SQLException); 738 //------------------------------------------------------------------------- 739 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. 745 */ 746 boolean supportsCatalogsInDataManipulation() raises (SQLException); 747 //------------------------------------------------------------------------- 748 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. 754 */ 755 boolean supportsCatalogsInProcedureCalls() raises (SQLException); 756 //------------------------------------------------------------------------- 757 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. 763 */ 764 boolean supportsCatalogsInTableDefinitions() raises (SQLException); 765 //------------------------------------------------------------------------- 766 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. 772 */ 773 boolean supportsCatalogsInIndexDefinitions() raises (SQLException); 774 //------------------------------------------------------------------------- 775 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. 781 */ 782 boolean supportsCatalogsInPrivilegeDefinitions() 783 raises (SQLException); 784 //------------------------------------------------------------------------- 785 786 /** Is positioned DELETE supported? 787 @returns 788 <TRUE/> if so 789 @throws SQLException 790 if a database access error occurs. 791 */ 792 boolean supportsPositionedDelete() raises (SQLException); 793 //------------------------------------------------------------------------- 794 795 /** Is positioned UPDATE supported? 796 @returns 797 <TRUE/> if so 798 @throws SQLException 799 if a database access error occurs. 800 */ 801 boolean supportsPositionedUpdate() raises (SQLException); 802 //------------------------------------------------------------------------- 803 804 /** Is SELECT for UPDATE supported? 805 @returns 806 <TRUE/> if so 807 @throws SQLException 808 if a database access error occurs. 809 */ 810 boolean supportsSelectForUpdate() raises (SQLException); 811 //------------------------------------------------------------------------- 812 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. 819 */ 820 boolean supportsStoredProcedures() raises (SQLException); 821 //------------------------------------------------------------------------- 822 823 /** Are subqueries in comparison expressions supported? 824 @returns 825 <TRUE/> if so 826 @throws SQLException 827 if a database access error occurs. 828 */ 829 boolean supportsSubqueriesInComparisons() raises (SQLException); 830 //------------------------------------------------------------------------- 831 832 /** Are subqueries in 'exists' expressions supported? 833 @returns 834 <TRUE/> if so 835 @throws SQLException 836 if a database access error occurs. 837 */ 838 boolean supportsSubqueriesInExists() raises (SQLException); 839 //------------------------------------------------------------------------- 840 841 /** Are subqueries in 'in' statements supported? 842 @returns 843 <TRUE/> if so 844 @throws SQLException 845 if a database access error occurs. 846 */ 847 boolean supportsSubqueriesInIns() raises (SQLException); 848 //------------------------------------------------------------------------- 849 850 /** Are subqueries in quantified expressions supported? 851 @returns 852 <TRUE/> if so 853 @throws SQLException 854 if a database access error occurs. 855 */ 856 boolean supportsSubqueriesInQuantifieds() raises (SQLException); 857 //------------------------------------------------------------------------- 858 859 /** Are correlated subqueries supported? 860 @returns 861 <TRUE/> if so 862 @throws SQLException 863 if a database access error occurs. 864 */ 865 boolean supportsCorrelatedSubqueries() raises (SQLException); 866 //------------------------------------------------------------------------- 867 868 /** Is SQL UNION supported? 869 @returns 870 <TRUE/> if so 871 @throws SQLException 872 if a database access error occurs. 873 */ 874 boolean supportsUnion() raises (SQLException); 875 //------------------------------------------------------------------------- 876 877 /** Is SQL UNION ALL supported? 878 @returns 879 <TRUE/> if so 880 @throws SQLException 881 if a database access error occurs. 882 */ 883 boolean supportsUnionAll() raises (SQLException); 884 //------------------------------------------------------------------------- 885 886 /** Can cursors remain open across commits? 887 @returns 888 <TRUE/> if so 889 @throws SQLException 890 if a database access error occurs. 891 */ 892 boolean supportsOpenCursorsAcrossCommit() raises (SQLException); 893 //------------------------------------------------------------------------- 894 895 /** Can cursors remain open across rollbacks? 896 @returns 897 <TRUE/> if so 898 @throws SQLException 899 if a database access error occurs. 900 */ 901 boolean supportsOpenCursorsAcrossRollback() raises (SQLException); 902 //------------------------------------------------------------------------- 903 904 /** Can statements remain open across commits? 905 @returns 906 <TRUE/> if so 907 @throws SQLException 908 if a database access error occurs. 909 */ 910 boolean supportsOpenStatementsAcrossCommit() raises (SQLException); 911 //------------------------------------------------------------------------- 912 913 /** Can statements remain open across rollbacks? 914 @returns 915 <TRUE/> if so 916 @throws SQLException 917 if a database access error occurs. 918 */ 919 boolean supportsOpenStatementsAcrossRollback() 920 raises (SQLException); 921 //------------------------------------------------------------------------- 922 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. 928 */ 929 long getMaxBinaryLiteralLength() raises (SQLException); 930 //------------------------------------------------------------------------- 931 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. 937 */ 938 long getMaxCharLiteralLength() raises (SQLException); 939 //------------------------------------------------------------------------- 940 941 /** return the limit on column name length 942 @returns 943 <TRUE/> if so 944 @throws SQLException 945 if a database access error occurs. 946 */ 947 long getMaxColumnNameLength() raises (SQLException); 948 //------------------------------------------------------------------------- 949 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. 955 */ 956 long getMaxColumnsInGroupBy() raises (SQLException); 957 //------------------------------------------------------------------------- 958 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. 964 */ 965 long getMaxColumnsInIndex() raises (SQLException); 966 //------------------------------------------------------------------------- 967 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. 973 */ 974 long getMaxColumnsInOrderBy() raises (SQLException); 975 //------------------------------------------------------------------------- 976 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. 982 */ 983 long getMaxColumnsInSelect() raises (SQLException); 984 //------------------------------------------------------------------------- 985 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. 991 */ 992 long getMaxColumnsInTable() raises (SQLException); 993 //------------------------------------------------------------------------- 994 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. 1000 */ 1001 long getMaxConnections() raises (SQLException); 1002 //------------------------------------------------------------------------- 1003 1004 /** return the maximum cursor name length 1005 @returns 1006 <TRUE/> if so 1007 @throws SQLException 1008 if a database access error occurs. 1009 */ 1010 long getMaxCursorNameLength() raises (SQLException); 1011 //------------------------------------------------------------------------- 1012 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. 1018 */ 1019 long getMaxIndexLength() raises (SQLException); 1020 //------------------------------------------------------------------------- 1021 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. 1027 */ 1028 long getMaxSchemaNameLength() raises (SQLException); 1029 //------------------------------------------------------------------------- 1030 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. 1036 */ 1037 long getMaxProcedureNameLength() raises (SQLException); 1038 //------------------------------------------------------------------------- 1039 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. 1045 */ 1046 long getMaxCatalogNameLength() raises (SQLException); 1047 //------------------------------------------------------------------------- 1048 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. 1054 */ 1055 long getMaxRowSize() raises (SQLException); 1056 //------------------------------------------------------------------------- 1057 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. 1064 */ 1065 boolean doesMaxRowSizeIncludeBlobs() raises (SQLException); 1066 //------------------------------------------------------------------------- 1067 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. 1073 */ 1074 long getMaxStatementLength() raises (SQLException); 1075 //------------------------------------------------------------------------- 1076 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. 1082 */ 1083 long getMaxStatements() raises (SQLException); 1084 //------------------------------------------------------------------------- 1085 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. 1091 */ 1092 long getMaxTableNameLength() raises (SQLException); 1093 //------------------------------------------------------------------------- 1094 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. 1100 */ 1101 long getMaxTablesInSelect() raises (SQLException); 1102 //------------------------------------------------------------------------- 1103 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. 1109 */ 1110 long getMaxUserNameLength() raises (SQLException); 1111 //------------------------------------------------------------------------- 1112 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 1121 */ 1122 long getDefaultTransactionIsolation() raises (SQLException); 1123 //------------------------------------------------------------------------- 1124 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. 1134 */ 1135 boolean supportsTransactions() raises (SQLException); 1136 //------------------------------------------------------------------------- 1137 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 1144 */ 1145 boolean supportsTransactionIsolationLevel([in]long level) 1146 raises (SQLException); 1147 //------------------------------------------------------------------------- 1148 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: 1158 1159 metadata: supportsDataDefinitionAndDataManipulationTransactions 1160 1161 "provides support for both data definition and data manipulation statements within a transaction." 1162 --> */ 1163 boolean supportsDataDefinitionAndDataManipulationTransactions() 1164 raises (SQLException); 1165 //------------------------------------------------------------------------- 1166 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. 1173 */ 1174 boolean supportsDataManipulationTransactionsOnly() 1175 raises (SQLException); 1176 //------------------------------------------------------------------------- 1177 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. 1184 */ 1185 boolean dataDefinitionCausesTransactionCommit() 1186 raises (SQLException); 1187 //------------------------------------------------------------------------- 1188 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. 1194 */ 1195 boolean dataDefinitionIgnoredInTransactions() 1196 raises (SQLException); 1197 //------------------------------------------------------------------------- 1198 1199 /** Gets a description of the stored procedures available in a 1200 catalog. 1201 1202 1203 <p> 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> 1208 <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. 1252 */ 1253 XResultSet getProcedures([in]any catalog, [in]string schemaPattern, 1254 [in]string procedureNamePattern) raises (SQLException); 1255 //------------------------------------------------------------------------- 1256 1257 /** gets a description of a catalog's stored procedure parameters 1258 and result columns. 1259 1260 1261 <p> 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> 1335 <p> 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. 1352 */ 1353 XResultSet getProcedureColumns([in]any catalog, [in]string schemaPattern, 1354 [in]string procedureNamePattern, 1355 [in]string columnNamePattern) 1356 raises (SQLException); 1357 //------------------------------------------------------------------------- 1358 1359 /** gets a description of tables available in a catalog. 1360 1361 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> 1387 <p> 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. 1403 */ 1404 XResultSet getTables([in]any catalog, [in]string schemaPattern, 1405 [in]string tableNamePattern, [in]sequence<string> types) 1406 raises (SQLException); 1407 //------------------------------------------------------------------------- 1408 1409 /** Gets the schema names available in this database. The results 1410 are ordered by schema name. 1411 1412 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. 1424 */ 1425 XResultSet getSchemas() raises (SQLException); 1426 //------------------------------------------------------------------------- 1427 1428 /** gets the catalog names available in this database. The results 1429 are ordered by catalog name. 1430 1431 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. 1443 */ 1444 XResultSet getCatalogs() raises (SQLException); 1445 //------------------------------------------------------------------------- 1446 1447 /** gets the table types available in this database. The results 1448 are ordered by table type. 1449 1450 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. 1464 */ 1465 XResultSet getTableTypes() raises (SQLException); 1466 //------------------------------------------------------------------------- 1467 1468 /** gets a description of table columns available in 1469 the specified catalog. 1470 1471 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. 1561 */ 1562 XResultSet getColumns([in]any catalog, [in]string schemaPattern, 1563 [in]string tableNamePattern, [in]string columnNamePattern) 1564 raises (SQLException); 1565 //------------------------------------------------------------------------- 1566 1567 /** gets a description of the access rights for a table's columns. 1568 1569 1570 <p> 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. 1616 */ 1617 XResultSet getColumnPrivileges([in]any catalog, [in]string schema, 1618 [in]string table, [in]string columnNamePattern) raises (SQLException); 1619 //------------------------------------------------------------------------- 1620 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.) 1626 1627 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. 1669 */ 1670 XResultSet getTablePrivileges([in]any catalog, [in]string schemaPattern, 1671 [in]string tableNamePattern) raises (SQLException); 1672 //------------------------------------------------------------------------- 1673 1674 /** gets a description of a table's optimal set of columns that 1675 uniquely identifies a row. They are ordered by SCOPE. 1676 1677 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. 1738 */ 1739 XResultSet getBestRowIdentifier([in]any catalog, [in]string schema, 1740 [in]string table, [in]long scope, [in] boolean nullable) 1741 raises (SQLException); 1742 //------------------------------------------------------------------------- 1743 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. 1747 1748 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. 1796 */ 1797 XResultSet getVersionColumns([in]any catalog, [in]string schema, 1798 [in]string table) raises (SQLException); 1799 //------------------------------------------------------------------------- 1800 1801 /** gets a description of a table's primary key columns. They 1802 are ordered by COLUMN_NAME. 1803 1804 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. 1837 */ 1838 XResultSet getPrimaryKeys([in]any catalog, [in]string schema, 1839 [in]string table) raises (SQLException); 1840 //------------------------------------------------------------------------- 1841 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. 1846 1847 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. 1952 */ 1953 XResultSet getImportedKeys([in]any catalog, [in]string schema, 1954 [in]string table) raises (SQLException); 1955 //------------------------------------------------------------------------- 1956 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. 1961 1962 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. 2067 */ 2068 XResultSet getExportedKeys([in]any catalog, [in]string schema, 2069 [in]string table) raises (SQLException); 2070 //------------------------------------------------------------------------- 2071 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. 2079 2080 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. 2191 */ 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 //------------------------------------------------------------------------- 2198 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. 2202 2203 2204 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. 2290 */ 2291 XResultSet getTypeInfo() raises (SQLException); 2292 //------------------------------------------------------------------------- 2293 2294 /** gets a description of a table's indices and statistics. They are 2295 ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION. 2296 2297 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. 2378 */ 2379 XResultSet getIndexInfo([in]any catalog, [in]string schema, [in]string table, 2380 [in]boolean unique, [in]boolean approximate) 2381 raises (SQLException); 2382 //------------------------------------------------------------------------- 2383 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. 2392 */ 2393 boolean supportsResultSetType([in]long setType) raises (SQLException); 2394 //------------------------------------------------------------------------- 2395 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. 2408 */ 2409 boolean supportsResultSetConcurrency([in]long setType, 2410 [in]long concurrency) 2411 raises (SQLException); 2412 //------------------------------------------------------------------------- 2413 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. 2422 */ 2423 boolean ownUpdatesAreVisible([in]long setType) raises (SQLException); 2424 //------------------------------------------------------------------------- 2425 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. 2434 */ 2435 boolean ownDeletesAreVisible([in]long setType) raises (SQLException); 2436 //------------------------------------------------------------------------- 2437 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. 2446 */ 2447 boolean ownInsertsAreVisible([in]long setType) raises (SQLException); 2448 //------------------------------------------------------------------------- 2449 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. 2458 */ 2459 boolean othersUpdatesAreVisible([in]long setType) raises (SQLException); 2460 //------------------------------------------------------------------------- 2461 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. 2470 */ 2471 boolean othersDeletesAreVisible([in]long setType) raises (SQLException); 2472 //------------------------------------------------------------------------- 2473 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. 2482 */ 2483 boolean othersInsertsAreVisible([in]long setType) raises (SQLException); 2484 //------------------------------------------------------------------------- 2485 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. 2496 */ 2497 boolean updatesAreDetected([in]long setType) raises (SQLException); 2498 //------------------------------------------------------------------------- 2499 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. 2512 */ 2513 boolean deletesAreDetected([in]long setType) raises (SQLException); 2514 //------------------------------------------------------------------------- 2515 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. 2526 */ 2527 boolean insertsAreDetected([in]long setType) raises (SQLException); 2528 //------------------------------------------------------------------------- 2529 2530 /** indicates whether the driver supports batch updates. 2531 @returns 2532 <TRUE/> if so 2533 @throws SQLException 2534 if a database access error occurs. 2535 */ 2536 boolean supportsBatchUpdates() raises (SQLException); 2537 //------------------------------------------------------------------------- 2538 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. 2542 2543 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> 2573 <p> 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. 2589 */ 2590 XResultSet getUDTs([in]any catalog, [in]string schemaPattern, 2591 [in]string typeNamePattern, [in]sequence<long> types) 2592 raises (SQLException); 2593 //------------------------------------------------------------------------- 2594 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. 2600 */ 2601 XConnection getConnection() raises (SQLException); 2602}; 2603 2604//============================================================================= 2605 2606}; }; }; }; 2607 2608/*=========================================================================== 2609===========================================================================*/ 2610#endif 2611