1*cdf0e10cSrcweir/************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir#ifndef __com_sun_star_sdbc_XDatabaseMetaData_idl__ 28*cdf0e10cSrcweir#define __com_sun_star_sdbc_XDatabaseMetaData_idl__ 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir#ifndef __com_sun_star_uno_XInterface_idl__ 31*cdf0e10cSrcweir#include <com/sun/star/uno/XInterface.idl> 32*cdf0e10cSrcweir#endif 33*cdf0e10cSrcweir 34*cdf0e10cSrcweir#ifndef __com_sun_star_sdbc_SQLException_idl__ 35*cdf0e10cSrcweir#include <com/sun/star/sdbc/SQLException.idl> 36*cdf0e10cSrcweir#endif 37*cdf0e10cSrcweir 38*cdf0e10cSrcweir 39*cdf0e10cSrcweir module com { module sun { module star { module sdbc { 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir published interface XResultSet; 42*cdf0e10cSrcweir published interface XConnection; 43*cdf0e10cSrcweir 44*cdf0e10cSrcweir/** provides comprehensive information about the database as a whole. 45*cdf0e10cSrcweir 46*cdf0e10cSrcweir 47*cdf0e10cSrcweir <p>Many of the methods here return lists of information in 48*cdf0e10cSrcweir the form of 49*cdf0e10cSrcweir <type scope="com::sun::star::sdbc">XResultSet</type> 50*cdf0e10cSrcweir objects. 51*cdf0e10cSrcweir You can use the normal <type scope="com::sun::star::sdbc">XResultSet</type> 52*cdf0e10cSrcweir methods such as 53*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XResultSet::getString()</member> 54*cdf0e10cSrcweir and 55*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XResultSet::getInt()</member> 56*cdf0e10cSrcweir to retrieve the data from these XResultSets. If a given form of 57*cdf0e10cSrcweir metadata is not available, these methods should throw a 58*cdf0e10cSrcweir <type scope="com::sun::star::sdbc">SQLException</type> 59*cdf0e10cSrcweir . 60*cdf0e10cSrcweir That a value of <type scope="com::sun::star::sdbc">XResultSet</type> is <NULL/> 61*cdf0e10cSrcweir can be chaked with the method <member scope="com::sun::star::sdbc">XResultSet::wasNull()</member>. 62*cdf0e10cSrcweir In the text only "(may be <NULL/>)" is mentioned for this case. 63*cdf0e10cSrcweir </p> 64*cdf0e10cSrcweir <p>Some of these methods take arguments that are String patterns. These 65*cdf0e10cSrcweir arguments all have names such as fooPattern. Within a pattern String, "%" 66*cdf0e10cSrcweir means match any substring of 0 or more characters, and "_" means match 67*cdf0e10cSrcweir any one character. Only metadata entries matching the search pattern 68*cdf0e10cSrcweir are returned. If a search pattern argument is set to <VOID/>, 69*cdf0e10cSrcweir that argument's criteria will be dropped from the search. 70*cdf0e10cSrcweir </p> 71*cdf0e10cSrcweir <p> 72*cdf0e10cSrcweir A 73*cdf0e10cSrcweir <type scope="com::sun::star::sdbc">SQLException</type> 74*cdf0e10cSrcweir will be thrown if a driver does not support 75*cdf0e10cSrcweir a meta data method. In the case of methods that return an XResultSet, 76*cdf0e10cSrcweir either an XResultSet (which may be empty) is returned or a 77*cdf0e10cSrcweir SQLException is thrown.</p> 78*cdf0e10cSrcweir */ 79*cdf0e10cSrcweirpublished interface XDatabaseMetaData: com::sun::star::uno::XInterface 80*cdf0e10cSrcweir{ 81*cdf0e10cSrcweir 82*cdf0e10cSrcweir /** Can all the procedures returned by getProcedures be called by the 83*cdf0e10cSrcweir current user? 84*cdf0e10cSrcweir 85*cdf0e10cSrcweir @return 86*cdf0e10cSrcweir <TRUE/> 87*cdf0e10cSrcweir if the user is allowed to call all procedures returned by getProcedures 88*cdf0e10cSrcweir otherwise 89*cdf0e10cSrcweir <FALSE/> 90*cdf0e10cSrcweir . 91*cdf0e10cSrcweir @throws SQLException 92*cdf0e10cSrcweir if a database access error occurs. 93*cdf0e10cSrcweir */ 94*cdf0e10cSrcweir boolean allProceduresAreCallable() raises (SQLException); 95*cdf0e10cSrcweir //------------------------------------------------------------------------- 96*cdf0e10cSrcweir 97*cdf0e10cSrcweir /** Can all the tables returned by getTable be SELECTed by the 98*cdf0e10cSrcweir current user? 99*cdf0e10cSrcweir @returns 100*cdf0e10cSrcweir <TRUE/> if so 101*cdf0e10cSrcweir @throws SQLException 102*cdf0e10cSrcweir if a database access error occurs. 103*cdf0e10cSrcweir */ 104*cdf0e10cSrcweir boolean allTablesAreSelectable() raises (SQLException); 105*cdf0e10cSrcweir //------------------------------------------------------------------------- 106*cdf0e10cSrcweir 107*cdf0e10cSrcweir /** returns the URL for the database connection 108*cdf0e10cSrcweir */ 109*cdf0e10cSrcweir string getURL() raises (SQLException); 110*cdf0e10cSrcweir //------------------------------------------------------------------------- 111*cdf0e10cSrcweir 112*cdf0e10cSrcweir /** returns the user name from this database connection. 113*cdf0e10cSrcweir */ 114*cdf0e10cSrcweir string getUserName() raises (SQLException); 115*cdf0e10cSrcweir //------------------------------------------------------------------------- 116*cdf0e10cSrcweir 117*cdf0e10cSrcweir /** checks if the database in read-only mode. 118*cdf0e10cSrcweir @returns 119*cdf0e10cSrcweir <TRUE/> if so 120*cdf0e10cSrcweir @throws SQLException 121*cdf0e10cSrcweir if a database access error occurs. 122*cdf0e10cSrcweir */ 123*cdf0e10cSrcweir boolean isReadOnly() raises (SQLException); 124*cdf0e10cSrcweir //------------------------------------------------------------------------- 125*cdf0e10cSrcweir 126*cdf0e10cSrcweir /** Are NULL values sorted high? 127*cdf0e10cSrcweir @returns 128*cdf0e10cSrcweir <TRUE/> if so 129*cdf0e10cSrcweir @throws SQLException 130*cdf0e10cSrcweir if a database access error occurs. 131*cdf0e10cSrcweir */ 132*cdf0e10cSrcweir boolean nullsAreSortedHigh() raises (SQLException); 133*cdf0e10cSrcweir //------------------------------------------------------------------------- 134*cdf0e10cSrcweir 135*cdf0e10cSrcweir /** Are NULL values sorted low? 136*cdf0e10cSrcweir @returns 137*cdf0e10cSrcweir <TRUE/> if so 138*cdf0e10cSrcweir @throws SQLException 139*cdf0e10cSrcweir if a database access error occurs. 140*cdf0e10cSrcweir */ 141*cdf0e10cSrcweir boolean nullsAreSortedLow() raises (SQLException); 142*cdf0e10cSrcweir //------------------------------------------------------------------------- 143*cdf0e10cSrcweir 144*cdf0e10cSrcweir /** Are NULL values sorted at the start regardless of sort order? 145*cdf0e10cSrcweir @returns 146*cdf0e10cSrcweir <TRUE/> if so 147*cdf0e10cSrcweir @throws SQLException 148*cdf0e10cSrcweir if a database access error occurs. 149*cdf0e10cSrcweir */ 150*cdf0e10cSrcweir boolean nullsAreSortedAtStart() raises (SQLException); 151*cdf0e10cSrcweir //------------------------------------------------------------------------- 152*cdf0e10cSrcweir 153*cdf0e10cSrcweir /** Are NULL values sorted at the end, regardless of sort order? 154*cdf0e10cSrcweir @returns 155*cdf0e10cSrcweir <TRUE/> if so 156*cdf0e10cSrcweir @throws SQLException 157*cdf0e10cSrcweir if a database access error occurs. 158*cdf0e10cSrcweir */ 159*cdf0e10cSrcweir boolean nullsAreSortedAtEnd() raises (SQLException); 160*cdf0e10cSrcweir //------------------------------------------------------------------------- 161*cdf0e10cSrcweir 162*cdf0e10cSrcweir /** returns the name of the database product. 163*cdf0e10cSrcweir */ 164*cdf0e10cSrcweir string getDatabaseProductName() raises (SQLException); 165*cdf0e10cSrcweir //------------------------------------------------------------------------- 166*cdf0e10cSrcweir 167*cdf0e10cSrcweir /** returns the version of the database product. 168*cdf0e10cSrcweir */ 169*cdf0e10cSrcweir string getDatabaseProductVersion() raises (SQLException); 170*cdf0e10cSrcweir //------------------------------------------------------------------------- 171*cdf0e10cSrcweir 172*cdf0e10cSrcweir /** returns the name of the SDBC driver. 173*cdf0e10cSrcweir */ 174*cdf0e10cSrcweir string getDriverName() raises (SQLException); 175*cdf0e10cSrcweir //------------------------------------------------------------------------- 176*cdf0e10cSrcweir 177*cdf0e10cSrcweir /** returns the version number of the SDBC driver. 178*cdf0e10cSrcweir */ 179*cdf0e10cSrcweir string getDriverVersion() raises (SQLException); 180*cdf0e10cSrcweir //------------------------------------------------------------------------- 181*cdf0e10cSrcweir 182*cdf0e10cSrcweir /** returns the SDBC driver major version number. 183*cdf0e10cSrcweir */ 184*cdf0e10cSrcweir long getDriverMajorVersion(); 185*cdf0e10cSrcweir //------------------------------------------------------------------------- 186*cdf0e10cSrcweir 187*cdf0e10cSrcweir /** returns the SDBC driver minor version number. 188*cdf0e10cSrcweir */ 189*cdf0e10cSrcweir long getDriverMinorVersion(); 190*cdf0e10cSrcweir //------------------------------------------------------------------------- 191*cdf0e10cSrcweir 192*cdf0e10cSrcweir /** use the database local files to save the tables. 193*cdf0e10cSrcweir @returns 194*cdf0e10cSrcweir <TRUE/> if so 195*cdf0e10cSrcweir @throws SQLException 196*cdf0e10cSrcweir if a database access error occurs. 197*cdf0e10cSrcweir */ 198*cdf0e10cSrcweir boolean usesLocalFiles() raises (SQLException); 199*cdf0e10cSrcweir //------------------------------------------------------------------------- 200*cdf0e10cSrcweir 201*cdf0e10cSrcweir /** use the database one local file to save for each table. 202*cdf0e10cSrcweir @returns 203*cdf0e10cSrcweir <TRUE/> if so 204*cdf0e10cSrcweir @throws SQLException 205*cdf0e10cSrcweir if a database access error occurs. 206*cdf0e10cSrcweir */ 207*cdf0e10cSrcweir boolean usesLocalFilePerTable() raises (SQLException); 208*cdf0e10cSrcweir //------------------------------------------------------------------------- 209*cdf0e10cSrcweir 210*cdf0e10cSrcweir /** use the database 'mixed case unquoted SQL identifiers' case sensitive. 211*cdf0e10cSrcweir @returns 212*cdf0e10cSrcweir <TRUE/> if so 213*cdf0e10cSrcweir @throws SQLException 214*cdf0e10cSrcweir if a database access error occurs. 215*cdf0e10cSrcweir */ 216*cdf0e10cSrcweir boolean supportsMixedCaseIdentifiers() raises (SQLException); 217*cdf0e10cSrcweir //------------------------------------------------------------------------- 218*cdf0e10cSrcweir 219*cdf0e10cSrcweir /** Does the database treat mixed case unquoted SQL identifiers as 220*cdf0e10cSrcweir case insensitive and store them in upper case? 221*cdf0e10cSrcweir @returns 222*cdf0e10cSrcweir <TRUE/> if so 223*cdf0e10cSrcweir @throws SQLException 224*cdf0e10cSrcweir if a database access error occurs. 225*cdf0e10cSrcweir */ 226*cdf0e10cSrcweir boolean storesUpperCaseIdentifiers() raises (SQLException); 227*cdf0e10cSrcweir //------------------------------------------------------------------------- 228*cdf0e10cSrcweir 229*cdf0e10cSrcweir /** Does the database treat mixed case unquoted SQL identifiers as 230*cdf0e10cSrcweir case insensitive and store them in lower case? 231*cdf0e10cSrcweir @returns 232*cdf0e10cSrcweir <TRUE/> if so 233*cdf0e10cSrcweir @throws SQLException 234*cdf0e10cSrcweir if a database access error occurs. 235*cdf0e10cSrcweir */ 236*cdf0e10cSrcweir boolean storesLowerCaseIdentifiers() raises (SQLException); 237*cdf0e10cSrcweir //------------------------------------------------------------------------- 238*cdf0e10cSrcweir 239*cdf0e10cSrcweir /** Does the database treat mixed case unquoted SQL identifiers as 240*cdf0e10cSrcweir case insensitive and store them in mixed case? 241*cdf0e10cSrcweir @returns 242*cdf0e10cSrcweir <TRUE/> if so 243*cdf0e10cSrcweir @throws SQLException 244*cdf0e10cSrcweir if a database access error occurs. 245*cdf0e10cSrcweir */ 246*cdf0e10cSrcweir boolean storesMixedCaseIdentifiers() raises (SQLException); 247*cdf0e10cSrcweir //------------------------------------------------------------------------- 248*cdf0e10cSrcweir 249*cdf0e10cSrcweir /** Does the database treat mixed case quoted SQL identifiers as 250*cdf0e10cSrcweir case sensitive and as a result store them in mixed case? 251*cdf0e10cSrcweir @returns 252*cdf0e10cSrcweir <TRUE/> if so 253*cdf0e10cSrcweir @throws SQLException 254*cdf0e10cSrcweir if a database access error occurs. 255*cdf0e10cSrcweir */ 256*cdf0e10cSrcweir boolean supportsMixedCaseQuotedIdentifiers() raises (SQLException); 257*cdf0e10cSrcweir //------------------------------------------------------------------------- 258*cdf0e10cSrcweir 259*cdf0e10cSrcweir /** Does the database treat mixed case quoted SQL identifiers as 260*cdf0e10cSrcweir case insensitive and store them in upper case? 261*cdf0e10cSrcweir @returns 262*cdf0e10cSrcweir <TRUE/> if so 263*cdf0e10cSrcweir @throws SQLException 264*cdf0e10cSrcweir if a database access error occurs. 265*cdf0e10cSrcweir */ 266*cdf0e10cSrcweir boolean storesUpperCaseQuotedIdentifiers() raises (SQLException); 267*cdf0e10cSrcweir //------------------------------------------------------------------------- 268*cdf0e10cSrcweir 269*cdf0e10cSrcweir /** Does the database treat mixed case quoted SQL identifiers as 270*cdf0e10cSrcweir case insensitive and store them in lower case? 271*cdf0e10cSrcweir @returns 272*cdf0e10cSrcweir <TRUE/> if so 273*cdf0e10cSrcweir @throws SQLException 274*cdf0e10cSrcweir if a database access error occurs. 275*cdf0e10cSrcweir */ 276*cdf0e10cSrcweir boolean storesLowerCaseQuotedIdentifiers() raises (SQLException); 277*cdf0e10cSrcweir //------------------------------------------------------------------------- 278*cdf0e10cSrcweir 279*cdf0e10cSrcweir /** Does the database treat mixed case quoted SQL identifiers as 280*cdf0e10cSrcweir case insensitive and store them in mixed case? 281*cdf0e10cSrcweir @returns 282*cdf0e10cSrcweir <TRUE/> if so 283*cdf0e10cSrcweir @throws SQLException 284*cdf0e10cSrcweir if a database access error occurs. 285*cdf0e10cSrcweir */ 286*cdf0e10cSrcweir boolean storesMixedCaseQuotedIdentifiers() raises (SQLException); 287*cdf0e10cSrcweir //------------------------------------------------------------------------- 288*cdf0e10cSrcweir 289*cdf0e10cSrcweir /** What's the string used to quote SQL identifiers? 290*cdf0e10cSrcweir This returns a space " " if identifier quoting is not supported. 291*cdf0e10cSrcweir @returns 292*cdf0e10cSrcweir <TRUE/> if so 293*cdf0e10cSrcweir @throws SQLException 294*cdf0e10cSrcweir if a database access error occurs. 295*cdf0e10cSrcweir */ 296*cdf0e10cSrcweir string getIdentifierQuoteString() raises (SQLException); 297*cdf0e10cSrcweir //------------------------------------------------------------------------- 298*cdf0e10cSrcweir 299*cdf0e10cSrcweir /** gets a comma-separated list of all a database's SQL keywords 300*cdf0e10cSrcweir that are NOT also SQL92 keywords. 301*cdf0e10cSrcweir @returns 302*cdf0e10cSrcweir <TRUE/> if so 303*cdf0e10cSrcweir @throws SQLException 304*cdf0e10cSrcweir if a database access error occurs. 305*cdf0e10cSrcweir */ 306*cdf0e10cSrcweir string getSQLKeywords() raises (SQLException); 307*cdf0e10cSrcweir //------------------------------------------------------------------------- 308*cdf0e10cSrcweir 309*cdf0e10cSrcweir /** gets a comma-separated list of math functions. These are the 310*cdf0e10cSrcweir X/Open CLI math function names used in the SDBC function escape 311*cdf0e10cSrcweir clause. 312*cdf0e10cSrcweir @returns 313*cdf0e10cSrcweir <TRUE/> if so 314*cdf0e10cSrcweir @throws SQLException 315*cdf0e10cSrcweir if a database access error occurs. 316*cdf0e10cSrcweir */ 317*cdf0e10cSrcweir string getNumericFunctions() raises (SQLException); 318*cdf0e10cSrcweir //------------------------------------------------------------------------- 319*cdf0e10cSrcweir 320*cdf0e10cSrcweir /** gets a comma-separated list of string functions. These are the 321*cdf0e10cSrcweir X/Open CLI string function names used in the SDBC function escape 322*cdf0e10cSrcweir clause. 323*cdf0e10cSrcweir @returns 324*cdf0e10cSrcweir <TRUE/> if so 325*cdf0e10cSrcweir @throws SQLException 326*cdf0e10cSrcweir if a database access error occurs. 327*cdf0e10cSrcweir */ 328*cdf0e10cSrcweir string getStringFunctions() raises (SQLException); 329*cdf0e10cSrcweir //------------------------------------------------------------------------- 330*cdf0e10cSrcweir 331*cdf0e10cSrcweir /** gets a comma-separated list of system functions. These are the 332*cdf0e10cSrcweir X/Open CLI system function names used in the SDBC function escape 333*cdf0e10cSrcweir clause. 334*cdf0e10cSrcweir @returns 335*cdf0e10cSrcweir <TRUE/> if so 336*cdf0e10cSrcweir @throws SQLException 337*cdf0e10cSrcweir if a database access error occurs. 338*cdf0e10cSrcweir */ 339*cdf0e10cSrcweir string getSystemFunctions() raises (SQLException); 340*cdf0e10cSrcweir //------------------------------------------------------------------------- 341*cdf0e10cSrcweir 342*cdf0e10cSrcweir /** gets a comma-separated list of time and date functions. 343*cdf0e10cSrcweir @returns 344*cdf0e10cSrcweir <TRUE/> if so 345*cdf0e10cSrcweir @throws SQLException 346*cdf0e10cSrcweir if a database access error occurs. 347*cdf0e10cSrcweir */ 348*cdf0e10cSrcweir string getTimeDateFunctions() raises (SQLException); 349*cdf0e10cSrcweir //------------------------------------------------------------------------- 350*cdf0e10cSrcweir 351*cdf0e10cSrcweir /** gets the string that can be used to escape wildcard characters. 352*cdf0e10cSrcweir This is the string that can be used to escape '_' or '%' in 353*cdf0e10cSrcweir the string pattern style catalog search parameters. 354*cdf0e10cSrcweir 355*cdf0e10cSrcweir 356*cdf0e10cSrcweir <p> 357*cdf0e10cSrcweir The '_' character represents any single character. 358*cdf0e10cSrcweir </p> 359*cdf0e10cSrcweir <p> 360*cdf0e10cSrcweir The '%' character represents any sequence of zero or 361*cdf0e10cSrcweir more characters. 362*cdf0e10cSrcweir </p> 363*cdf0e10cSrcweir @returns 364*cdf0e10cSrcweir <TRUE/> if so 365*cdf0e10cSrcweir @throws SQLException 366*cdf0e10cSrcweir if a database access error occurs. 367*cdf0e10cSrcweir */ 368*cdf0e10cSrcweir string getSearchStringEscape() raises (SQLException); 369*cdf0e10cSrcweir //------------------------------------------------------------------------- 370*cdf0e10cSrcweir 371*cdf0e10cSrcweir /** gets all the "extra" characters that can be used in unquoted 372*cdf0e10cSrcweir identifier names (those beyond a-z, A-Z, 0-9 and _). 373*cdf0e10cSrcweir @returns 374*cdf0e10cSrcweir <TRUE/> if so 375*cdf0e10cSrcweir @throws SQLException 376*cdf0e10cSrcweir if a database access error occurs. 377*cdf0e10cSrcweir */ 378*cdf0e10cSrcweir string getExtraNameCharacters() raises (SQLException); 379*cdf0e10cSrcweir //------------------------------------------------------------------------- 380*cdf0e10cSrcweir 381*cdf0e10cSrcweir /** support the Database "ALTER TABLE" with add column? 382*cdf0e10cSrcweir @returns 383*cdf0e10cSrcweir <TRUE/> if so 384*cdf0e10cSrcweir @throws SQLException 385*cdf0e10cSrcweir if a database access error occurs. 386*cdf0e10cSrcweir */ 387*cdf0e10cSrcweir boolean supportsAlterTableWithAddColumn() raises (SQLException); 388*cdf0e10cSrcweir //------------------------------------------------------------------------- 389*cdf0e10cSrcweir 390*cdf0e10cSrcweir /** support the Database "ALTER TABLE" with drop column? 391*cdf0e10cSrcweir @returns 392*cdf0e10cSrcweir <TRUE/> if so 393*cdf0e10cSrcweir @throws SQLException 394*cdf0e10cSrcweir if a database access error occurs. 395*cdf0e10cSrcweir */ 396*cdf0e10cSrcweir boolean supportsAlterTableWithDropColumn() raises (SQLException); 397*cdf0e10cSrcweir //------------------------------------------------------------------------- 398*cdf0e10cSrcweir 399*cdf0e10cSrcweir /** support the Database column aliasing? 400*cdf0e10cSrcweir 401*cdf0e10cSrcweir 402*cdf0e10cSrcweir <p> 403*cdf0e10cSrcweir The SQL AS clause can be used to provide names for 404*cdf0e10cSrcweir computed columns or to provide alias names for columns as required. 405*cdf0e10cSrcweir </p> 406*cdf0e10cSrcweir @returns 407*cdf0e10cSrcweir <TRUE/> if so 408*cdf0e10cSrcweir @throws SQLException 409*cdf0e10cSrcweir if a database access error occurs. 410*cdf0e10cSrcweir */ 411*cdf0e10cSrcweir boolean supportsColumnAliasing() raises (SQLException); 412*cdf0e10cSrcweir //------------------------------------------------------------------------- 413*cdf0e10cSrcweir 414*cdf0e10cSrcweir /** are concatenations between NULL and non-NULL values NULL? 415*cdf0e10cSrcweir @returns 416*cdf0e10cSrcweir <TRUE/> if so 417*cdf0e10cSrcweir @throws SQLException 418*cdf0e10cSrcweir if a database access error occurs. 419*cdf0e10cSrcweir */ 420*cdf0e10cSrcweir boolean nullPlusNonNullIsNull() raises (SQLException); 421*cdf0e10cSrcweir //------------------------------------------------------------------------- 422*cdf0e10cSrcweir 423*cdf0e10cSrcweir /** <TRUE/> 424*cdf0e10cSrcweir , if the Database supports the CONVERT function between SQL types, 425*cdf0e10cSrcweir otherwise 426*cdf0e10cSrcweir <FALSE/> 427*cdf0e10cSrcweir . 428*cdf0e10cSrcweir @returns 429*cdf0e10cSrcweir <TRUE/> if so 430*cdf0e10cSrcweir @throws SQLException 431*cdf0e10cSrcweir if a database access error occurs. 432*cdf0e10cSrcweir */ 433*cdf0e10cSrcweir boolean supportsTypeConversion() raises (SQLException); 434*cdf0e10cSrcweir //------------------------------------------------------------------------- 435*cdf0e10cSrcweir 436*cdf0e10cSrcweir /** <TRUE/> 437*cdf0e10cSrcweir , if the Database supports the CONVERT between the given SQL types 438*cdf0e10cSrcweir otherwise 439*cdf0e10cSrcweir <FALSE/> 440*cdf0e10cSrcweir . 441*cdf0e10cSrcweir @returns 442*cdf0e10cSrcweir <TRUE/> if so 443*cdf0e10cSrcweir @throws SQLException 444*cdf0e10cSrcweir if a database access error occurs. 445*cdf0e10cSrcweir */ 446*cdf0e10cSrcweir boolean supportsConvert([in]long fromType, [in]long toType) 447*cdf0e10cSrcweir raises (SQLException); 448*cdf0e10cSrcweir //------------------------------------------------------------------------- 449*cdf0e10cSrcweir 450*cdf0e10cSrcweir /** Are table correlation names supported? 451*cdf0e10cSrcweir @returns 452*cdf0e10cSrcweir <TRUE/> if so 453*cdf0e10cSrcweir @throws SQLException 454*cdf0e10cSrcweir if a database access error occurs. 455*cdf0e10cSrcweir */ 456*cdf0e10cSrcweir boolean supportsTableCorrelationNames() raises (SQLException); 457*cdf0e10cSrcweir //------------------------------------------------------------------------- 458*cdf0e10cSrcweir 459*cdf0e10cSrcweir /** If table correlation names are supported, are they restricted 460*cdf0e10cSrcweir to be different from the names of the tables? 461*cdf0e10cSrcweir @returns 462*cdf0e10cSrcweir <TRUE/> if so 463*cdf0e10cSrcweir @throws SQLException 464*cdf0e10cSrcweir if a database access error occurs. 465*cdf0e10cSrcweir */ 466*cdf0e10cSrcweir boolean supportsDifferentTableCorrelationNames() 467*cdf0e10cSrcweir raises (SQLException); 468*cdf0e10cSrcweir //------------------------------------------------------------------------- 469*cdf0e10cSrcweir 470*cdf0e10cSrcweir /** Are expressions in "ORDER BY" lists supported? 471*cdf0e10cSrcweir @returns 472*cdf0e10cSrcweir <TRUE/> if so 473*cdf0e10cSrcweir @throws SQLException 474*cdf0e10cSrcweir if a database access error occurs. 475*cdf0e10cSrcweir */ 476*cdf0e10cSrcweir boolean supportsExpressionsInOrderBy() raises (SQLException); 477*cdf0e10cSrcweir //------------------------------------------------------------------------- 478*cdf0e10cSrcweir 479*cdf0e10cSrcweir /** Can an "ORDER BY" clause use columns not in the SELECT statement? 480*cdf0e10cSrcweir @returns 481*cdf0e10cSrcweir <TRUE/> if so 482*cdf0e10cSrcweir @throws SQLException 483*cdf0e10cSrcweir if a database access error occurs. 484*cdf0e10cSrcweir */ 485*cdf0e10cSrcweir boolean supportsOrderByUnrelated() raises (SQLException); 486*cdf0e10cSrcweir //------------------------------------------------------------------------- 487*cdf0e10cSrcweir 488*cdf0e10cSrcweir /** Is some form of "GROUP BY" clause supported? 489*cdf0e10cSrcweir @returns 490*cdf0e10cSrcweir <TRUE/> if so 491*cdf0e10cSrcweir @throws SQLException 492*cdf0e10cSrcweir if a database access error occurs. 493*cdf0e10cSrcweir */ 494*cdf0e10cSrcweir boolean supportsGroupBy() raises (SQLException); 495*cdf0e10cSrcweir //------------------------------------------------------------------------- 496*cdf0e10cSrcweir 497*cdf0e10cSrcweir /** Can a "GROUP BY" clause use columns not in the SELECT? 498*cdf0e10cSrcweir @returns 499*cdf0e10cSrcweir <TRUE/> if so 500*cdf0e10cSrcweir @throws SQLException 501*cdf0e10cSrcweir if a database access error occurs. 502*cdf0e10cSrcweir */ 503*cdf0e10cSrcweir boolean supportsGroupByUnrelated() raises (SQLException); 504*cdf0e10cSrcweir //------------------------------------------------------------------------- 505*cdf0e10cSrcweir 506*cdf0e10cSrcweir /** Can a "GROUP BY" clause add columns not in the SELECT 507*cdf0e10cSrcweir provided it specifies all the columns in the SELECT? 508*cdf0e10cSrcweir @returns 509*cdf0e10cSrcweir <TRUE/> if so 510*cdf0e10cSrcweir @throws SQLException 511*cdf0e10cSrcweir if a database access error occurs. 512*cdf0e10cSrcweir */ 513*cdf0e10cSrcweir boolean supportsGroupByBeyondSelect() raises (SQLException); 514*cdf0e10cSrcweir //------------------------------------------------------------------------- 515*cdf0e10cSrcweir 516*cdf0e10cSrcweir /** Is the escape character in "LIKE" clauses supported? 517*cdf0e10cSrcweir @returns 518*cdf0e10cSrcweir <TRUE/> if so 519*cdf0e10cSrcweir @throws SQLException 520*cdf0e10cSrcweir if a database access error occurs. 521*cdf0e10cSrcweir */ 522*cdf0e10cSrcweir boolean supportsLikeEscapeClause() raises (SQLException); 523*cdf0e10cSrcweir //------------------------------------------------------------------------- 524*cdf0e10cSrcweir 525*cdf0e10cSrcweir /** Are multiple XResultSets from a single execute supported? 526*cdf0e10cSrcweir @returns 527*cdf0e10cSrcweir <TRUE/> if so 528*cdf0e10cSrcweir @throws SQLException 529*cdf0e10cSrcweir if a database access error occurs. 530*cdf0e10cSrcweir */ 531*cdf0e10cSrcweir boolean supportsMultipleResultSets() raises (SQLException); 532*cdf0e10cSrcweir //------------------------------------------------------------------------- 533*cdf0e10cSrcweir 534*cdf0e10cSrcweir /** Can we have multiple transactions open at once (on different 535*cdf0e10cSrcweir connections)? 536*cdf0e10cSrcweir @returns 537*cdf0e10cSrcweir <TRUE/> if so 538*cdf0e10cSrcweir @throws SQLException 539*cdf0e10cSrcweir if a database access error occurs. 540*cdf0e10cSrcweir */ 541*cdf0e10cSrcweir boolean supportsMultipleTransactions() raises (SQLException); 542*cdf0e10cSrcweir //------------------------------------------------------------------------- 543*cdf0e10cSrcweir 544*cdf0e10cSrcweir /** Can columns be defined as non-nullable? 545*cdf0e10cSrcweir @returns 546*cdf0e10cSrcweir <TRUE/> if so 547*cdf0e10cSrcweir @throws SQLException 548*cdf0e10cSrcweir if a database access error occurs. 549*cdf0e10cSrcweir */ 550*cdf0e10cSrcweir boolean supportsNonNullableColumns() raises (SQLException); 551*cdf0e10cSrcweir //------------------------------------------------------------------------- 552*cdf0e10cSrcweir 553*cdf0e10cSrcweir /** <TRUE/>, if the database supports ODBC Minimum SQL grammar, 554*cdf0e10cSrcweir otherwise <FALSE/>. 555*cdf0e10cSrcweir @returns 556*cdf0e10cSrcweir <TRUE/> if so 557*cdf0e10cSrcweir @throws SQLException 558*cdf0e10cSrcweir if a database access error occurs. 559*cdf0e10cSrcweir */ 560*cdf0e10cSrcweir boolean supportsMinimumSQLGrammar() raises (SQLException); 561*cdf0e10cSrcweir //------------------------------------------------------------------------- 562*cdf0e10cSrcweir 563*cdf0e10cSrcweir /** <TRUE/>, if the database supports ODBC Core SQL grammar, 564*cdf0e10cSrcweir otherwise <FALSE/>. 565*cdf0e10cSrcweir @returns 566*cdf0e10cSrcweir <TRUE/> if so 567*cdf0e10cSrcweir @throws SQLException 568*cdf0e10cSrcweir if a database access error occurs. 569*cdf0e10cSrcweir */ 570*cdf0e10cSrcweir boolean supportsCoreSQLGrammar() raises (SQLException); 571*cdf0e10cSrcweir //------------------------------------------------------------------------- 572*cdf0e10cSrcweir 573*cdf0e10cSrcweir /** 574*cdf0e10cSrcweir <TRUE/>, if the database supports ODBC Extended SQL grammar, 575*cdf0e10cSrcweir otherwise <FALSE/>. 576*cdf0e10cSrcweir @returns 577*cdf0e10cSrcweir <TRUE/> if so 578*cdf0e10cSrcweir @throws SQLException 579*cdf0e10cSrcweir if a database access error occurs. 580*cdf0e10cSrcweir */ 581*cdf0e10cSrcweir boolean supportsExtendedSQLGrammar() raises (SQLException); 582*cdf0e10cSrcweir //------------------------------------------------------------------------- 583*cdf0e10cSrcweir 584*cdf0e10cSrcweir /** @returns 585*cdf0e10cSrcweir <TRUE/>, if the database supports ANSI92 entry level SQL grammar, 586*cdf0e10cSrcweir otherwise <FALSE/>. 587*cdf0e10cSrcweir @throws SQLException 588*cdf0e10cSrcweir if a database access error occurs. 589*cdf0e10cSrcweir */ 590*cdf0e10cSrcweir boolean supportsANSI92EntryLevelSQL() raises (SQLException); 591*cdf0e10cSrcweir //------------------------------------------------------------------------- 592*cdf0e10cSrcweir 593*cdf0e10cSrcweir /** @returns 594*cdf0e10cSrcweir <TRUE/>, if the database supports ANSI92 intermediate SQL grammar, 595*cdf0e10cSrcweir otherwise <FALSE/>. 596*cdf0e10cSrcweir @throws SQLException 597*cdf0e10cSrcweir if a database access error occurs. 598*cdf0e10cSrcweir */ 599*cdf0e10cSrcweir boolean supportsANSI92IntermediateSQL() raises (SQLException); 600*cdf0e10cSrcweir //------------------------------------------------------------------------- 601*cdf0e10cSrcweir 602*cdf0e10cSrcweir /** @returns 603*cdf0e10cSrcweir <TRUE/>, if the database supports ANSI92 full SQL grammar, 604*cdf0e10cSrcweir otherwise <FALSE/>. 605*cdf0e10cSrcweir @throws SQLException 606*cdf0e10cSrcweir if a database access error occurs. 607*cdf0e10cSrcweir */ 608*cdf0e10cSrcweir boolean supportsANSI92FullSQL() raises (SQLException); 609*cdf0e10cSrcweir //------------------------------------------------------------------------- 610*cdf0e10cSrcweir 611*cdf0e10cSrcweir /** returns 612*cdf0e10cSrcweir <TRUE/>, if the Database supports SQL Integrity Enhancement Facility, 613*cdf0e10cSrcweir otherwise <FALSE/>. 614*cdf0e10cSrcweir @throws SQLException 615*cdf0e10cSrcweir if a database access error occurs. 616*cdf0e10cSrcweir */ 617*cdf0e10cSrcweir boolean supportsIntegrityEnhancementFacility() raises (SQLException); 618*cdf0e10cSrcweir //------------------------------------------------------------------------- 619*cdf0e10cSrcweir 620*cdf0e10cSrcweir /** @returns 621*cdf0e10cSrcweir <TRUE/>, if some form of outer join is supported, 622*cdf0e10cSrcweir otherwise <FALSE/>. 623*cdf0e10cSrcweir @throws SQLException 624*cdf0e10cSrcweir if a database access error occurs. 625*cdf0e10cSrcweir */ 626*cdf0e10cSrcweir boolean supportsOuterJoins() raises (SQLException); 627*cdf0e10cSrcweir //------------------------------------------------------------------------- 628*cdf0e10cSrcweir 629*cdf0e10cSrcweir /** @returns 630*cdf0e10cSrcweir <TRUE/>, if full nested outer joins are supported, 631*cdf0e10cSrcweir otherwise <FALSE/>. 632*cdf0e10cSrcweir @throws SQLException 633*cdf0e10cSrcweir if a database access error occurs. 634*cdf0e10cSrcweir */ 635*cdf0e10cSrcweir boolean supportsFullOuterJoins() raises (SQLException); 636*cdf0e10cSrcweir //------------------------------------------------------------------------- 637*cdf0e10cSrcweir 638*cdf0e10cSrcweir /** @returns 639*cdf0e10cSrcweir <TRUE/>, if there is limited support for outer joins. 640*cdf0e10cSrcweir (This will be <TRUE/> if supportFullOuterJoins is <TRUE/>.) 641*cdf0e10cSrcweir <FALSE/> is returned otherwise. 642*cdf0e10cSrcweir @throws SQLException 643*cdf0e10cSrcweir if a database access error occurs. 644*cdf0e10cSrcweir */ 645*cdf0e10cSrcweir boolean supportsLimitedOuterJoins() raises (SQLException); 646*cdf0e10cSrcweir //------------------------------------------------------------------------- 647*cdf0e10cSrcweir 648*cdf0e10cSrcweir /** return the database vendor's preferred term for "schema" 649*cdf0e10cSrcweir @returns 650*cdf0e10cSrcweir <TRUE/> if so 651*cdf0e10cSrcweir @throws SQLException 652*cdf0e10cSrcweir if a database access error occurs. 653*cdf0e10cSrcweir */ 654*cdf0e10cSrcweir string getSchemaTerm() raises (SQLException); 655*cdf0e10cSrcweir //------------------------------------------------------------------------- 656*cdf0e10cSrcweir 657*cdf0e10cSrcweir /** return the database vendor's preferred term for "procedure" 658*cdf0e10cSrcweir @returns 659*cdf0e10cSrcweir <TRUE/> if so 660*cdf0e10cSrcweir @throws SQLException 661*cdf0e10cSrcweir if a database access error occurs. 662*cdf0e10cSrcweir */ 663*cdf0e10cSrcweir string getProcedureTerm() raises (SQLException); 664*cdf0e10cSrcweir //------------------------------------------------------------------------- 665*cdf0e10cSrcweir 666*cdf0e10cSrcweir /** return the database vendor's preferred term for "catalog" 667*cdf0e10cSrcweir @returns 668*cdf0e10cSrcweir <TRUE/> if so 669*cdf0e10cSrcweir @throws SQLException 670*cdf0e10cSrcweir if a database access error occurs. 671*cdf0e10cSrcweir */ 672*cdf0e10cSrcweir string getCatalogTerm() raises (SQLException); 673*cdf0e10cSrcweir //------------------------------------------------------------------------- 674*cdf0e10cSrcweir 675*cdf0e10cSrcweir /** Does a catalog appear at the start of a qualified table name? 676*cdf0e10cSrcweir (Otherwise it appears at the end) 677*cdf0e10cSrcweir @returns 678*cdf0e10cSrcweir <TRUE/> if so 679*cdf0e10cSrcweir @throws SQLException 680*cdf0e10cSrcweir if a database access error occurs. 681*cdf0e10cSrcweir */ 682*cdf0e10cSrcweir boolean isCatalogAtStart() raises (SQLException); 683*cdf0e10cSrcweir //------------------------------------------------------------------------- 684*cdf0e10cSrcweir 685*cdf0e10cSrcweir /** return the separator between catalog and table name 686*cdf0e10cSrcweir @returns 687*cdf0e10cSrcweir <TRUE/> if so 688*cdf0e10cSrcweir @throws SQLException 689*cdf0e10cSrcweir if a database access error occurs. 690*cdf0e10cSrcweir */ 691*cdf0e10cSrcweir string getCatalogSeparator() raises (SQLException); 692*cdf0e10cSrcweir //------------------------------------------------------------------------- 693*cdf0e10cSrcweir 694*cdf0e10cSrcweir /** Can a schema name be used in a data manipulation statement? 695*cdf0e10cSrcweir @returns 696*cdf0e10cSrcweir <TRUE/> if so 697*cdf0e10cSrcweir @throws SQLException 698*cdf0e10cSrcweir if a database access error occurs. 699*cdf0e10cSrcweir */ 700*cdf0e10cSrcweir boolean supportsSchemasInDataManipulation() raises (SQLException); 701*cdf0e10cSrcweir //------------------------------------------------------------------------- 702*cdf0e10cSrcweir 703*cdf0e10cSrcweir /** Can a schema name be used in a procedure call statement? 704*cdf0e10cSrcweir @returns 705*cdf0e10cSrcweir <TRUE/> if so 706*cdf0e10cSrcweir @throws SQLException 707*cdf0e10cSrcweir if a database access error occurs. 708*cdf0e10cSrcweir */ 709*cdf0e10cSrcweir boolean supportsSchemasInProcedureCalls() raises (SQLException); 710*cdf0e10cSrcweir //------------------------------------------------------------------------- 711*cdf0e10cSrcweir 712*cdf0e10cSrcweir /** Can a schema name be used in a table definition statement? 713*cdf0e10cSrcweir @returns 714*cdf0e10cSrcweir <TRUE/> if so 715*cdf0e10cSrcweir @throws SQLException 716*cdf0e10cSrcweir if a database access error occurs. 717*cdf0e10cSrcweir */ 718*cdf0e10cSrcweir boolean supportsSchemasInTableDefinitions() raises (SQLException); 719*cdf0e10cSrcweir //------------------------------------------------------------------------- 720*cdf0e10cSrcweir 721*cdf0e10cSrcweir /** Can a schema name be used in an index definition statement? 722*cdf0e10cSrcweir @returns 723*cdf0e10cSrcweir <TRUE/> if so 724*cdf0e10cSrcweir @throws SQLException 725*cdf0e10cSrcweir if a database access error occurs. 726*cdf0e10cSrcweir */ 727*cdf0e10cSrcweir boolean supportsSchemasInIndexDefinitions() raises (SQLException); 728*cdf0e10cSrcweir //------------------------------------------------------------------------- 729*cdf0e10cSrcweir 730*cdf0e10cSrcweir /** Can a schema name be used in a privilege definition statement? 731*cdf0e10cSrcweir @returns 732*cdf0e10cSrcweir <TRUE/> if so 733*cdf0e10cSrcweir @throws SQLException 734*cdf0e10cSrcweir if a database access error occurs. 735*cdf0e10cSrcweir */ 736*cdf0e10cSrcweir boolean supportsSchemasInPrivilegeDefinitions() 737*cdf0e10cSrcweir raises (SQLException); 738*cdf0e10cSrcweir //------------------------------------------------------------------------- 739*cdf0e10cSrcweir 740*cdf0e10cSrcweir /** Can a catalog name be used in a data manipulation statement? 741*cdf0e10cSrcweir @returns 742*cdf0e10cSrcweir <TRUE/> if so 743*cdf0e10cSrcweir @throws SQLException 744*cdf0e10cSrcweir if a database access error occurs. 745*cdf0e10cSrcweir */ 746*cdf0e10cSrcweir boolean supportsCatalogsInDataManipulation() raises (SQLException); 747*cdf0e10cSrcweir //------------------------------------------------------------------------- 748*cdf0e10cSrcweir 749*cdf0e10cSrcweir /** Can a catalog name be used in a procedure call statement? 750*cdf0e10cSrcweir @returns 751*cdf0e10cSrcweir <TRUE/> if so 752*cdf0e10cSrcweir @throws SQLException 753*cdf0e10cSrcweir if a database access error occurs. 754*cdf0e10cSrcweir */ 755*cdf0e10cSrcweir boolean supportsCatalogsInProcedureCalls() raises (SQLException); 756*cdf0e10cSrcweir //------------------------------------------------------------------------- 757*cdf0e10cSrcweir 758*cdf0e10cSrcweir /** Can a catalog name be used in a table definition statement? 759*cdf0e10cSrcweir @returns 760*cdf0e10cSrcweir <TRUE/> if so 761*cdf0e10cSrcweir @throws SQLException 762*cdf0e10cSrcweir if a database access error occurs. 763*cdf0e10cSrcweir */ 764*cdf0e10cSrcweir boolean supportsCatalogsInTableDefinitions() raises (SQLException); 765*cdf0e10cSrcweir //------------------------------------------------------------------------- 766*cdf0e10cSrcweir 767*cdf0e10cSrcweir /** Can a catalog name be used in an index definition statement? 768*cdf0e10cSrcweir @returns 769*cdf0e10cSrcweir <TRUE/> if so 770*cdf0e10cSrcweir @throws SQLException 771*cdf0e10cSrcweir if a database access error occurs. 772*cdf0e10cSrcweir */ 773*cdf0e10cSrcweir boolean supportsCatalogsInIndexDefinitions() raises (SQLException); 774*cdf0e10cSrcweir //------------------------------------------------------------------------- 775*cdf0e10cSrcweir 776*cdf0e10cSrcweir /** Can a catalog name be used in a privilege definition statement? 777*cdf0e10cSrcweir @returns 778*cdf0e10cSrcweir <TRUE/> if so 779*cdf0e10cSrcweir @throws SQLException 780*cdf0e10cSrcweir if a database access error occurs. 781*cdf0e10cSrcweir */ 782*cdf0e10cSrcweir boolean supportsCatalogsInPrivilegeDefinitions() 783*cdf0e10cSrcweir raises (SQLException); 784*cdf0e10cSrcweir //------------------------------------------------------------------------- 785*cdf0e10cSrcweir 786*cdf0e10cSrcweir /** Is positioned DELETE supported? 787*cdf0e10cSrcweir @returns 788*cdf0e10cSrcweir <TRUE/> if so 789*cdf0e10cSrcweir @throws SQLException 790*cdf0e10cSrcweir if a database access error occurs. 791*cdf0e10cSrcweir */ 792*cdf0e10cSrcweir boolean supportsPositionedDelete() raises (SQLException); 793*cdf0e10cSrcweir //------------------------------------------------------------------------- 794*cdf0e10cSrcweir 795*cdf0e10cSrcweir /** Is positioned UPDATE supported? 796*cdf0e10cSrcweir @returns 797*cdf0e10cSrcweir <TRUE/> if so 798*cdf0e10cSrcweir @throws SQLException 799*cdf0e10cSrcweir if a database access error occurs. 800*cdf0e10cSrcweir */ 801*cdf0e10cSrcweir boolean supportsPositionedUpdate() raises (SQLException); 802*cdf0e10cSrcweir //------------------------------------------------------------------------- 803*cdf0e10cSrcweir 804*cdf0e10cSrcweir /** Is SELECT for UPDATE supported? 805*cdf0e10cSrcweir @returns 806*cdf0e10cSrcweir <TRUE/> if so 807*cdf0e10cSrcweir @throws SQLException 808*cdf0e10cSrcweir if a database access error occurs. 809*cdf0e10cSrcweir */ 810*cdf0e10cSrcweir boolean supportsSelectForUpdate() raises (SQLException); 811*cdf0e10cSrcweir //------------------------------------------------------------------------- 812*cdf0e10cSrcweir 813*cdf0e10cSrcweir /** Are stored procedure calls using the stored procedure escape 814*cdf0e10cSrcweir syntax supported? 815*cdf0e10cSrcweir @returns 816*cdf0e10cSrcweir <TRUE/> if so 817*cdf0e10cSrcweir @throws SQLException 818*cdf0e10cSrcweir if a database access error occurs. 819*cdf0e10cSrcweir */ 820*cdf0e10cSrcweir boolean supportsStoredProcedures() raises (SQLException); 821*cdf0e10cSrcweir //------------------------------------------------------------------------- 822*cdf0e10cSrcweir 823*cdf0e10cSrcweir /** Are subqueries in comparison expressions supported? 824*cdf0e10cSrcweir @returns 825*cdf0e10cSrcweir <TRUE/> if so 826*cdf0e10cSrcweir @throws SQLException 827*cdf0e10cSrcweir if a database access error occurs. 828*cdf0e10cSrcweir */ 829*cdf0e10cSrcweir boolean supportsSubqueriesInComparisons() raises (SQLException); 830*cdf0e10cSrcweir //------------------------------------------------------------------------- 831*cdf0e10cSrcweir 832*cdf0e10cSrcweir /** Are subqueries in 'exists' expressions supported? 833*cdf0e10cSrcweir @returns 834*cdf0e10cSrcweir <TRUE/> if so 835*cdf0e10cSrcweir @throws SQLException 836*cdf0e10cSrcweir if a database access error occurs. 837*cdf0e10cSrcweir */ 838*cdf0e10cSrcweir boolean supportsSubqueriesInExists() raises (SQLException); 839*cdf0e10cSrcweir //------------------------------------------------------------------------- 840*cdf0e10cSrcweir 841*cdf0e10cSrcweir /** Are subqueries in 'in' statements supported? 842*cdf0e10cSrcweir @returns 843*cdf0e10cSrcweir <TRUE/> if so 844*cdf0e10cSrcweir @throws SQLException 845*cdf0e10cSrcweir if a database access error occurs. 846*cdf0e10cSrcweir */ 847*cdf0e10cSrcweir boolean supportsSubqueriesInIns() raises (SQLException); 848*cdf0e10cSrcweir //------------------------------------------------------------------------- 849*cdf0e10cSrcweir 850*cdf0e10cSrcweir /** Are subqueries in quantified expressions supported? 851*cdf0e10cSrcweir @returns 852*cdf0e10cSrcweir <TRUE/> if so 853*cdf0e10cSrcweir @throws SQLException 854*cdf0e10cSrcweir if a database access error occurs. 855*cdf0e10cSrcweir */ 856*cdf0e10cSrcweir boolean supportsSubqueriesInQuantifieds() raises (SQLException); 857*cdf0e10cSrcweir //------------------------------------------------------------------------- 858*cdf0e10cSrcweir 859*cdf0e10cSrcweir /** Are correlated subqueries supported? 860*cdf0e10cSrcweir @returns 861*cdf0e10cSrcweir <TRUE/> if so 862*cdf0e10cSrcweir @throws SQLException 863*cdf0e10cSrcweir if a database access error occurs. 864*cdf0e10cSrcweir */ 865*cdf0e10cSrcweir boolean supportsCorrelatedSubqueries() raises (SQLException); 866*cdf0e10cSrcweir //------------------------------------------------------------------------- 867*cdf0e10cSrcweir 868*cdf0e10cSrcweir /** Is SQL UNION supported? 869*cdf0e10cSrcweir @returns 870*cdf0e10cSrcweir <TRUE/> if so 871*cdf0e10cSrcweir @throws SQLException 872*cdf0e10cSrcweir if a database access error occurs. 873*cdf0e10cSrcweir */ 874*cdf0e10cSrcweir boolean supportsUnion() raises (SQLException); 875*cdf0e10cSrcweir //------------------------------------------------------------------------- 876*cdf0e10cSrcweir 877*cdf0e10cSrcweir /** Is SQL UNION ALL supported? 878*cdf0e10cSrcweir @returns 879*cdf0e10cSrcweir <TRUE/> if so 880*cdf0e10cSrcweir @throws SQLException 881*cdf0e10cSrcweir if a database access error occurs. 882*cdf0e10cSrcweir */ 883*cdf0e10cSrcweir boolean supportsUnionAll() raises (SQLException); 884*cdf0e10cSrcweir //------------------------------------------------------------------------- 885*cdf0e10cSrcweir 886*cdf0e10cSrcweir /** Can cursors remain open across commits? 887*cdf0e10cSrcweir @returns 888*cdf0e10cSrcweir <TRUE/> if so 889*cdf0e10cSrcweir @throws SQLException 890*cdf0e10cSrcweir if a database access error occurs. 891*cdf0e10cSrcweir */ 892*cdf0e10cSrcweir boolean supportsOpenCursorsAcrossCommit() raises (SQLException); 893*cdf0e10cSrcweir //------------------------------------------------------------------------- 894*cdf0e10cSrcweir 895*cdf0e10cSrcweir /** Can cursors remain open across rollbacks? 896*cdf0e10cSrcweir @returns 897*cdf0e10cSrcweir <TRUE/> if so 898*cdf0e10cSrcweir @throws SQLException 899*cdf0e10cSrcweir if a database access error occurs. 900*cdf0e10cSrcweir */ 901*cdf0e10cSrcweir boolean supportsOpenCursorsAcrossRollback() raises (SQLException); 902*cdf0e10cSrcweir //------------------------------------------------------------------------- 903*cdf0e10cSrcweir 904*cdf0e10cSrcweir /** Can statements remain open across commits? 905*cdf0e10cSrcweir @returns 906*cdf0e10cSrcweir <TRUE/> if so 907*cdf0e10cSrcweir @throws SQLException 908*cdf0e10cSrcweir if a database access error occurs. 909*cdf0e10cSrcweir */ 910*cdf0e10cSrcweir boolean supportsOpenStatementsAcrossCommit() raises (SQLException); 911*cdf0e10cSrcweir //------------------------------------------------------------------------- 912*cdf0e10cSrcweir 913*cdf0e10cSrcweir /** Can statements remain open across rollbacks? 914*cdf0e10cSrcweir @returns 915*cdf0e10cSrcweir <TRUE/> if so 916*cdf0e10cSrcweir @throws SQLException 917*cdf0e10cSrcweir if a database access error occurs. 918*cdf0e10cSrcweir */ 919*cdf0e10cSrcweir boolean supportsOpenStatementsAcrossRollback() 920*cdf0e10cSrcweir raises (SQLException); 921*cdf0e10cSrcweir //------------------------------------------------------------------------- 922*cdf0e10cSrcweir 923*cdf0e10cSrcweir /** return the maximal number of hex characters in an inline binary literal 924*cdf0e10cSrcweir @returns 925*cdf0e10cSrcweir <TRUE/> if so 926*cdf0e10cSrcweir @throws SQLException 927*cdf0e10cSrcweir if a database access error occurs. 928*cdf0e10cSrcweir */ 929*cdf0e10cSrcweir long getMaxBinaryLiteralLength() raises (SQLException); 930*cdf0e10cSrcweir //------------------------------------------------------------------------- 931*cdf0e10cSrcweir 932*cdf0e10cSrcweir /** return the max length for a character literal 933*cdf0e10cSrcweir @returns 934*cdf0e10cSrcweir <TRUE/> if so 935*cdf0e10cSrcweir @throws SQLException 936*cdf0e10cSrcweir if a database access error occurs. 937*cdf0e10cSrcweir */ 938*cdf0e10cSrcweir long getMaxCharLiteralLength() raises (SQLException); 939*cdf0e10cSrcweir //------------------------------------------------------------------------- 940*cdf0e10cSrcweir 941*cdf0e10cSrcweir /** return the limit on column name length 942*cdf0e10cSrcweir @returns 943*cdf0e10cSrcweir <TRUE/> if so 944*cdf0e10cSrcweir @throws SQLException 945*cdf0e10cSrcweir if a database access error occurs. 946*cdf0e10cSrcweir */ 947*cdf0e10cSrcweir long getMaxColumnNameLength() raises (SQLException); 948*cdf0e10cSrcweir //------------------------------------------------------------------------- 949*cdf0e10cSrcweir 950*cdf0e10cSrcweir /** return the maximum number of columns in a "GROUP BY" clause 951*cdf0e10cSrcweir @returns 952*cdf0e10cSrcweir <TRUE/> if so 953*cdf0e10cSrcweir @throws SQLException 954*cdf0e10cSrcweir if a database access error occurs. 955*cdf0e10cSrcweir */ 956*cdf0e10cSrcweir long getMaxColumnsInGroupBy() raises (SQLException); 957*cdf0e10cSrcweir //------------------------------------------------------------------------- 958*cdf0e10cSrcweir 959*cdf0e10cSrcweir /** return the maximum number of columns allowed in an index 960*cdf0e10cSrcweir @returns 961*cdf0e10cSrcweir <TRUE/> if so 962*cdf0e10cSrcweir @throws SQLException 963*cdf0e10cSrcweir if a database access error occurs. 964*cdf0e10cSrcweir */ 965*cdf0e10cSrcweir long getMaxColumnsInIndex() raises (SQLException); 966*cdf0e10cSrcweir //------------------------------------------------------------------------- 967*cdf0e10cSrcweir 968*cdf0e10cSrcweir /** return the maximum number of columns in an "ORDER BY" clause 969*cdf0e10cSrcweir @returns 970*cdf0e10cSrcweir <TRUE/> if so 971*cdf0e10cSrcweir @throws SQLException 972*cdf0e10cSrcweir if a database access error occurs. 973*cdf0e10cSrcweir */ 974*cdf0e10cSrcweir long getMaxColumnsInOrderBy() raises (SQLException); 975*cdf0e10cSrcweir //------------------------------------------------------------------------- 976*cdf0e10cSrcweir 977*cdf0e10cSrcweir /** return the maximum number of columns in a "SELECT" list 978*cdf0e10cSrcweir @returns 979*cdf0e10cSrcweir <TRUE/> if so 980*cdf0e10cSrcweir @throws SQLException 981*cdf0e10cSrcweir if a database access error occurs. 982*cdf0e10cSrcweir */ 983*cdf0e10cSrcweir long getMaxColumnsInSelect() raises (SQLException); 984*cdf0e10cSrcweir //------------------------------------------------------------------------- 985*cdf0e10cSrcweir 986*cdf0e10cSrcweir /** return the maximum number of columns in a table 987*cdf0e10cSrcweir @returns 988*cdf0e10cSrcweir <TRUE/> if so 989*cdf0e10cSrcweir @throws SQLException 990*cdf0e10cSrcweir if a database access error occurs. 991*cdf0e10cSrcweir */ 992*cdf0e10cSrcweir long getMaxColumnsInTable() raises (SQLException); 993*cdf0e10cSrcweir //------------------------------------------------------------------------- 994*cdf0e10cSrcweir 995*cdf0e10cSrcweir /** return the number of active connections at a time to this database. 996*cdf0e10cSrcweir @returns 997*cdf0e10cSrcweir <TRUE/> if so 998*cdf0e10cSrcweir @throws SQLException 999*cdf0e10cSrcweir if a database access error occurs. 1000*cdf0e10cSrcweir */ 1001*cdf0e10cSrcweir long getMaxConnections() raises (SQLException); 1002*cdf0e10cSrcweir //------------------------------------------------------------------------- 1003*cdf0e10cSrcweir 1004*cdf0e10cSrcweir /** return the maximum cursor name length 1005*cdf0e10cSrcweir @returns 1006*cdf0e10cSrcweir <TRUE/> if so 1007*cdf0e10cSrcweir @throws SQLException 1008*cdf0e10cSrcweir if a database access error occurs. 1009*cdf0e10cSrcweir */ 1010*cdf0e10cSrcweir long getMaxCursorNameLength() raises (SQLException); 1011*cdf0e10cSrcweir //------------------------------------------------------------------------- 1012*cdf0e10cSrcweir 1013*cdf0e10cSrcweir /** return the maximum length of an index (in bytes) 1014*cdf0e10cSrcweir @returns 1015*cdf0e10cSrcweir <TRUE/> if so 1016*cdf0e10cSrcweir @throws SQLException 1017*cdf0e10cSrcweir if a database access error occurs. 1018*cdf0e10cSrcweir */ 1019*cdf0e10cSrcweir long getMaxIndexLength() raises (SQLException); 1020*cdf0e10cSrcweir //------------------------------------------------------------------------- 1021*cdf0e10cSrcweir 1022*cdf0e10cSrcweir /** return the maximum length allowed for a schema name 1023*cdf0e10cSrcweir @returns 1024*cdf0e10cSrcweir <TRUE/> if so 1025*cdf0e10cSrcweir @throws SQLException 1026*cdf0e10cSrcweir if a database access error occurs. 1027*cdf0e10cSrcweir */ 1028*cdf0e10cSrcweir long getMaxSchemaNameLength() raises (SQLException); 1029*cdf0e10cSrcweir //------------------------------------------------------------------------- 1030*cdf0e10cSrcweir 1031*cdf0e10cSrcweir /** return the maximum length of a procedure name 1032*cdf0e10cSrcweir @returns 1033*cdf0e10cSrcweir <TRUE/> if so 1034*cdf0e10cSrcweir @throws SQLException 1035*cdf0e10cSrcweir if a database access error occurs. 1036*cdf0e10cSrcweir */ 1037*cdf0e10cSrcweir long getMaxProcedureNameLength() raises (SQLException); 1038*cdf0e10cSrcweir //------------------------------------------------------------------------- 1039*cdf0e10cSrcweir 1040*cdf0e10cSrcweir /** return the maximum length of a catalog name 1041*cdf0e10cSrcweir @returns 1042*cdf0e10cSrcweir <TRUE/> if so 1043*cdf0e10cSrcweir @throws SQLException 1044*cdf0e10cSrcweir if a database access error occurs. 1045*cdf0e10cSrcweir */ 1046*cdf0e10cSrcweir long getMaxCatalogNameLength() raises (SQLException); 1047*cdf0e10cSrcweir //------------------------------------------------------------------------- 1048*cdf0e10cSrcweir 1049*cdf0e10cSrcweir /** return the maximum length of a single row. 1050*cdf0e10cSrcweir @returns 1051*cdf0e10cSrcweir <TRUE/> if so 1052*cdf0e10cSrcweir @throws SQLException 1053*cdf0e10cSrcweir if a database access error occurs. 1054*cdf0e10cSrcweir */ 1055*cdf0e10cSrcweir long getMaxRowSize() raises (SQLException); 1056*cdf0e10cSrcweir //------------------------------------------------------------------------- 1057*cdf0e10cSrcweir 1058*cdf0e10cSrcweir /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY 1059*cdf0e10cSrcweir blobs? 1060*cdf0e10cSrcweir @returns 1061*cdf0e10cSrcweir <TRUE/> if so 1062*cdf0e10cSrcweir @throws SQLException 1063*cdf0e10cSrcweir if a database access error occurs. 1064*cdf0e10cSrcweir */ 1065*cdf0e10cSrcweir boolean doesMaxRowSizeIncludeBlobs() raises (SQLException); 1066*cdf0e10cSrcweir //------------------------------------------------------------------------- 1067*cdf0e10cSrcweir 1068*cdf0e10cSrcweir /** return the maximum length of a SQL statement 1069*cdf0e10cSrcweir @returns 1070*cdf0e10cSrcweir <TRUE/> if so 1071*cdf0e10cSrcweir @throws SQLException 1072*cdf0e10cSrcweir if a database access error occurs. 1073*cdf0e10cSrcweir */ 1074*cdf0e10cSrcweir long getMaxStatementLength() raises (SQLException); 1075*cdf0e10cSrcweir //------------------------------------------------------------------------- 1076*cdf0e10cSrcweir 1077*cdf0e10cSrcweir /** return the maximal number of open active statements at one time to this database 1078*cdf0e10cSrcweir @returns 1079*cdf0e10cSrcweir <TRUE/> if so 1080*cdf0e10cSrcweir @throws SQLException 1081*cdf0e10cSrcweir if a database access error occurs. 1082*cdf0e10cSrcweir */ 1083*cdf0e10cSrcweir long getMaxStatements() raises (SQLException); 1084*cdf0e10cSrcweir //------------------------------------------------------------------------- 1085*cdf0e10cSrcweir 1086*cdf0e10cSrcweir /** return the maximum length of a table name 1087*cdf0e10cSrcweir @returns 1088*cdf0e10cSrcweir <TRUE/> if so 1089*cdf0e10cSrcweir @throws SQLException 1090*cdf0e10cSrcweir if a database access error occurs. 1091*cdf0e10cSrcweir */ 1092*cdf0e10cSrcweir long getMaxTableNameLength() raises (SQLException); 1093*cdf0e10cSrcweir //------------------------------------------------------------------------- 1094*cdf0e10cSrcweir 1095*cdf0e10cSrcweir /** return the maximum number of tables in a SELECT statement 1096*cdf0e10cSrcweir @returns 1097*cdf0e10cSrcweir <TRUE/> if so 1098*cdf0e10cSrcweir @throws SQLException 1099*cdf0e10cSrcweir if a database access error occurs. 1100*cdf0e10cSrcweir */ 1101*cdf0e10cSrcweir long getMaxTablesInSelect() raises (SQLException); 1102*cdf0e10cSrcweir //------------------------------------------------------------------------- 1103*cdf0e10cSrcweir 1104*cdf0e10cSrcweir /** return the maximum length of a user name 1105*cdf0e10cSrcweir @returns 1106*cdf0e10cSrcweir <TRUE/> if so 1107*cdf0e10cSrcweir @throws SQLException 1108*cdf0e10cSrcweir if a database access error occurs. 1109*cdf0e10cSrcweir */ 1110*cdf0e10cSrcweir long getMaxUserNameLength() raises (SQLException); 1111*cdf0e10cSrcweir //------------------------------------------------------------------------- 1112*cdf0e10cSrcweir 1113*cdf0e10cSrcweir /** return the database default transaction isolation level. 1114*cdf0e10cSrcweir The values are defined in 1115*cdf0e10cSrcweir <type scope="com::sun::star::sdbc">TransactionIsolation</type>. 1116*cdf0e10cSrcweir @returns 1117*cdf0e10cSrcweir <TRUE/> if so 1118*cdf0e10cSrcweir @throws SQLException 1119*cdf0e10cSrcweir if a database access error occurs. 1120*cdf0e10cSrcweir @see com::sun::star::sdbc::XConnection 1121*cdf0e10cSrcweir */ 1122*cdf0e10cSrcweir long getDefaultTransactionIsolation() raises (SQLException); 1123*cdf0e10cSrcweir //------------------------------------------------------------------------- 1124*cdf0e10cSrcweir 1125*cdf0e10cSrcweir /** support the Database transactions? 1126*cdf0e10cSrcweir If not, invoking the method 1127*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XConnection::commit()</member> 1128*cdf0e10cSrcweir is a noop and the 1129*cdf0e10cSrcweir isolation level is TransactionIsolation_NONE. 1130*cdf0e10cSrcweir @returns 1131*cdf0e10cSrcweir <TRUE/> if so 1132*cdf0e10cSrcweir @throws SQLException 1133*cdf0e10cSrcweir if a database access error occurs. 1134*cdf0e10cSrcweir */ 1135*cdf0e10cSrcweir boolean supportsTransactions() raises (SQLException); 1136*cdf0e10cSrcweir //------------------------------------------------------------------------- 1137*cdf0e10cSrcweir 1138*cdf0e10cSrcweir /** Does this database support the given transaction isolation level? 1139*cdf0e10cSrcweir @returns 1140*cdf0e10cSrcweir <TRUE/> if so 1141*cdf0e10cSrcweir @throws SQLException 1142*cdf0e10cSrcweir if a database access error occurs. 1143*cdf0e10cSrcweir @see com::sun::star::sdbc::Connection 1144*cdf0e10cSrcweir */ 1145*cdf0e10cSrcweir boolean supportsTransactionIsolationLevel([in]long level) 1146*cdf0e10cSrcweir raises (SQLException); 1147*cdf0e10cSrcweir //------------------------------------------------------------------------- 1148*cdf0e10cSrcweir 1149*cdf0e10cSrcweir /** support the Database both data definition and data manipulation statements 1150*cdf0e10cSrcweir within a transaction? 1151*cdf0e10cSrcweir @returns 1152*cdf0e10cSrcweir <TRUE/> if so 1153*cdf0e10cSrcweir @throws SQLException 1154*cdf0e10cSrcweir if a database access error occurs. 1155*cdf0e10cSrcweir<!-- JRH: Unclear on the intent of these many support questions. 1156*cdf0e10cSrcweir If asking, it should state, "Does the Database support both ....? 1157*cdf0e10cSrcweir If declaring, it should state something like the following: 1158*cdf0e10cSrcweir 1159*cdf0e10cSrcweir metadata: supportsDataDefinitionAndDataManipulationTransactions 1160*cdf0e10cSrcweir 1161*cdf0e10cSrcweir "provides support for both data definition and data manipulation statements within a transaction." 1162*cdf0e10cSrcweir --> */ 1163*cdf0e10cSrcweir boolean supportsDataDefinitionAndDataManipulationTransactions() 1164*cdf0e10cSrcweir raises (SQLException); 1165*cdf0e10cSrcweir //------------------------------------------------------------------------- 1166*cdf0e10cSrcweir 1167*cdf0e10cSrcweir /** are only data manipulation statements within a transaction 1168*cdf0e10cSrcweir supported? 1169*cdf0e10cSrcweir @returns 1170*cdf0e10cSrcweir <TRUE/> if so 1171*cdf0e10cSrcweir @throws SQLException 1172*cdf0e10cSrcweir if a database access error occurs. 1173*cdf0e10cSrcweir */ 1174*cdf0e10cSrcweir boolean supportsDataManipulationTransactionsOnly() 1175*cdf0e10cSrcweir raises (SQLException); 1176*cdf0e10cSrcweir //------------------------------------------------------------------------- 1177*cdf0e10cSrcweir 1178*cdf0e10cSrcweir /** does a data definition statement within a transaction force the 1179*cdf0e10cSrcweir transaction to commit? 1180*cdf0e10cSrcweir @returns 1181*cdf0e10cSrcweir <TRUE/> if so 1182*cdf0e10cSrcweir @throws SQLException 1183*cdf0e10cSrcweir if a database access error occurs. 1184*cdf0e10cSrcweir */ 1185*cdf0e10cSrcweir boolean dataDefinitionCausesTransactionCommit() 1186*cdf0e10cSrcweir raises (SQLException); 1187*cdf0e10cSrcweir //------------------------------------------------------------------------- 1188*cdf0e10cSrcweir 1189*cdf0e10cSrcweir /** is a data definition statement within a transaction ignored? 1190*cdf0e10cSrcweir @returns 1191*cdf0e10cSrcweir <TRUE/> if so 1192*cdf0e10cSrcweir @throws SQLException 1193*cdf0e10cSrcweir if a database access error occurs. 1194*cdf0e10cSrcweir */ 1195*cdf0e10cSrcweir boolean dataDefinitionIgnoredInTransactions() 1196*cdf0e10cSrcweir raises (SQLException); 1197*cdf0e10cSrcweir //------------------------------------------------------------------------- 1198*cdf0e10cSrcweir 1199*cdf0e10cSrcweir /** Gets a description of the stored procedures available in a 1200*cdf0e10cSrcweir catalog. 1201*cdf0e10cSrcweir 1202*cdf0e10cSrcweir 1203*cdf0e10cSrcweir <p> 1204*cdf0e10cSrcweir Only procedure descriptions matching the schema and 1205*cdf0e10cSrcweir procedure name criteria are returned. They are ordered by 1206*cdf0e10cSrcweir PROCEDURE_SCHEM, and PROCEDURE_NAME. 1207*cdf0e10cSrcweir </p> 1208*cdf0e10cSrcweir <p> 1209*cdf0e10cSrcweir Each procedure description has the following columns: 1210*cdf0e10cSrcweir </p> 1211*cdf0e10cSrcweir <ol> 1212*cdf0e10cSrcweir <li> 1213*cdf0e10cSrcweir <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>) 1214*cdf0e10cSrcweir </li> 1215*cdf0e10cSrcweir <li> 1216*cdf0e10cSrcweir <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>) 1217*cdf0e10cSrcweir </li> 1218*cdf0e10cSrcweir <li> 1219*cdf0e10cSrcweir <b>PROCEDURE_NAME</b> string => procedure name 1220*cdf0e10cSrcweir </li> 1221*cdf0e10cSrcweir <li> reserved for future use 1222*cdf0e10cSrcweir </li> 1223*cdf0e10cSrcweir <li> reserved for future use 1224*cdf0e10cSrcweir </li> 1225*cdf0e10cSrcweir <li> reserved for future use 1226*cdf0e10cSrcweir </li> 1227*cdf0e10cSrcweir <li> 1228*cdf0e10cSrcweir <b>REMARKS</b> string => explanatory comment on the procedure 1229*cdf0e10cSrcweir </li> 1230*cdf0e10cSrcweir <li> 1231*cdf0e10cSrcweir <b>PROCEDURE_TYPE</b> short => kind of procedure: 1232*cdf0e10cSrcweir <ul> 1233*cdf0e10cSrcweir <li> UNKNOWN - May return a result 1234*cdf0e10cSrcweir </li> 1235*cdf0e10cSrcweir <li> NO - Does not return a result 1236*cdf0e10cSrcweir </li> 1237*cdf0e10cSrcweir <li> RETURN - Returns a result 1238*cdf0e10cSrcweir </li> 1239*cdf0e10cSrcweir </ul> 1240*cdf0e10cSrcweir </li> 1241*cdf0e10cSrcweir </ol> 1242*cdf0e10cSrcweir @param catalog 1243*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1244*cdf0e10cSrcweir @param schemaPattern 1245*cdf0e10cSrcweir a schema name pattern; "" retrieves those without a schema 1246*cdf0e10cSrcweir @param procedureNamePattern 1247*cdf0e10cSrcweir a procedure name pattern 1248*cdf0e10cSrcweir @returns 1249*cdf0e10cSrcweir each row is a procedure description 1250*cdf0e10cSrcweir @throws SQLException 1251*cdf0e10cSrcweir if a database access error occurs. 1252*cdf0e10cSrcweir */ 1253*cdf0e10cSrcweir XResultSet getProcedures([in]any catalog, [in]string schemaPattern, 1254*cdf0e10cSrcweir [in]string procedureNamePattern) raises (SQLException); 1255*cdf0e10cSrcweir //------------------------------------------------------------------------- 1256*cdf0e10cSrcweir 1257*cdf0e10cSrcweir /** gets a description of a catalog's stored procedure parameters 1258*cdf0e10cSrcweir and result columns. 1259*cdf0e10cSrcweir 1260*cdf0e10cSrcweir 1261*cdf0e10cSrcweir <p> 1262*cdf0e10cSrcweir Only descriptions matching the schema, procedure and 1263*cdf0e10cSrcweir parameter name criteria are returned. They are ordered by 1264*cdf0e10cSrcweir PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value, 1265*cdf0e10cSrcweir if any, is first. Next are the parameter descriptions in call 1266*cdf0e10cSrcweir order. The column descriptions follow in column number order. 1267*cdf0e10cSrcweir </p> 1268*cdf0e10cSrcweir <p>Each row in the XResultSet is a parameter description or 1269*cdf0e10cSrcweir column description with the following fields: 1270*cdf0e10cSrcweir </p> 1271*cdf0e10cSrcweir <ol> 1272*cdf0e10cSrcweir <li> 1273*cdf0e10cSrcweir <b>PROCEDURE_CAT</b> string => procedure catalog (may be <NULL/>) 1274*cdf0e10cSrcweir </li> 1275*cdf0e10cSrcweir <li> 1276*cdf0e10cSrcweir <b>PROCEDURE_SCHEM</b> string => procedure schema (may be <NULL/>) 1277*cdf0e10cSrcweir </li> 1278*cdf0e10cSrcweir <li> 1279*cdf0e10cSrcweir <b>PROCEDURE_NAME</b> string => procedure name 1280*cdf0e10cSrcweir </li> 1281*cdf0e10cSrcweir <li> 1282*cdf0e10cSrcweir <b>COLUMN_NAME</b> string => column/parameter name 1283*cdf0e10cSrcweir </li> 1284*cdf0e10cSrcweir <li> 1285*cdf0e10cSrcweir <b>COLUMN_TYPE</b> Short => kind of column/parameter: 1286*cdf0e10cSrcweir <ul> 1287*cdf0e10cSrcweir <li> UNKNOWN - nobody knows 1288*cdf0e10cSrcweir </li> 1289*cdf0e10cSrcweir <li> IN - IN parameter 1290*cdf0e10cSrcweir </li> 1291*cdf0e10cSrcweir <li> INOUT - INOUT parameter 1292*cdf0e10cSrcweir </li> 1293*cdf0e10cSrcweir <li> OUT - OUT parameter 1294*cdf0e10cSrcweir </li> 1295*cdf0e10cSrcweir <li> RETURN - procedure return value 1296*cdf0e10cSrcweir </li> 1297*cdf0e10cSrcweir <li> RESULT - result column in XResultSet 1298*cdf0e10cSrcweir </li> 1299*cdf0e10cSrcweir </ul> 1300*cdf0e10cSrcweir </li> 1301*cdf0e10cSrcweir <li> 1302*cdf0e10cSrcweir <b>DATA_TYPE</b> short => SQL type from java.sql.Types 1303*cdf0e10cSrcweir </li> 1304*cdf0e10cSrcweir <li> 1305*cdf0e10cSrcweir <b>TYPE_NAME</b> string => SQL type name, for a UDT type the 1306*cdf0e10cSrcweir type name is fully qualified 1307*cdf0e10cSrcweir </li> 1308*cdf0e10cSrcweir <li> 1309*cdf0e10cSrcweir <b>PRECISION</b> long => precision 1310*cdf0e10cSrcweir </li> 1311*cdf0e10cSrcweir <li> 1312*cdf0e10cSrcweir <b>LENGTH</b> long => length in bytes of data 1313*cdf0e10cSrcweir </li> 1314*cdf0e10cSrcweir <li> 1315*cdf0e10cSrcweir <b>SCALE</b> short => scale 1316*cdf0e10cSrcweir </li> 1317*cdf0e10cSrcweir <li> 1318*cdf0e10cSrcweir <b>RADIX</b> short => radix 1319*cdf0e10cSrcweir </li> 1320*cdf0e10cSrcweir <li> 1321*cdf0e10cSrcweir <b>NULLABLE</b> short => can it contain NULL? 1322*cdf0e10cSrcweir <ul> 1323*cdf0e10cSrcweir <li> NO_NULLS - does not allow NULL values 1324*cdf0e10cSrcweir </li> 1325*cdf0e10cSrcweir <li> NULLABLE - allows NULL values 1326*cdf0e10cSrcweir </li> 1327*cdf0e10cSrcweir <li> NULLABLE_UNKNOWN - nullability unknown 1328*cdf0e10cSrcweir </li> 1329*cdf0e10cSrcweir </ul> 1330*cdf0e10cSrcweir </li> 1331*cdf0e10cSrcweir <li> 1332*cdf0e10cSrcweir <b>REMARKS</b> string => comment describing parameter/column 1333*cdf0e10cSrcweir </li> 1334*cdf0e10cSrcweir </ol> 1335*cdf0e10cSrcweir <p> 1336*cdf0e10cSrcweir <b>Note:</b> Some databases may not return the column 1337*cdf0e10cSrcweir descriptions for a procedure. Additional columns beyond 1338*cdf0e10cSrcweir REMARKS can be defined by the database. 1339*cdf0e10cSrcweir </p> 1340*cdf0e10cSrcweir @param catalog 1341*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1342*cdf0e10cSrcweir @param schemaPattern 1343*cdf0e10cSrcweir a schema name pattern; "" retrieves those without a schema 1344*cdf0e10cSrcweir @param procedureNamePattern 1345*cdf0e10cSrcweir a procedure name pattern 1346*cdf0e10cSrcweir @param columnNamePattern 1347*cdf0e10cSrcweir a column name pattern 1348*cdf0e10cSrcweir @returns 1349*cdf0e10cSrcweir each row describes a stored procedure parameter or column 1350*cdf0e10cSrcweir @throws SQLException 1351*cdf0e10cSrcweir if a database access error occurs. 1352*cdf0e10cSrcweir */ 1353*cdf0e10cSrcweir XResultSet getProcedureColumns([in]any catalog, [in]string schemaPattern, 1354*cdf0e10cSrcweir [in]string procedureNamePattern, 1355*cdf0e10cSrcweir [in]string columnNamePattern) 1356*cdf0e10cSrcweir raises (SQLException); 1357*cdf0e10cSrcweir //------------------------------------------------------------------------- 1358*cdf0e10cSrcweir 1359*cdf0e10cSrcweir /** gets a description of tables available in a catalog. 1360*cdf0e10cSrcweir 1361*cdf0e10cSrcweir 1362*cdf0e10cSrcweir <p>Only table descriptions matching the catalog, schema, table 1363*cdf0e10cSrcweir name, and type criteria are returned. They are ordered by 1364*cdf0e10cSrcweir TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME. 1365*cdf0e10cSrcweir </p> 1366*cdf0e10cSrcweir <p>Each table description has the following columns: 1367*cdf0e10cSrcweir </p> 1368*cdf0e10cSrcweir <ol> 1369*cdf0e10cSrcweir <li> 1370*cdf0e10cSrcweir <b>TABLE_CAT</b> string => table catalog (may be <NULL/>) 1371*cdf0e10cSrcweir </li> 1372*cdf0e10cSrcweir <li> 1373*cdf0e10cSrcweir <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>) 1374*cdf0e10cSrcweir </li> 1375*cdf0e10cSrcweir <li> 1376*cdf0e10cSrcweir <b>TABLE_NAME</b> string => table name 1377*cdf0e10cSrcweir </li> 1378*cdf0e10cSrcweir <li> 1379*cdf0e10cSrcweir <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE", 1380*cdf0e10cSrcweir "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", 1381*cdf0e10cSrcweir "LOCAL TEMPORARY", "ALIAS", "SYNONYM". 1382*cdf0e10cSrcweir </li> 1383*cdf0e10cSrcweir <li> 1384*cdf0e10cSrcweir <b>REMARKS</b> string => explanatory comment on the table 1385*cdf0e10cSrcweir </li> 1386*cdf0e10cSrcweir </ol> 1387*cdf0e10cSrcweir <p> 1388*cdf0e10cSrcweir <b>Note:</b> Some databases may not return information for 1389*cdf0e10cSrcweir all tables. 1390*cdf0e10cSrcweir </p> 1391*cdf0e10cSrcweir @param catalog 1392*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1393*cdf0e10cSrcweir @param schemaPattern 1394*cdf0e10cSrcweir a schema name pattern; "" retrieves those without a schema 1395*cdf0e10cSrcweir @param tableNamePattern 1396*cdf0e10cSrcweir a table name pattern 1397*cdf0e10cSrcweir @param types 1398*cdf0e10cSrcweir a list of table types to include 1399*cdf0e10cSrcweir @returns 1400*cdf0e10cSrcweir each row is a table description 1401*cdf0e10cSrcweir @throws SQLException 1402*cdf0e10cSrcweir if a database access error occurs. 1403*cdf0e10cSrcweir */ 1404*cdf0e10cSrcweir XResultSet getTables([in]any catalog, [in]string schemaPattern, 1405*cdf0e10cSrcweir [in]string tableNamePattern, [in]sequence<string> types) 1406*cdf0e10cSrcweir raises (SQLException); 1407*cdf0e10cSrcweir //------------------------------------------------------------------------- 1408*cdf0e10cSrcweir 1409*cdf0e10cSrcweir /** Gets the schema names available in this database. The results 1410*cdf0e10cSrcweir are ordered by schema name. 1411*cdf0e10cSrcweir 1412*cdf0e10cSrcweir 1413*cdf0e10cSrcweir <p>The schema column is: 1414*cdf0e10cSrcweir </p> 1415*cdf0e10cSrcweir <ol> 1416*cdf0e10cSrcweir <li> 1417*cdf0e10cSrcweir <b>TABLE_SCHEM</b> string => schema name 1418*cdf0e10cSrcweir </li> 1419*cdf0e10cSrcweir </ol> 1420*cdf0e10cSrcweir @returns 1421*cdf0e10cSrcweir each row has a single String column that is a schema name 1422*cdf0e10cSrcweir @throws SQLException 1423*cdf0e10cSrcweir if a database access error occurs. 1424*cdf0e10cSrcweir */ 1425*cdf0e10cSrcweir XResultSet getSchemas() raises (SQLException); 1426*cdf0e10cSrcweir //------------------------------------------------------------------------- 1427*cdf0e10cSrcweir 1428*cdf0e10cSrcweir /** gets the catalog names available in this database. The results 1429*cdf0e10cSrcweir are ordered by catalog name. 1430*cdf0e10cSrcweir 1431*cdf0e10cSrcweir 1432*cdf0e10cSrcweir <p>The catalog column is: 1433*cdf0e10cSrcweir </p> 1434*cdf0e10cSrcweir <ol> 1435*cdf0e10cSrcweir <li> 1436*cdf0e10cSrcweir <b>TABLE_CAT</b> string => catalog name 1437*cdf0e10cSrcweir </li> 1438*cdf0e10cSrcweir </ol> 1439*cdf0e10cSrcweir @returns 1440*cdf0e10cSrcweir each row has a single String column that is a catalog name 1441*cdf0e10cSrcweir @throws SQLException 1442*cdf0e10cSrcweir if a database access error occurs. 1443*cdf0e10cSrcweir */ 1444*cdf0e10cSrcweir XResultSet getCatalogs() raises (SQLException); 1445*cdf0e10cSrcweir //------------------------------------------------------------------------- 1446*cdf0e10cSrcweir 1447*cdf0e10cSrcweir /** gets the table types available in this database. The results 1448*cdf0e10cSrcweir are ordered by table type. 1449*cdf0e10cSrcweir 1450*cdf0e10cSrcweir 1451*cdf0e10cSrcweir <p>The table type is: 1452*cdf0e10cSrcweir </p> 1453*cdf0e10cSrcweir <ol> 1454*cdf0e10cSrcweir <li> 1455*cdf0e10cSrcweir <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE", 1456*cdf0e10cSrcweir "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", 1457*cdf0e10cSrcweir "LOCAL TEMPORARY", "ALIAS", "SYNONYM". 1458*cdf0e10cSrcweir </li> 1459*cdf0e10cSrcweir </ol> 1460*cdf0e10cSrcweir @returns 1461*cdf0e10cSrcweir each row has a single String column that is a table type 1462*cdf0e10cSrcweir @throws SQLException 1463*cdf0e10cSrcweir if a database access error occurs. 1464*cdf0e10cSrcweir */ 1465*cdf0e10cSrcweir XResultSet getTableTypes() raises (SQLException); 1466*cdf0e10cSrcweir //------------------------------------------------------------------------- 1467*cdf0e10cSrcweir 1468*cdf0e10cSrcweir /** gets a description of table columns available in 1469*cdf0e10cSrcweir the specified catalog. 1470*cdf0e10cSrcweir 1471*cdf0e10cSrcweir 1472*cdf0e10cSrcweir <p>Only column descriptions matching the catalog, schema, table 1473*cdf0e10cSrcweir and column name criteria are returned. They are ordered by 1474*cdf0e10cSrcweir TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION. 1475*cdf0e10cSrcweir </p> 1476*cdf0e10cSrcweir <p>Each column description has the following columns: 1477*cdf0e10cSrcweir </p> 1478*cdf0e10cSrcweir <ol> 1479*cdf0e10cSrcweir <li> 1480*cdf0e10cSrcweir <b>TABLE_CAT</b> string => table catalog (may be <NULL/>) 1481*cdf0e10cSrcweir </li> 1482*cdf0e10cSrcweir <li> 1483*cdf0e10cSrcweir <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>) 1484*cdf0e10cSrcweir </li> 1485*cdf0e10cSrcweir <li> 1486*cdf0e10cSrcweir <b>TABLE_NAME</b> string => table name 1487*cdf0e10cSrcweir </li> 1488*cdf0e10cSrcweir <li> 1489*cdf0e10cSrcweir <b>COLUMN_NAME</b> string => column name 1490*cdf0e10cSrcweir </li> 1491*cdf0e10cSrcweir <li> 1492*cdf0e10cSrcweir <b>DATA_TYPE</b> short => SQL type from java.sql.Types 1493*cdf0e10cSrcweir </li> 1494*cdf0e10cSrcweir <li> 1495*cdf0e10cSrcweir <b>TYPE_NAME</b> string => Data source dependent type name, 1496*cdf0e10cSrcweir for a UDT the type name is fully qualified 1497*cdf0e10cSrcweir </li> 1498*cdf0e10cSrcweir <li> 1499*cdf0e10cSrcweir <b>COLUMN_SIZE</b> long => column size. For char or date 1500*cdf0e10cSrcweir types this is the maximum number of characters, for numeric or 1501*cdf0e10cSrcweir decimal types this is precision. 1502*cdf0e10cSrcweir </li> 1503*cdf0e10cSrcweir <li> 1504*cdf0e10cSrcweir <b>BUFFER_LENGTH</b> is not used. 1505*cdf0e10cSrcweir </li> 1506*cdf0e10cSrcweir <li> 1507*cdf0e10cSrcweir <b>DECIMAL_DIGITS</b> long => the number of fractional digits 1508*cdf0e10cSrcweir </li> 1509*cdf0e10cSrcweir <li> 1510*cdf0e10cSrcweir <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2) 1511*cdf0e10cSrcweir </li> 1512*cdf0e10cSrcweir <li> 1513*cdf0e10cSrcweir <b>NULLABLE</b> long => is NULL allowed? 1514*cdf0e10cSrcweir <ul> 1515*cdf0e10cSrcweir <li> NO_NULLS - might not allow NULL values 1516*cdf0e10cSrcweir </li> 1517*cdf0e10cSrcweir <li> NULABLE - definitely allows NULL values 1518*cdf0e10cSrcweir </li> 1519*cdf0e10cSrcweir <li> NULLABLE_UNKNOWN - nullability unknown 1520*cdf0e10cSrcweir </li> 1521*cdf0e10cSrcweir </ul> 1522*cdf0e10cSrcweir </li> 1523*cdf0e10cSrcweir <li> 1524*cdf0e10cSrcweir <b>REMARKS</b> string => comment describing column (may be <NULL/>) 1525*cdf0e10cSrcweir </li> 1526*cdf0e10cSrcweir <li> 1527*cdf0e10cSrcweir <b>COLUMN_DEF</b> string => default value (may be <NULL/>) 1528*cdf0e10cSrcweir </li> 1529*cdf0e10cSrcweir <li> 1530*cdf0e10cSrcweir <b>SQL_DATA_TYPE</b> long => unused 1531*cdf0e10cSrcweir </li> 1532*cdf0e10cSrcweir <li> 1533*cdf0e10cSrcweir <b>SQL_DATETIME_SUB</b> long => unused 1534*cdf0e10cSrcweir </li> 1535*cdf0e10cSrcweir <li> 1536*cdf0e10cSrcweir <b>CHAR_OCTET_LENGTH</b> long => for char types the 1537*cdf0e10cSrcweir maximum number of bytes in the column 1538*cdf0e10cSrcweir </li> 1539*cdf0e10cSrcweir <li> 1540*cdf0e10cSrcweir <b>ORDINAL_POSITION</b> int => index of column in table 1541*cdf0e10cSrcweir (starting at 1) 1542*cdf0e10cSrcweir </li> 1543*cdf0e10cSrcweir <li> 1544*cdf0e10cSrcweir <b>IS_NULLABLE</b> string => "NO" means column definitely 1545*cdf0e10cSrcweir does not allow NULL values; "YES" means the column might 1546*cdf0e10cSrcweir allow NULL values. An empty string means nobody knows. 1547*cdf0e10cSrcweir </li> 1548*cdf0e10cSrcweir </ol> 1549*cdf0e10cSrcweir @param catalog 1550*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1551*cdf0e10cSrcweir @param schemaPattern 1552*cdf0e10cSrcweir a schema name pattern; "" retrieves those without a schema 1553*cdf0e10cSrcweir @param tableNamePattern 1554*cdf0e10cSrcweir a table name pattern 1555*cdf0e10cSrcweir @param columnNamePattern 1556*cdf0e10cSrcweir a column name pattern 1557*cdf0e10cSrcweir @returns 1558*cdf0e10cSrcweir each row is a column description 1559*cdf0e10cSrcweir @throws SQLException 1560*cdf0e10cSrcweir if a database access error occurs. 1561*cdf0e10cSrcweir */ 1562*cdf0e10cSrcweir XResultSet getColumns([in]any catalog, [in]string schemaPattern, 1563*cdf0e10cSrcweir [in]string tableNamePattern, [in]string columnNamePattern) 1564*cdf0e10cSrcweir raises (SQLException); 1565*cdf0e10cSrcweir //------------------------------------------------------------------------- 1566*cdf0e10cSrcweir 1567*cdf0e10cSrcweir /** gets a description of the access rights for a table's columns. 1568*cdf0e10cSrcweir 1569*cdf0e10cSrcweir 1570*cdf0e10cSrcweir <p> 1571*cdf0e10cSrcweir Only privileges matching the column name criteria are 1572*cdf0e10cSrcweir returned. They are ordered by COLUMN_NAME and PRIVILEGE. 1573*cdf0e10cSrcweir </p> 1574*cdf0e10cSrcweir <p>Each privilige description has the following columns: 1575*cdf0e10cSrcweir </p> 1576*cdf0e10cSrcweir <ol> 1577*cdf0e10cSrcweir <li> 1578*cdf0e10cSrcweir <b>TABLE_CAT</b> string => table catalog (may be <NULL/>) 1579*cdf0e10cSrcweir </li> 1580*cdf0e10cSrcweir <li> 1581*cdf0e10cSrcweir <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>) 1582*cdf0e10cSrcweir </li> 1583*cdf0e10cSrcweir <li> 1584*cdf0e10cSrcweir <b>TABLE_NAME</b> string => table name 1585*cdf0e10cSrcweir </li> 1586*cdf0e10cSrcweir <li> 1587*cdf0e10cSrcweir <b>COLUMN_NAME</b> string => column name 1588*cdf0e10cSrcweir </li> 1589*cdf0e10cSrcweir <li> 1590*cdf0e10cSrcweir <b>GRANTOR</b> => grantor of access (may be <NULL/>) 1591*cdf0e10cSrcweir </li> 1592*cdf0e10cSrcweir <li> 1593*cdf0e10cSrcweir <b>GRANTEE</b> string => grantee of access 1594*cdf0e10cSrcweir </li> 1595*cdf0e10cSrcweir <li> 1596*cdf0e10cSrcweir <b>PRIVILEGE</b> string => name of access (SELECT, 1597*cdf0e10cSrcweir INSERT, UPDATE, REFERENCES, ...) 1598*cdf0e10cSrcweir </li> 1599*cdf0e10cSrcweir <li> 1600*cdf0e10cSrcweir <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted 1601*cdf0e10cSrcweir to grant to others; "NO" if not; <NULL/> if unknown 1602*cdf0e10cSrcweir </li> 1603*cdf0e10cSrcweir </ol> 1604*cdf0e10cSrcweir @param catalog 1605*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1606*cdf0e10cSrcweir @param schema 1607*cdf0e10cSrcweir a schema name ; "" retrieves those without a schema 1608*cdf0e10cSrcweir @param table 1609*cdf0e10cSrcweir a table name 1610*cdf0e10cSrcweir @param columnNamePattern 1611*cdf0e10cSrcweir a column name pattern 1612*cdf0e10cSrcweir @returns 1613*cdf0e10cSrcweir each row is a column privilege description 1614*cdf0e10cSrcweir @throws SQLException 1615*cdf0e10cSrcweir if a database access error occurs. 1616*cdf0e10cSrcweir */ 1617*cdf0e10cSrcweir XResultSet getColumnPrivileges([in]any catalog, [in]string schema, 1618*cdf0e10cSrcweir [in]string table, [in]string columnNamePattern) raises (SQLException); 1619*cdf0e10cSrcweir //------------------------------------------------------------------------- 1620*cdf0e10cSrcweir 1621*cdf0e10cSrcweir /** gets a description of the access rights for each table available 1622*cdf0e10cSrcweir in a catalog. Note that a table privilege applies to one or 1623*cdf0e10cSrcweir more columns in the table. It would be wrong to assume that 1624*cdf0e10cSrcweir this priviledge applies to all columns (this may be <TRUE/> for 1625*cdf0e10cSrcweir some systems but is not <TRUE/> for all.) 1626*cdf0e10cSrcweir 1627*cdf0e10cSrcweir 1628*cdf0e10cSrcweir <p>Only privileges matching the schema and table name 1629*cdf0e10cSrcweir criteria are returned. They are ordered by TABLE_SCHEM, 1630*cdf0e10cSrcweir TABLE_NAME, and PRIVILEGE. 1631*cdf0e10cSrcweir </p> 1632*cdf0e10cSrcweir <p>Each privilige description has the following columns: 1633*cdf0e10cSrcweir </p> 1634*cdf0e10cSrcweir <ol> 1635*cdf0e10cSrcweir <li> 1636*cdf0e10cSrcweir <b>TABLE_CAT</b> string => table catalog (may be <NULL/>) 1637*cdf0e10cSrcweir </li> 1638*cdf0e10cSrcweir <li> 1639*cdf0e10cSrcweir <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>) 1640*cdf0e10cSrcweir </li> 1641*cdf0e10cSrcweir <li> 1642*cdf0e10cSrcweir <b>TABLE_NAME</b> string => table name 1643*cdf0e10cSrcweir </li> 1644*cdf0e10cSrcweir <li> 1645*cdf0e10cSrcweir <b>GRANTOR</b> => grantor of access (may be <NULL/>) 1646*cdf0e10cSrcweir </li> 1647*cdf0e10cSrcweir <li> 1648*cdf0e10cSrcweir <b>GRANTEE</b> string => grantee of access 1649*cdf0e10cSrcweir </li> 1650*cdf0e10cSrcweir <li> 1651*cdf0e10cSrcweir <b>PRIVILEGE</b> string => name of access (SELECT, 1652*cdf0e10cSrcweir INSERT, UPDATE, REFERENCES, ...) 1653*cdf0e10cSrcweir </li> 1654*cdf0e10cSrcweir <li> 1655*cdf0e10cSrcweir <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted 1656*cdf0e10cSrcweir to grant to others; "NO" if not; <NULL/> if unknown 1657*cdf0e10cSrcweir </li> 1658*cdf0e10cSrcweir </ol> 1659*cdf0e10cSrcweir @param catalog 1660*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1661*cdf0e10cSrcweir @param schemaPattern 1662*cdf0e10cSrcweir a schema name pattern; "" retrieves those without a schema 1663*cdf0e10cSrcweir @param tableNamePattern 1664*cdf0e10cSrcweir a table name pattern 1665*cdf0e10cSrcweir @returns 1666*cdf0e10cSrcweir each row is a table privilege description 1667*cdf0e10cSrcweir @throws SQLException 1668*cdf0e10cSrcweir if a database access error occurs. 1669*cdf0e10cSrcweir */ 1670*cdf0e10cSrcweir XResultSet getTablePrivileges([in]any catalog, [in]string schemaPattern, 1671*cdf0e10cSrcweir [in]string tableNamePattern) raises (SQLException); 1672*cdf0e10cSrcweir //------------------------------------------------------------------------- 1673*cdf0e10cSrcweir 1674*cdf0e10cSrcweir /** gets a description of a table's optimal set of columns that 1675*cdf0e10cSrcweir uniquely identifies a row. They are ordered by SCOPE. 1676*cdf0e10cSrcweir 1677*cdf0e10cSrcweir 1678*cdf0e10cSrcweir <p>Each column description has the following columns: 1679*cdf0e10cSrcweir </p> 1680*cdf0e10cSrcweir <ol> 1681*cdf0e10cSrcweir <li> 1682*cdf0e10cSrcweir <b>SCOPE</b> short => actual scope of result 1683*cdf0e10cSrcweir <ul> 1684*cdf0e10cSrcweir <li> TEMPORARY - very temporary, while using row 1685*cdf0e10cSrcweir </li> 1686*cdf0e10cSrcweir <li> TRANSACTION - valid for remainder of current transaction 1687*cdf0e10cSrcweir </li> 1688*cdf0e10cSrcweir <li> SESSION - valid for remainder of current session 1689*cdf0e10cSrcweir </li> 1690*cdf0e10cSrcweir </ul> 1691*cdf0e10cSrcweir </li> 1692*cdf0e10cSrcweir <li> 1693*cdf0e10cSrcweir <b>COLUMN_NAME</b> string => column name 1694*cdf0e10cSrcweir </li> 1695*cdf0e10cSrcweir <li> 1696*cdf0e10cSrcweir <b>DATA_TYPE</b> short => SQL data type from java.sql.Types 1697*cdf0e10cSrcweir </li> 1698*cdf0e10cSrcweir <li> 1699*cdf0e10cSrcweir <b>TYPE_NAME</b> string => Data source dependent type name, 1700*cdf0e10cSrcweir for a UDT the type name is fully qualified 1701*cdf0e10cSrcweir </li> 1702*cdf0e10cSrcweir <li> 1703*cdf0e10cSrcweir <b>COLUMN_SIZE</b> long => precision 1704*cdf0e10cSrcweir </li> 1705*cdf0e10cSrcweir <li> 1706*cdf0e10cSrcweir <b>BUFFER_LENGTH</b> long => not used 1707*cdf0e10cSrcweir </li> 1708*cdf0e10cSrcweir <li> 1709*cdf0e10cSrcweir <b>DECIMAL_DIGITS</b> short => scale 1710*cdf0e10cSrcweir </li> 1711*cdf0e10cSrcweir <li> 1712*cdf0e10cSrcweir <b>PSEUDO_COLUMN</b> short => is this a pseudo column 1713*cdf0e10cSrcweir like an Oracle ROWID 1714*cdf0e10cSrcweir <ul> 1715*cdf0e10cSrcweir <li> UNKNOWN - may or may not be pseudo column 1716*cdf0e10cSrcweir </li> 1717*cdf0e10cSrcweir <li> NOT_PSEUDO - is NOT a pseudo column 1718*cdf0e10cSrcweir </li> 1719*cdf0e10cSrcweir <li> PSEUDO - is a pseudo column 1720*cdf0e10cSrcweir </li> 1721*cdf0e10cSrcweir </ul> 1722*cdf0e10cSrcweir </li> 1723*cdf0e10cSrcweir </ol> 1724*cdf0e10cSrcweir @param catalog 1725*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1726*cdf0e10cSrcweir @param schema 1727*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 1728*cdf0e10cSrcweir @param table 1729*cdf0e10cSrcweir a table name 1730*cdf0e10cSrcweir @param scope 1731*cdf0e10cSrcweir the scope of interest; use same values as SCOPE 1732*cdf0e10cSrcweir @param nullable 1733*cdf0e10cSrcweir include columns that are nullable? 1734*cdf0e10cSrcweir @returns 1735*cdf0e10cSrcweir each row is a column description 1736*cdf0e10cSrcweir @throws SQLException 1737*cdf0e10cSrcweir if a database access error occurs. 1738*cdf0e10cSrcweir */ 1739*cdf0e10cSrcweir XResultSet getBestRowIdentifier([in]any catalog, [in]string schema, 1740*cdf0e10cSrcweir [in]string table, [in]long scope, [in] boolean nullable) 1741*cdf0e10cSrcweir raises (SQLException); 1742*cdf0e10cSrcweir //------------------------------------------------------------------------- 1743*cdf0e10cSrcweir 1744*cdf0e10cSrcweir /** gets a description of a table's columns that are automatically 1745*cdf0e10cSrcweir updated when any value in a row is updated. They are 1746*cdf0e10cSrcweir unordered. 1747*cdf0e10cSrcweir 1748*cdf0e10cSrcweir 1749*cdf0e10cSrcweir <p>Each column description has the following columns: 1750*cdf0e10cSrcweir </p> 1751*cdf0e10cSrcweir <ol> 1752*cdf0e10cSrcweir <li> 1753*cdf0e10cSrcweir <b>SCOPE</b> short => is not used 1754*cdf0e10cSrcweir </li> 1755*cdf0e10cSrcweir <li> 1756*cdf0e10cSrcweir <b>COLUMN_NAME</b> string => column name 1757*cdf0e10cSrcweir </li> 1758*cdf0e10cSrcweir <li> 1759*cdf0e10cSrcweir <b>DATA_TYPE</b> short => SQL data type from java.sql.Types 1760*cdf0e10cSrcweir </li> 1761*cdf0e10cSrcweir <li> 1762*cdf0e10cSrcweir <b>TYPE_NAME</b> string => Data source dependent type name 1763*cdf0e10cSrcweir </li> 1764*cdf0e10cSrcweir <li> 1765*cdf0e10cSrcweir <b>COLUMN_SIZE</b> long => precision 1766*cdf0e10cSrcweir </li> 1767*cdf0e10cSrcweir <li> 1768*cdf0e10cSrcweir <b>BUFFER_LENGTH</b> long => length of column value in bytes 1769*cdf0e10cSrcweir </li> 1770*cdf0e10cSrcweir <li> 1771*cdf0e10cSrcweir <b>DECIMAL_DIGITS</b> short => scale 1772*cdf0e10cSrcweir </li> 1773*cdf0e10cSrcweir <li> 1774*cdf0e10cSrcweir <b>PSEUDO_COLUMN</b> short => is this a pseudo column 1775*cdf0e10cSrcweir like an Oracle ROWID 1776*cdf0e10cSrcweir <ul> 1777*cdf0e10cSrcweir <li> UNKNOWN - may or may not be pseudo column 1778*cdf0e10cSrcweir </li> 1779*cdf0e10cSrcweir <li> NOT_PSEUDO - is NOT a pseudo column 1780*cdf0e10cSrcweir </li> 1781*cdf0e10cSrcweir <li> PSEUDO - is a pseudo column 1782*cdf0e10cSrcweir </li> 1783*cdf0e10cSrcweir </ul> 1784*cdf0e10cSrcweir </li> 1785*cdf0e10cSrcweir </ol> 1786*cdf0e10cSrcweir @param catalog 1787*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1788*cdf0e10cSrcweir @param schema 1789*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 1790*cdf0e10cSrcweir @param table 1791*cdf0e10cSrcweir a table name 1792*cdf0e10cSrcweir @returns 1793*cdf0e10cSrcweir each row is a column description 1794*cdf0e10cSrcweir @throws SQLException 1795*cdf0e10cSrcweir if a database access error occurs. 1796*cdf0e10cSrcweir */ 1797*cdf0e10cSrcweir XResultSet getVersionColumns([in]any catalog, [in]string schema, 1798*cdf0e10cSrcweir [in]string table) raises (SQLException); 1799*cdf0e10cSrcweir //------------------------------------------------------------------------- 1800*cdf0e10cSrcweir 1801*cdf0e10cSrcweir /** gets a description of a table's primary key columns. They 1802*cdf0e10cSrcweir are ordered by COLUMN_NAME. 1803*cdf0e10cSrcweir 1804*cdf0e10cSrcweir 1805*cdf0e10cSrcweir <p>Each primary key column description has the following columns: 1806*cdf0e10cSrcweir </p> 1807*cdf0e10cSrcweir <ol> 1808*cdf0e10cSrcweir <li> 1809*cdf0e10cSrcweir <b>TABLE_CAT</b> string => table catalog (may be <NULL/>) 1810*cdf0e10cSrcweir </li> 1811*cdf0e10cSrcweir <li> 1812*cdf0e10cSrcweir <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>) 1813*cdf0e10cSrcweir </li> 1814*cdf0e10cSrcweir <li> 1815*cdf0e10cSrcweir <b>TABLE_NAME</b> string => table name 1816*cdf0e10cSrcweir </li> 1817*cdf0e10cSrcweir <li> 1818*cdf0e10cSrcweir <b>COLUMN_NAME</b> string => column name 1819*cdf0e10cSrcweir </li> 1820*cdf0e10cSrcweir <li> 1821*cdf0e10cSrcweir <b>KEY_SEQ</b> short => sequence number within primary key 1822*cdf0e10cSrcweir </li> 1823*cdf0e10cSrcweir <li> 1824*cdf0e10cSrcweir <b>PK_NAME</b> string => primary key name (may be <NULL/>) 1825*cdf0e10cSrcweir </li> 1826*cdf0e10cSrcweir </ol> 1827*cdf0e10cSrcweir @param catalog 1828*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1829*cdf0e10cSrcweir @param schema 1830*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 1831*cdf0e10cSrcweir @param table 1832*cdf0e10cSrcweir a table name 1833*cdf0e10cSrcweir @returns 1834*cdf0e10cSrcweir each row is a primary key column description 1835*cdf0e10cSrcweir @throws SQLException 1836*cdf0e10cSrcweir if a database access error occurs. 1837*cdf0e10cSrcweir */ 1838*cdf0e10cSrcweir XResultSet getPrimaryKeys([in]any catalog, [in]string schema, 1839*cdf0e10cSrcweir [in]string table) raises (SQLException); 1840*cdf0e10cSrcweir //------------------------------------------------------------------------- 1841*cdf0e10cSrcweir 1842*cdf0e10cSrcweir /** gets a description of the primary key columns that are 1843*cdf0e10cSrcweir referenced by a table's foreign key columns (the primary keys 1844*cdf0e10cSrcweir imported by a table). They are ordered by PKTABLE_CAT, 1845*cdf0e10cSrcweir PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ. 1846*cdf0e10cSrcweir 1847*cdf0e10cSrcweir 1848*cdf0e10cSrcweir <p>Each primary key column description has the following columns: 1849*cdf0e10cSrcweir </p> 1850*cdf0e10cSrcweir <ol> 1851*cdf0e10cSrcweir <li> 1852*cdf0e10cSrcweir <b>PKTABLE_CAT</b> string => primary key table catalog 1853*cdf0e10cSrcweir being imported (may be <NULL/>) 1854*cdf0e10cSrcweir </li> 1855*cdf0e10cSrcweir <li> 1856*cdf0e10cSrcweir <b>PKTABLE_SCHEM</b> string => primary key table schema 1857*cdf0e10cSrcweir being imported (may be <NULL/>) 1858*cdf0e10cSrcweir </li> 1859*cdf0e10cSrcweir <li> 1860*cdf0e10cSrcweir <b>PKTABLE_NAME</b> string => primary key table name 1861*cdf0e10cSrcweir being imported 1862*cdf0e10cSrcweir </li> 1863*cdf0e10cSrcweir <li> 1864*cdf0e10cSrcweir <b>PKCOLUMN_NAME</b> string => primary key column name 1865*cdf0e10cSrcweir being imported 1866*cdf0e10cSrcweir </li> 1867*cdf0e10cSrcweir <li> 1868*cdf0e10cSrcweir <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>) 1869*cdf0e10cSrcweir </li> 1870*cdf0e10cSrcweir <li> 1871*cdf0e10cSrcweir <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>) 1872*cdf0e10cSrcweir </li> 1873*cdf0e10cSrcweir <li> 1874*cdf0e10cSrcweir <b>FKTABLE_NAME</b> string => foreign key table name 1875*cdf0e10cSrcweir </li> 1876*cdf0e10cSrcweir <li> 1877*cdf0e10cSrcweir <b>FKCOLUMN_NAME</b> string => foreign key column name 1878*cdf0e10cSrcweir </li> 1879*cdf0e10cSrcweir <li> 1880*cdf0e10cSrcweir <b>KEY_SEQ</b> short => sequence number within foreign key 1881*cdf0e10cSrcweir </li> 1882*cdf0e10cSrcweir <li> 1883*cdf0e10cSrcweir <b>UPDATE_RULE</b> short => What happens to 1884*cdf0e10cSrcweir foreign key when primary is updated: 1885*cdf0e10cSrcweir <ul> 1886*cdf0e10cSrcweir <li> importedNoAction - do not allow update of primary 1887*cdf0e10cSrcweir key if it has been imported 1888*cdf0e10cSrcweir </li> 1889*cdf0e10cSrcweir <li> importedKeyCascade - change imported key to agree 1890*cdf0e10cSrcweir with primary key update 1891*cdf0e10cSrcweir </li> 1892*cdf0e10cSrcweir <li> importedKeySetNull - change imported key to NULL if 1893*cdf0e10cSrcweir its primary key has been updated 1894*cdf0e10cSrcweir </li> 1895*cdf0e10cSrcweir <li> importedKeySetDefault - change imported key to default values 1896*cdf0e10cSrcweir if its primary key has been updated 1897*cdf0e10cSrcweir </li> 1898*cdf0e10cSrcweir <li> importedKeyRestrict - same as importedKeyNoAction 1899*cdf0e10cSrcweir (for ODBC 2.x compatibility) 1900*cdf0e10cSrcweir </li> 1901*cdf0e10cSrcweir </ul> 1902*cdf0e10cSrcweir </li> 1903*cdf0e10cSrcweir <li> 1904*cdf0e10cSrcweir <b>DELETE_RULE</b> short => What happens to 1905*cdf0e10cSrcweir the foreign key when primary is deleted. 1906*cdf0e10cSrcweir <ul> 1907*cdf0e10cSrcweir <li> importedKeyNoAction - do not allow delete of primary 1908*cdf0e10cSrcweir key if it has been imported 1909*cdf0e10cSrcweir </li> 1910*cdf0e10cSrcweir <li> importedKeyCascade - delete rows that import a deleted key 1911*cdf0e10cSrcweir </li> 1912*cdf0e10cSrcweir <li> importedKeySetNull - change imported key to NULL if 1913*cdf0e10cSrcweir its primary key has been deleted 1914*cdf0e10cSrcweir </li> 1915*cdf0e10cSrcweir <li> importedKeyRestrict - same as importedKeyNoAction 1916*cdf0e10cSrcweir (for ODBC 2.x compatibility) 1917*cdf0e10cSrcweir </li> 1918*cdf0e10cSrcweir <li> importedKeySetDefault - change imported key to default if 1919*cdf0e10cSrcweir its primary key has been deleted 1920*cdf0e10cSrcweir </li> 1921*cdf0e10cSrcweir </ul> 1922*cdf0e10cSrcweir </li> 1923*cdf0e10cSrcweir <li> 1924*cdf0e10cSrcweir <b>FK_NAME</b> string => foreign key name (may be <NULL/>) 1925*cdf0e10cSrcweir </li> 1926*cdf0e10cSrcweir <li> 1927*cdf0e10cSrcweir <b>PK_NAME</b> string => primary key name (may be <NULL/>) 1928*cdf0e10cSrcweir </li> 1929*cdf0e10cSrcweir <li> 1930*cdf0e10cSrcweir <b>DEFERRABILITY</b> short => can the evaluation of foreign key 1931*cdf0e10cSrcweir constraints be deferred until commit 1932*cdf0e10cSrcweir <ul> 1933*cdf0e10cSrcweir <li> importedKeyInitiallyDeferred - see SQL92 for definition 1934*cdf0e10cSrcweir </li> 1935*cdf0e10cSrcweir <li> importedKeyInitiallyImmediate - see SQL92 for definition 1936*cdf0e10cSrcweir </li> 1937*cdf0e10cSrcweir <li> importedKeyNotDeferrable - see SQL92 for definition 1938*cdf0e10cSrcweir </li> 1939*cdf0e10cSrcweir </ul> 1940*cdf0e10cSrcweir </li> 1941*cdf0e10cSrcweir </ol> 1942*cdf0e10cSrcweir @param catalog 1943*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 1944*cdf0e10cSrcweir @param schema 1945*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 1946*cdf0e10cSrcweir @param table 1947*cdf0e10cSrcweir a table name 1948*cdf0e10cSrcweir @returns 1949*cdf0e10cSrcweir each row is a primary key column description 1950*cdf0e10cSrcweir @throws SQLException 1951*cdf0e10cSrcweir if a database access error occurs. 1952*cdf0e10cSrcweir */ 1953*cdf0e10cSrcweir XResultSet getImportedKeys([in]any catalog, [in]string schema, 1954*cdf0e10cSrcweir [in]string table) raises (SQLException); 1955*cdf0e10cSrcweir //------------------------------------------------------------------------- 1956*cdf0e10cSrcweir 1957*cdf0e10cSrcweir /** gets a description of the foreign key columns that reference a 1958*cdf0e10cSrcweir table's primary key columns (the foreign keys exported by a 1959*cdf0e10cSrcweir table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, 1960*cdf0e10cSrcweir FKTABLE_NAME, and KEY_SEQ. 1961*cdf0e10cSrcweir 1962*cdf0e10cSrcweir 1963*cdf0e10cSrcweir <p>Each foreign key column description has the following columns: 1964*cdf0e10cSrcweir </p> 1965*cdf0e10cSrcweir <ol> 1966*cdf0e10cSrcweir <li> 1967*cdf0e10cSrcweir <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>) 1968*cdf0e10cSrcweir </li> 1969*cdf0e10cSrcweir <li> 1970*cdf0e10cSrcweir <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>) 1971*cdf0e10cSrcweir </li> 1972*cdf0e10cSrcweir <li> 1973*cdf0e10cSrcweir <b>PKTABLE_NAME</b> string => primary key table name 1974*cdf0e10cSrcweir </li> 1975*cdf0e10cSrcweir <li> 1976*cdf0e10cSrcweir <b>PKCOLUMN_NAME</b> string => primary key column name 1977*cdf0e10cSrcweir </li> 1978*cdf0e10cSrcweir <li> 1979*cdf0e10cSrcweir <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>) 1980*cdf0e10cSrcweir being exported (may be <NULL/>) 1981*cdf0e10cSrcweir </li> 1982*cdf0e10cSrcweir <li> 1983*cdf0e10cSrcweir <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>) 1984*cdf0e10cSrcweir being exported (may be <NULL/>) 1985*cdf0e10cSrcweir </li> 1986*cdf0e10cSrcweir <li> 1987*cdf0e10cSrcweir <b>FKTABLE_NAME</b> string => foreign key table name 1988*cdf0e10cSrcweir being exported 1989*cdf0e10cSrcweir </li> 1990*cdf0e10cSrcweir <li> 1991*cdf0e10cSrcweir <b>FKCOLUMN_NAME</b> string => foreign key column name 1992*cdf0e10cSrcweir being exported 1993*cdf0e10cSrcweir </li> 1994*cdf0e10cSrcweir <li> 1995*cdf0e10cSrcweir <b>KEY_SEQ</b> short => sequence number within foreign key 1996*cdf0e10cSrcweir </li> 1997*cdf0e10cSrcweir <li> 1998*cdf0e10cSrcweir <b>UPDATE_RULE</b> short => What happens to 1999*cdf0e10cSrcweir foreign key when primary is updated: 2000*cdf0e10cSrcweir <ul> 2001*cdf0e10cSrcweir <li> NO_ACTION - do not allow update of primary 2002*cdf0e10cSrcweir key if it has been imported 2003*cdf0e10cSrcweir </li> 2004*cdf0e10cSrcweir <li> CASCADE - change imported key to agree 2005*cdf0e10cSrcweir with primary key update 2006*cdf0e10cSrcweir </li> 2007*cdf0e10cSrcweir <li> SET_NULL - change imported key to NULL if 2008*cdf0e10cSrcweir its primary key has been updated 2009*cdf0e10cSrcweir </li> 2010*cdf0e10cSrcweir <li> SET_DEFAULT - change imported key to default values 2011*cdf0e10cSrcweir if its primary key has been updated 2012*cdf0e10cSrcweir </li> 2013*cdf0e10cSrcweir <li> RESTRICT - same as importedKeyNoAction 2014*cdf0e10cSrcweir (for ODBC 2.x compatibility) 2015*cdf0e10cSrcweir </li> 2016*cdf0e10cSrcweir </ul> 2017*cdf0e10cSrcweir </li> 2018*cdf0e10cSrcweir <li> 2019*cdf0e10cSrcweir <b>DELETE_RULE</b> short => What happens to 2020*cdf0e10cSrcweir the foreign key when primary is deleted. 2021*cdf0e10cSrcweir <ul> 2022*cdf0e10cSrcweir <li> NO_ACTION - do not allow delete of primary 2023*cdf0e10cSrcweir key if it has been imported 2024*cdf0e10cSrcweir </li> 2025*cdf0e10cSrcweir <li> CASCADE - delete rows that import a deleted key 2026*cdf0e10cSrcweir </li> 2027*cdf0e10cSrcweir <li> SET_NULL - change imported key to NULL if 2028*cdf0e10cSrcweir its primary key has been deleted 2029*cdf0e10cSrcweir </li> 2030*cdf0e10cSrcweir <li> RESTRICT - same as importedKeyNoAction 2031*cdf0e10cSrcweir (for ODBC 2.x compatibility) 2032*cdf0e10cSrcweir </li> 2033*cdf0e10cSrcweir <li> SET_DEFAULT - change imported key to default if 2034*cdf0e10cSrcweir its primary key has been deleted 2035*cdf0e10cSrcweir </li> 2036*cdf0e10cSrcweir </ul> 2037*cdf0e10cSrcweir </li> 2038*cdf0e10cSrcweir <li> 2039*cdf0e10cSrcweir <b>FK_NAME</b> string => foreign key name (may be <NULL/>) 2040*cdf0e10cSrcweir </li> 2041*cdf0e10cSrcweir <li> 2042*cdf0e10cSrcweir <b>PK_NAME</b> string => primary key name (may be <NULL/>) 2043*cdf0e10cSrcweir </li> 2044*cdf0e10cSrcweir <li> 2045*cdf0e10cSrcweir <b>DEFERRABILITY</b> short => can the evaluation of foreign key 2046*cdf0e10cSrcweir constraints be deferred until commit 2047*cdf0e10cSrcweir <ul> 2048*cdf0e10cSrcweir <li> INITIALLY_DEFERRED - see SQL92 for definition 2049*cdf0e10cSrcweir </li> 2050*cdf0e10cSrcweir <li> INITIALLY_IMMEDIATE - see SQL92 for definition 2051*cdf0e10cSrcweir </li> 2052*cdf0e10cSrcweir <li> NONE - see SQL92 for definition 2053*cdf0e10cSrcweir </li> 2054*cdf0e10cSrcweir </ul> 2055*cdf0e10cSrcweir </li> 2056*cdf0e10cSrcweir </ol> 2057*cdf0e10cSrcweir @param catalog 2058*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 2059*cdf0e10cSrcweir @param schema 2060*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 2061*cdf0e10cSrcweir @param table 2062*cdf0e10cSrcweir a table name 2063*cdf0e10cSrcweir @returns 2064*cdf0e10cSrcweir each row is a foreign key column description 2065*cdf0e10cSrcweir @throws SQLException 2066*cdf0e10cSrcweir if a database access error occurs. 2067*cdf0e10cSrcweir */ 2068*cdf0e10cSrcweir XResultSet getExportedKeys([in]any catalog, [in]string schema, 2069*cdf0e10cSrcweir [in]string table) raises (SQLException); 2070*cdf0e10cSrcweir //------------------------------------------------------------------------- 2071*cdf0e10cSrcweir 2072*cdf0e10cSrcweir /** gets a description of the foreign key columns in the foreign key 2073*cdf0e10cSrcweir table that reference the primary key columns of the primary key 2074*cdf0e10cSrcweir table (describe how one table imports another's key.) This 2075*cdf0e10cSrcweir should normally return a single foreign key/primary key pair 2076*cdf0e10cSrcweir (most tables only import a foreign key from a table once.). They 2077*cdf0e10cSrcweir are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and 2078*cdf0e10cSrcweir KEY_SEQ. 2079*cdf0e10cSrcweir 2080*cdf0e10cSrcweir 2081*cdf0e10cSrcweir <p>Each foreign key column description has the following columns: 2082*cdf0e10cSrcweir </p> 2083*cdf0e10cSrcweir <ol> 2084*cdf0e10cSrcweir <li> 2085*cdf0e10cSrcweir <b>PKTABLE_CAT</b> string => primary key table catalog (may be <NULL/>) 2086*cdf0e10cSrcweir </li> 2087*cdf0e10cSrcweir <li> 2088*cdf0e10cSrcweir <b>PKTABLE_SCHEM</b> string => primary key table schema (may be <NULL/>) 2089*cdf0e10cSrcweir </li> 2090*cdf0e10cSrcweir <li> 2091*cdf0e10cSrcweir <b>PKTABLE_NAME</b> string => primary key table name 2092*cdf0e10cSrcweir </li> 2093*cdf0e10cSrcweir <li> 2094*cdf0e10cSrcweir <b>PKCOLUMN_NAME</b> string => primary key column name 2095*cdf0e10cSrcweir </li> 2096*cdf0e10cSrcweir <li> 2097*cdf0e10cSrcweir <b>FKTABLE_CAT</b> string => foreign key table catalog (may be <NULL/>) 2098*cdf0e10cSrcweir being exported (may be <NULL/>) 2099*cdf0e10cSrcweir </li> 2100*cdf0e10cSrcweir <li> 2101*cdf0e10cSrcweir <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be <NULL/>) 2102*cdf0e10cSrcweir being exported (may be <NULL/>) 2103*cdf0e10cSrcweir </li> 2104*cdf0e10cSrcweir <li> 2105*cdf0e10cSrcweir <b>FKTABLE_NAME</b> string => foreign key table name 2106*cdf0e10cSrcweir being exported 2107*cdf0e10cSrcweir </li> 2108*cdf0e10cSrcweir <li> 2109*cdf0e10cSrcweir <b>FKCOLUMN_NAME</b> string => foreign key column name 2110*cdf0e10cSrcweir being exported 2111*cdf0e10cSrcweir </li> 2112*cdf0e10cSrcweir <li> 2113*cdf0e10cSrcweir <b>KEY_SEQ</b> short => sequence number within foreign key 2114*cdf0e10cSrcweir </li> 2115*cdf0e10cSrcweir <li> 2116*cdf0e10cSrcweir <b>UPDATE_RULE</b> short => What happens to 2117*cdf0e10cSrcweir foreign key when primary is updated: 2118*cdf0e10cSrcweir <ul> 2119*cdf0e10cSrcweir <li> NO_ACTION - do not allow update of primary 2120*cdf0e10cSrcweir key if it has been imported 2121*cdf0e10cSrcweir </li> 2122*cdf0e10cSrcweir <li> CASCADE - change imported key to agree 2123*cdf0e10cSrcweir with primary key update 2124*cdf0e10cSrcweir </li> 2125*cdf0e10cSrcweir <li> SET_NULL - change imported key to NULL if 2126*cdf0e10cSrcweir its primary key has been updated 2127*cdf0e10cSrcweir </li> 2128*cdf0e10cSrcweir <li> SET_DEFAULT - change imported key to default values 2129*cdf0e10cSrcweir if its primary key has been updated 2130*cdf0e10cSrcweir </li> 2131*cdf0e10cSrcweir <li> RESTRICT - same as importedKeyNoAction 2132*cdf0e10cSrcweir (for ODBC 2.x compatibility) 2133*cdf0e10cSrcweir </li> 2134*cdf0e10cSrcweir </ul> 2135*cdf0e10cSrcweir </li> 2136*cdf0e10cSrcweir <li> 2137*cdf0e10cSrcweir <b>DELETE_RULE</b> short => What happens to 2138*cdf0e10cSrcweir the foreign key when primary is deleted. 2139*cdf0e10cSrcweir <ul> 2140*cdf0e10cSrcweir <li> NO_ACTION - do not allow delete of primary 2141*cdf0e10cSrcweir key if it has been imported 2142*cdf0e10cSrcweir </li> 2143*cdf0e10cSrcweir <li> CASCADE - delete rows that import a deleted key 2144*cdf0e10cSrcweir </li> 2145*cdf0e10cSrcweir <li> SET_NULL - change imported key to NULL if 2146*cdf0e10cSrcweir its primary key has been deleted 2147*cdf0e10cSrcweir </li> 2148*cdf0e10cSrcweir <li> RESTRICT - same as importedKeyNoAction 2149*cdf0e10cSrcweir (for ODBC 2.x compatibility) 2150*cdf0e10cSrcweir </li> 2151*cdf0e10cSrcweir <li> SET_DEFAULT - change imported key to default if 2152*cdf0e10cSrcweir its primary key has been deleted 2153*cdf0e10cSrcweir </li> 2154*cdf0e10cSrcweir </ul> 2155*cdf0e10cSrcweir </li> 2156*cdf0e10cSrcweir <li> 2157*cdf0e10cSrcweir <b>FK_NAME</b> string => foreign key name (may be <NULL/>) 2158*cdf0e10cSrcweir </li> 2159*cdf0e10cSrcweir <li> 2160*cdf0e10cSrcweir <b>PK_NAME</b> string => primary key name (may be <NULL/>) 2161*cdf0e10cSrcweir </li> 2162*cdf0e10cSrcweir <li> 2163*cdf0e10cSrcweir <b>DEFERRABILITY</b> short => can the evaluation of foreign key 2164*cdf0e10cSrcweir constraints be deferred until commit 2165*cdf0e10cSrcweir <ul> 2166*cdf0e10cSrcweir <li> INITIALLY_DEFERRED - see SQL92 for definition 2167*cdf0e10cSrcweir </li> 2168*cdf0e10cSrcweir <li> INITIALLY_IMMEDIATE - see SQL92 for definition 2169*cdf0e10cSrcweir </li> 2170*cdf0e10cSrcweir <li> NONE - see SQL92 for definition 2171*cdf0e10cSrcweir </li> 2172*cdf0e10cSrcweir </ul> 2173*cdf0e10cSrcweir </li> 2174*cdf0e10cSrcweir </ol> 2175*cdf0e10cSrcweir @param primaryCatalog 2176*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 2177*cdf0e10cSrcweir @param primarySchema 2178*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 2179*cdf0e10cSrcweir @param primaryTable 2180*cdf0e10cSrcweir the table name that exports the key 2181*cdf0e10cSrcweir @param foreignCatalog 2182*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 2183*cdf0e10cSrcweir @param foreignSchema 2184*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 2185*cdf0e10cSrcweir @param foreignTable 2186*cdf0e10cSrcweir the table name that imports the key 2187*cdf0e10cSrcweir @returns 2188*cdf0e10cSrcweir each row is a foreign key column description 2189*cdf0e10cSrcweir @throws SQLException 2190*cdf0e10cSrcweir if a database access error occurs. 2191*cdf0e10cSrcweir */ 2192*cdf0e10cSrcweir XResultSet getCrossReference( 2193*cdf0e10cSrcweir [in]any primaryCatalog, [in]string primarySchema, 2194*cdf0e10cSrcweir [in]string primaryTable, 2195*cdf0e10cSrcweir [in]any foreignCatalog, [in]string foreignSchema, 2196*cdf0e10cSrcweir [in]string foreignTable) raises (SQLException); 2197*cdf0e10cSrcweir //------------------------------------------------------------------------- 2198*cdf0e10cSrcweir 2199*cdf0e10cSrcweir /** gets a description of all the standard SQL types supported by 2200*cdf0e10cSrcweir this database. They are ordered by DATA_TYPE and then by how 2201*cdf0e10cSrcweir closely the data type maps to the corresponding SDBC SQL type. 2202*cdf0e10cSrcweir 2203*cdf0e10cSrcweir 2204*cdf0e10cSrcweir 2205*cdf0e10cSrcweir <p>Each type description has the following columns: 2206*cdf0e10cSrcweir </p> 2207*cdf0e10cSrcweir <ol> 2208*cdf0e10cSrcweir <li> 2209*cdf0e10cSrcweir <b>TYPE_NAME</b> string => Type name 2210*cdf0e10cSrcweir </li> 2211*cdf0e10cSrcweir <li> 2212*cdf0e10cSrcweir <b>DATA_TYPE</b> short => SQL data type from java.sql.Types 2213*cdf0e10cSrcweir </li> 2214*cdf0e10cSrcweir <li> 2215*cdf0e10cSrcweir <b>PRECISION</b> long => maximum precision 2216*cdf0e10cSrcweir </li> 2217*cdf0e10cSrcweir <li> 2218*cdf0e10cSrcweir <b>LITERAL_PREFIX</b> string => prefix used to quote a literal 2219*cdf0e10cSrcweir (may be <NULL/>) 2220*cdf0e10cSrcweir </li> 2221*cdf0e10cSrcweir <li> 2222*cdf0e10cSrcweir <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal 2223*cdf0e10cSrcweir (may be <NULL/>) 2224*cdf0e10cSrcweir </li> 2225*cdf0e10cSrcweir <li> 2226*cdf0e10cSrcweir <b>CREATE_PARAMS</b> string => parameters used in creating 2227*cdf0e10cSrcweir the type (may be <NULL/>) 2228*cdf0e10cSrcweir </li> 2229*cdf0e10cSrcweir <li> 2230*cdf0e10cSrcweir <b>NULLABLE</b> short => can you use NULL for this type? 2231*cdf0e10cSrcweir <ul> 2232*cdf0e10cSrcweir <li> NO_NULLS - does not allow NULL values 2233*cdf0e10cSrcweir </li> 2234*cdf0e10cSrcweir <li> NULLABLE - allows NULL values 2235*cdf0e10cSrcweir </li> 2236*cdf0e10cSrcweir <li> NULLABLE_UNKNOWN - nullability unknown 2237*cdf0e10cSrcweir </li> 2238*cdf0e10cSrcweir </ul> 2239*cdf0e10cSrcweir </li> 2240*cdf0e10cSrcweir <li> 2241*cdf0e10cSrcweir <b>CASE_SENSITIVE</b> boolean=> is it case sensitive? 2242*cdf0e10cSrcweir </li> 2243*cdf0e10cSrcweir <li> 2244*cdf0e10cSrcweir <b>SEARCHABLE</b> short => can you use "WHERE" based on this type: 2245*cdf0e10cSrcweir <ul> 2246*cdf0e10cSrcweir <li> NONE - No support 2247*cdf0e10cSrcweir </li> 2248*cdf0e10cSrcweir <li> CHAR - Only supported with WHERE .. LIKE 2249*cdf0e10cSrcweir </li> 2250*cdf0e10cSrcweir <li> BASIC - Supported except for WHERE .. LIKE 2251*cdf0e10cSrcweir </li> 2252*cdf0e10cSrcweir <li> FULL - Supported for all WHERE .. 2253*cdf0e10cSrcweir </li> 2254*cdf0e10cSrcweir </ul> 2255*cdf0e10cSrcweir </li> 2256*cdf0e10cSrcweir <li> 2257*cdf0e10cSrcweir <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned? 2258*cdf0e10cSrcweir </li> 2259*cdf0e10cSrcweir <li> 2260*cdf0e10cSrcweir <b>FIXED_PREC_SCALE</b> boolean => can it be a money value? 2261*cdf0e10cSrcweir </li> 2262*cdf0e10cSrcweir <li> 2263*cdf0e10cSrcweir <b>AUTO_INCREMENT</b> boolean => can it be used for an 2264*cdf0e10cSrcweir auto-increment value? 2265*cdf0e10cSrcweir </li> 2266*cdf0e10cSrcweir <li> 2267*cdf0e10cSrcweir <b>LOCAL_TYPE_NAME</b> string => localized version of type name 2268*cdf0e10cSrcweir (may be <NULL/>) 2269*cdf0e10cSrcweir </li> 2270*cdf0e10cSrcweir <li> 2271*cdf0e10cSrcweir <b>MINIMUM_SCALE</b> short => minimum scale supported 2272*cdf0e10cSrcweir </li> 2273*cdf0e10cSrcweir <li> 2274*cdf0e10cSrcweir <b>MAXIMUM_SCALE</b> short => maximum scale supported 2275*cdf0e10cSrcweir </li> 2276*cdf0e10cSrcweir <li> 2277*cdf0e10cSrcweir <b>SQL_DATA_TYPE</b> long => unused 2278*cdf0e10cSrcweir </li> 2279*cdf0e10cSrcweir <li> 2280*cdf0e10cSrcweir <b>SQL_DATETIME_SUB</b> long => unused 2281*cdf0e10cSrcweir </li> 2282*cdf0e10cSrcweir <li> 2283*cdf0e10cSrcweir <b>NUM_PREC_RADIX</b> long => usually 2 or 10 2284*cdf0e10cSrcweir </li> 2285*cdf0e10cSrcweir </ol> 2286*cdf0e10cSrcweir @returns 2287*cdf0e10cSrcweir each row is a SQL type description 2288*cdf0e10cSrcweir @throws SQLException 2289*cdf0e10cSrcweir if a database access error occurs. 2290*cdf0e10cSrcweir */ 2291*cdf0e10cSrcweir XResultSet getTypeInfo() raises (SQLException); 2292*cdf0e10cSrcweir //------------------------------------------------------------------------- 2293*cdf0e10cSrcweir 2294*cdf0e10cSrcweir /** gets a description of a table's indices and statistics. They are 2295*cdf0e10cSrcweir ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION. 2296*cdf0e10cSrcweir 2297*cdf0e10cSrcweir 2298*cdf0e10cSrcweir <p>Each index column description has the following columns: 2299*cdf0e10cSrcweir </p> 2300*cdf0e10cSrcweir <ol> 2301*cdf0e10cSrcweir <li> 2302*cdf0e10cSrcweir <b>TABLE_CAT</b> string => table catalog (may be <NULL/>) 2303*cdf0e10cSrcweir </li> 2304*cdf0e10cSrcweir <li> 2305*cdf0e10cSrcweir <b>TABLE_SCHEM</b> string => table schema (may be <NULL/>) 2306*cdf0e10cSrcweir </li> 2307*cdf0e10cSrcweir <li> 2308*cdf0e10cSrcweir <b>TABLE_NAME</b> string => table name 2309*cdf0e10cSrcweir </li> 2310*cdf0e10cSrcweir <li> 2311*cdf0e10cSrcweir <b>NON_UNIQUE</b> boolean => Can index values be non-unique? 2312*cdf0e10cSrcweir <FALSE/> when TYPE is tableIndexStatistic 2313*cdf0e10cSrcweir </li> 2314*cdf0e10cSrcweir <li> 2315*cdf0e10cSrcweir <b>INDEX_QUALIFIER</b> string => index catalog (may be <NULL/>); 2316*cdf0e10cSrcweir <NULL/> when TYPE is tableIndexStatistic 2317*cdf0e10cSrcweir </li> 2318*cdf0e10cSrcweir <li> 2319*cdf0e10cSrcweir <b>INDEX_NAME</b> string => index name; <NULL/> when TYPE is 2320*cdf0e10cSrcweir tableIndexStatistic 2321*cdf0e10cSrcweir </li> 2322*cdf0e10cSrcweir <li> 2323*cdf0e10cSrcweir <b>TYPE</b> short => index type: 2324*cdf0e10cSrcweir <ul> 2325*cdf0e10cSrcweir <li> 0 - this identifies table statistics that are 2326*cdf0e10cSrcweir returned in conjuction with a table's index descriptions 2327*cdf0e10cSrcweir </li> 2328*cdf0e10cSrcweir <li> CLUSTERED - this is a clustered index 2329*cdf0e10cSrcweir </li> 2330*cdf0e10cSrcweir <li> HASHED - this is a hashed index 2331*cdf0e10cSrcweir </li> 2332*cdf0e10cSrcweir <li> OTHER - this is some other style of index 2333*cdf0e10cSrcweir </li> 2334*cdf0e10cSrcweir </ul> 2335*cdf0e10cSrcweir </li> 2336*cdf0e10cSrcweir <li> 2337*cdf0e10cSrcweir <b>ORDINAL_POSITION</b> short => column sequence number 2338*cdf0e10cSrcweir within index; zero when TYPE is tableIndexStatistic 2339*cdf0e10cSrcweir </li> 2340*cdf0e10cSrcweir <li> 2341*cdf0e10cSrcweir <b>COLUMN_NAME</b> string => column name; <NULL/> when TYPE is 2342*cdf0e10cSrcweir tableIndexStatistic 2343*cdf0e10cSrcweir </li> 2344*cdf0e10cSrcweir <li> 2345*cdf0e10cSrcweir <b>ASC_OR_DESC</b> string => column sort sequence, "A" => ascending, 2346*cdf0e10cSrcweir "D" => descending, may be <NULL/> if sort sequence is not supported; 2347*cdf0e10cSrcweir <NULL/> when TYPE is tableIndexStatistic 2348*cdf0e10cSrcweir </li> 2349*cdf0e10cSrcweir <li> 2350*cdf0e10cSrcweir <b>CARDINALITY</b> long => When TYPE is tableIndexStatistic, then 2351*cdf0e10cSrcweir this is the number of rows in the table; otherwise, it is the 2352*cdf0e10cSrcweir number of unique values in the index. 2353*cdf0e10cSrcweir </li> 2354*cdf0e10cSrcweir <li> 2355*cdf0e10cSrcweir <b>PAGES</b> long => When TYPE is tableIndexStatisic then 2356*cdf0e10cSrcweir this is the number of pages used for the table, otherwise it 2357*cdf0e10cSrcweir is the number of pages used for the current index. 2358*cdf0e10cSrcweir </li> 2359*cdf0e10cSrcweir <li> 2360*cdf0e10cSrcweir <b>FILTER_CONDITION</b> string => Filter condition, if any. 2361*cdf0e10cSrcweir (may be <NULL/>) 2362*cdf0e10cSrcweir </li> 2363*cdf0e10cSrcweir </ol> 2364*cdf0e10cSrcweir @param catalog 2365*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 2366*cdf0e10cSrcweir @param schema 2367*cdf0e10cSrcweir a schema name; "" retrieves those without a schema 2368*cdf0e10cSrcweir @param table 2369*cdf0e10cSrcweir the table name that exports the key 2370*cdf0e10cSrcweir @param unique 2371*cdf0e10cSrcweir when <TRUE/>, return only indices for unique values; when <FALSE/>, return indices regardless of whether unique or not 2372*cdf0e10cSrcweir @param approximate 2373*cdf0e10cSrcweir when <TRUE/>, result is allowed to reflect approximate or out of data values; when <FALSE/>, results are requested to be accurate 2374*cdf0e10cSrcweir @returns 2375*cdf0e10cSrcweir each row is an index column description 2376*cdf0e10cSrcweir @throws SQLException 2377*cdf0e10cSrcweir if a database access error occurs. 2378*cdf0e10cSrcweir */ 2379*cdf0e10cSrcweir XResultSet getIndexInfo([in]any catalog, [in]string schema, [in]string table, 2380*cdf0e10cSrcweir [in]boolean unique, [in]boolean approximate) 2381*cdf0e10cSrcweir raises (SQLException); 2382*cdf0e10cSrcweir //------------------------------------------------------------------------- 2383*cdf0e10cSrcweir 2384*cdf0e10cSrcweir /** Does the database support the given result set type? 2385*cdf0e10cSrcweir @param setType 2386*cdf0e10cSrcweir defined in 2387*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2388*cdf0e10cSrcweir @returns 2389*cdf0e10cSrcweir <TRUE/> if so 2390*cdf0e10cSrcweir @throws SQLException 2391*cdf0e10cSrcweir if a database access error occurs. 2392*cdf0e10cSrcweir */ 2393*cdf0e10cSrcweir boolean supportsResultSetType([in]long setType) raises (SQLException); 2394*cdf0e10cSrcweir //------------------------------------------------------------------------- 2395*cdf0e10cSrcweir 2396*cdf0e10cSrcweir /** Does the database support the concurrency type in combination 2397*cdf0e10cSrcweir with the given result set type? 2398*cdf0e10cSrcweir @param setType 2399*cdf0e10cSrcweir defined in 2400*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2401*cdf0e10cSrcweir @param concurrency 2402*cdf0e10cSrcweir defined in 2403*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetConcurrency</type> 2404*cdf0e10cSrcweir @returns 2405*cdf0e10cSrcweir <TRUE/> if so 2406*cdf0e10cSrcweir @throws SQLException 2407*cdf0e10cSrcweir if a database access error occurs. 2408*cdf0e10cSrcweir */ 2409*cdf0e10cSrcweir boolean supportsResultSetConcurrency([in]long setType, 2410*cdf0e10cSrcweir [in]long concurrency) 2411*cdf0e10cSrcweir raises (SQLException); 2412*cdf0e10cSrcweir //------------------------------------------------------------------------- 2413*cdf0e10cSrcweir 2414*cdf0e10cSrcweir /** indicates whether a result set's own updates are visible. 2415*cdf0e10cSrcweir @param setType 2416*cdf0e10cSrcweir defined in 2417*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2418*cdf0e10cSrcweir @returns 2419*cdf0e10cSrcweir <TRUE/> if so 2420*cdf0e10cSrcweir @throws SQLException 2421*cdf0e10cSrcweir if a database access error occurs. 2422*cdf0e10cSrcweir */ 2423*cdf0e10cSrcweir boolean ownUpdatesAreVisible([in]long setType) raises (SQLException); 2424*cdf0e10cSrcweir //------------------------------------------------------------------------- 2425*cdf0e10cSrcweir 2426*cdf0e10cSrcweir /** indicates whether a result set's own deletes are visible. 2427*cdf0e10cSrcweir @param setType 2428*cdf0e10cSrcweir defined in 2429*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2430*cdf0e10cSrcweir @returns 2431*cdf0e10cSrcweir <TRUE/> if so 2432*cdf0e10cSrcweir @throws SQLException 2433*cdf0e10cSrcweir if a database access error occurs. 2434*cdf0e10cSrcweir */ 2435*cdf0e10cSrcweir boolean ownDeletesAreVisible([in]long setType) raises (SQLException); 2436*cdf0e10cSrcweir //------------------------------------------------------------------------- 2437*cdf0e10cSrcweir 2438*cdf0e10cSrcweir /** indicates whether a result set's own inserts are visible. 2439*cdf0e10cSrcweir @param setType 2440*cdf0e10cSrcweir defined in 2441*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2442*cdf0e10cSrcweir @returns 2443*cdf0e10cSrcweir <TRUE/> if so 2444*cdf0e10cSrcweir @throws SQLException 2445*cdf0e10cSrcweir if a database access error occurs. 2446*cdf0e10cSrcweir */ 2447*cdf0e10cSrcweir boolean ownInsertsAreVisible([in]long setType) raises (SQLException); 2448*cdf0e10cSrcweir //------------------------------------------------------------------------- 2449*cdf0e10cSrcweir 2450*cdf0e10cSrcweir /** indicates whether updates made by others are visible. 2451*cdf0e10cSrcweir @param setType 2452*cdf0e10cSrcweir defined in 2453*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2454*cdf0e10cSrcweir @returns 2455*cdf0e10cSrcweir <TRUE/> if so 2456*cdf0e10cSrcweir @throws SQLException 2457*cdf0e10cSrcweir if a database access error occurs. 2458*cdf0e10cSrcweir */ 2459*cdf0e10cSrcweir boolean othersUpdatesAreVisible([in]long setType) raises (SQLException); 2460*cdf0e10cSrcweir //------------------------------------------------------------------------- 2461*cdf0e10cSrcweir 2462*cdf0e10cSrcweir /** indicates whether deletes made by others are visible. 2463*cdf0e10cSrcweir @param setType 2464*cdf0e10cSrcweir defined in 2465*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2466*cdf0e10cSrcweir @returns 2467*cdf0e10cSrcweir <TRUE/> if so 2468*cdf0e10cSrcweir @throws SQLException 2469*cdf0e10cSrcweir if a database access error occurs. 2470*cdf0e10cSrcweir */ 2471*cdf0e10cSrcweir boolean othersDeletesAreVisible([in]long setType) raises (SQLException); 2472*cdf0e10cSrcweir //------------------------------------------------------------------------- 2473*cdf0e10cSrcweir 2474*cdf0e10cSrcweir /** indicates whether inserts made by others are visible. 2475*cdf0e10cSrcweir @param setType 2476*cdf0e10cSrcweir defined in 2477*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2478*cdf0e10cSrcweir @returns 2479*cdf0e10cSrcweir <TRUE/> if so 2480*cdf0e10cSrcweir @throws SQLException 2481*cdf0e10cSrcweir if a database access error occurs. 2482*cdf0e10cSrcweir */ 2483*cdf0e10cSrcweir boolean othersInsertsAreVisible([in]long setType) raises (SQLException); 2484*cdf0e10cSrcweir //------------------------------------------------------------------------- 2485*cdf0e10cSrcweir 2486*cdf0e10cSrcweir /** indicates whether or not a visible row update can be detected by 2487*cdf0e10cSrcweir calling the method 2488*cdf0e10cSrcweir <code>XResultSet.rowUpdated</code>. 2489*cdf0e10cSrcweir @param setType 2490*cdf0e10cSrcweir defined in 2491*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2492*cdf0e10cSrcweir @returns 2493*cdf0e10cSrcweir <TRUE/> if so 2494*cdf0e10cSrcweir @throws SQLException 2495*cdf0e10cSrcweir if a database access error occurs. 2496*cdf0e10cSrcweir */ 2497*cdf0e10cSrcweir boolean updatesAreDetected([in]long setType) raises (SQLException); 2498*cdf0e10cSrcweir //------------------------------------------------------------------------- 2499*cdf0e10cSrcweir 2500*cdf0e10cSrcweir /** indicates whether or not a visible row delete can be detected by 2501*cdf0e10cSrcweir calling 2502*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XResultSet::rowDeleted()</member> 2503*cdf0e10cSrcweir . If deletesAreDetected() 2504*cdf0e10cSrcweir returns <FALSE/>, then deleted rows are removed from the result set. 2505*cdf0e10cSrcweir @param setType 2506*cdf0e10cSrcweir defined in 2507*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2508*cdf0e10cSrcweir @returns 2509*cdf0e10cSrcweir <TRUE/> if so 2510*cdf0e10cSrcweir @throws SQLException 2511*cdf0e10cSrcweir if a database access error occurs. 2512*cdf0e10cSrcweir */ 2513*cdf0e10cSrcweir boolean deletesAreDetected([in]long setType) raises (SQLException); 2514*cdf0e10cSrcweir //------------------------------------------------------------------------- 2515*cdf0e10cSrcweir 2516*cdf0e10cSrcweir /** indicates whether or not a visible row insert can be detected 2517*cdf0e10cSrcweir by calling 2518*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XResultSet::rowInserted().</member> 2519*cdf0e10cSrcweir @param setType 2520*cdf0e10cSrcweir defined in 2521*cdf0e10cSrcweir <type scop="com::sun::star::sdbc">ResultSetType</type> 2522*cdf0e10cSrcweir @returns 2523*cdf0e10cSrcweir <TRUE/> if so 2524*cdf0e10cSrcweir @throws SQLException 2525*cdf0e10cSrcweir if a database access error occurs. 2526*cdf0e10cSrcweir */ 2527*cdf0e10cSrcweir boolean insertsAreDetected([in]long setType) raises (SQLException); 2528*cdf0e10cSrcweir //------------------------------------------------------------------------- 2529*cdf0e10cSrcweir 2530*cdf0e10cSrcweir /** indicates whether the driver supports batch updates. 2531*cdf0e10cSrcweir @returns 2532*cdf0e10cSrcweir <TRUE/> if so 2533*cdf0e10cSrcweir @throws SQLException 2534*cdf0e10cSrcweir if a database access error occurs. 2535*cdf0e10cSrcweir */ 2536*cdf0e10cSrcweir boolean supportsBatchUpdates() raises (SQLException); 2537*cdf0e10cSrcweir //------------------------------------------------------------------------- 2538*cdf0e10cSrcweir 2539*cdf0e10cSrcweir /** Gets a description of the user-defined types defined in a particular 2540*cdf0e10cSrcweir schema. Schema-specific UDTs may have type OBJECT, STRUCT, 2541*cdf0e10cSrcweir or DISTINCT. 2542*cdf0e10cSrcweir 2543*cdf0e10cSrcweir 2544*cdf0e10cSrcweir <p>Only types matching the catalog, schema, type name, and type 2545*cdf0e10cSrcweir criteria are returned. They are ordered by DATA_TYPE, TYPE_SCHEM, 2546*cdf0e10cSrcweir and TYPE_NAME. The type name parameter may be a fully-qualified 2547*cdf0e10cSrcweir name. In this case, the catalog and schemaPattern parameters are 2548*cdf0e10cSrcweir ignored. 2549*cdf0e10cSrcweir </p> 2550*cdf0e10cSrcweir <p>Each type description has the following columns: 2551*cdf0e10cSrcweir </p> 2552*cdf0e10cSrcweir <ol> 2553*cdf0e10cSrcweir <li> 2554*cdf0e10cSrcweir <b>TYPE_CAT</b> string => the type's catalog (may be <NULL/>) 2555*cdf0e10cSrcweir </li> 2556*cdf0e10cSrcweir <li> 2557*cdf0e10cSrcweir <b>TYPE_SCHEM</b> string => type's schema (may be <NULL/>) 2558*cdf0e10cSrcweir </li> 2559*cdf0e10cSrcweir <li> 2560*cdf0e10cSrcweir <b>TYPE_NAME</b> string => type name 2561*cdf0e10cSrcweir </li> 2562*cdf0e10cSrcweir <li> 2563*cdf0e10cSrcweir <b>CLASS_NAME</b> string => Java class name or service name 2564*cdf0e10cSrcweir </li> 2565*cdf0e10cSrcweir <li> 2566*cdf0e10cSrcweir <b>DATA_TYPE</b> string => type value. 2567*cdf0e10cSrcweir One of OBJECT, STRUCT, or DISTINCT 2568*cdf0e10cSrcweir </li> 2569*cdf0e10cSrcweir <li> 2570*cdf0e10cSrcweir <b>REMARKS</b> string => explanatory comment on the type 2571*cdf0e10cSrcweir </li> 2572*cdf0e10cSrcweir </ol> 2573*cdf0e10cSrcweir <p> 2574*cdf0e10cSrcweir <b>Note:</b> If the driver does not support UDTs, an empty 2575*cdf0e10cSrcweir result set is returned. 2576*cdf0e10cSrcweir </p> 2577*cdf0e10cSrcweir @param catalog 2578*cdf0e10cSrcweir a catalog name; "" retrieves those without a catalog; <VOID/> means drop catalog name from the selection criteria 2579*cdf0e10cSrcweir @param schemaPattern 2580*cdf0e10cSrcweir a schema name pattern; "" retrieves those without a schema 2581*cdf0e10cSrcweir @param typeNamePattern 2582*cdf0e10cSrcweir a type name pattern; may be a fully-qualified name 2583*cdf0e10cSrcweir @param types 2584*cdf0e10cSrcweir a list of user-named types to include (OBJECT, STRUCT, or DISTINCT) 2585*cdf0e10cSrcweir @returns 2586*cdf0e10cSrcweir each row is a type description 2587*cdf0e10cSrcweir @throws SQLException 2588*cdf0e10cSrcweir if a database access error occurs. 2589*cdf0e10cSrcweir */ 2590*cdf0e10cSrcweir XResultSet getUDTs([in]any catalog, [in]string schemaPattern, 2591*cdf0e10cSrcweir [in]string typeNamePattern, [in]sequence<long> types) 2592*cdf0e10cSrcweir raises (SQLException); 2593*cdf0e10cSrcweir //------------------------------------------------------------------------- 2594*cdf0e10cSrcweir 2595*cdf0e10cSrcweir /** retrieves the connection that produced this metadata object. 2596*cdf0e10cSrcweir @returns 2597*cdf0e10cSrcweir the Connection object 2598*cdf0e10cSrcweir @throws SQLException 2599*cdf0e10cSrcweir if a database access error occurs. 2600*cdf0e10cSrcweir */ 2601*cdf0e10cSrcweir XConnection getConnection() raises (SQLException); 2602*cdf0e10cSrcweir}; 2603*cdf0e10cSrcweir 2604*cdf0e10cSrcweir//============================================================================= 2605*cdf0e10cSrcweir 2606*cdf0e10cSrcweir}; }; }; }; 2607*cdf0e10cSrcweir 2608*cdf0e10cSrcweir/*=========================================================================== 2609*cdf0e10cSrcweir===========================================================================*/ 2610*cdf0e10cSrcweir#endif 2611