1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_connectivity.hxx" 30 31 #include "KDatabaseMetaData.hxx" 32 #include "kfields.hxx" 33 #include "KDEInit.h" 34 #include <shell/kde_headers.h> 35 #include "FDatabaseMetaDataResultSet.hxx" 36 #include "OTypeInfo.hxx" 37 #include <com/sun/star/sdbc/ColumnValue.hpp> 38 #include <com/sun/star/sdbc/ResultSetType.hpp> 39 #include <com/sun/star/sdbc/TransactionIsolation.hpp> 40 41 using namespace connectivity::kab; 42 using namespace com::sun::star::uno; 43 using namespace com::sun::star::lang; 44 using namespace com::sun::star::beans; 45 using namespace com::sun::star::sdbc; 46 47 KabDatabaseMetaData::KabDatabaseMetaData(KabConnection* _pCon) 48 : m_xConnection(_pCon), 49 m_bUseCatalog(sal_True) 50 { 51 OSL_ENSURE(_pCon,"KabDatabaseMetaData::KabDatabaseMetaData: No connection set!"); 52 53 osl_incrementInterlockedCount( &m_refCount ); 54 m_bUseCatalog = !(usesLocalFiles() || usesLocalFilePerTable()); 55 osl_decrementInterlockedCount( &m_refCount ); 56 } 57 // ------------------------------------------------------------------------- 58 KabDatabaseMetaData::~KabDatabaseMetaData() 59 { 60 } 61 // ------------------------------------------------------------------------- 62 const ::rtl::OUString & KabDatabaseMetaData::getAddressBookTableName() 63 { 64 static const ::rtl::OUString aAddressBookTableName 65 (::rtl::OUString::createFromAscii( i18n("Address Book") )); 66 67 return aAddressBookTableName; 68 } 69 // ------------------------------------------------------------------------- 70 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getCatalogSeparator( ) throw(SQLException, RuntimeException) 71 { 72 ::rtl::OUString aVal; 73 if (m_bUseCatalog) 74 { // do some special here for you database 75 } 76 77 return aVal; 78 } 79 // ------------------------------------------------------------------------- 80 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException) 81 { 82 sal_Int32 nValue = 0; // 0 means no limit 83 return nValue; 84 } 85 // ------------------------------------------------------------------------- 86 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxRowSize( ) throw(SQLException, RuntimeException) 87 { 88 sal_Int32 nValue = 0; // 0 means no limit 89 return nValue; 90 } 91 // ------------------------------------------------------------------------- 92 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCatalogNameLength( ) throw(SQLException, RuntimeException) 93 { 94 sal_Int32 nValue = 0; // 0 means no limit 95 return nValue; 96 } 97 // ------------------------------------------------------------------------- 98 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException) 99 { 100 sal_Int32 nValue = 0; // 0 means no limit 101 return nValue; 102 } 103 // ------------------------------------------------------------------------- 104 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException) 105 { 106 sal_Int32 nValue = 0; // 0 means no limit 107 return nValue; 108 } 109 // ------------------------------------------------------------------------- 110 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException) 111 { 112 sal_Int32 nValue = 0; // 0 means no limit 113 return nValue; 114 } 115 // ------------------------------------------------------------------------- 116 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCursorNameLength( ) throw(SQLException, RuntimeException) 117 { 118 sal_Int32 nValue = 0; // 0 means no limit 119 return nValue; 120 } 121 // ------------------------------------------------------------------------- 122 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxConnections( ) throw(SQLException, RuntimeException) 123 { 124 sal_Int32 nValue = 0; // 0 means no limit 125 return nValue; 126 } 127 // ------------------------------------------------------------------------- 128 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException) 129 { 130 sal_Int32 nValue = 0; // 0 means no limit 131 return nValue; 132 } 133 // ------------------------------------------------------------------------- 134 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxStatementLength( ) throw(SQLException, RuntimeException) 135 { 136 sal_Int32 nValue = 0; // 0 means no limit 137 return nValue; 138 } 139 // ------------------------------------------------------------------------- 140 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxTableNameLength( ) throw(SQLException, RuntimeException) 141 { 142 sal_Int32 nValue = 0; // 0 means no limit 143 return nValue; 144 } 145 // ------------------------------------------------------------------------- 146 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxTablesInSelect( ) throw(SQLException, RuntimeException) 147 { 148 // MaxTablesInSelect describes how many tables can participate in the FROM part of a given SELECT statement, 149 // currently, the resultset/statement implementations can cope with one table only 150 sal_Int32 nValue = 1; 151 return nValue; 152 } 153 // ------------------------------------------------------------------------- 154 sal_Bool SAL_CALL KabDatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw(SQLException, RuntimeException) 155 { 156 return sal_False; 157 } 158 // ------------------------------------------------------------------------- 159 sal_Bool SAL_CALL KabDatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) 160 { 161 return sal_False; 162 } 163 // ------------------------------------------------------------------------- 164 sal_Bool SAL_CALL KabDatabaseMetaData::storesLowerCaseIdentifiers( ) throw(SQLException, RuntimeException) 165 { 166 return sal_False; 167 } 168 // ------------------------------------------------------------------------- 169 sal_Bool SAL_CALL KabDatabaseMetaData::storesMixedCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) 170 { 171 return sal_False; 172 } 173 // ------------------------------------------------------------------------- 174 sal_Bool SAL_CALL KabDatabaseMetaData::storesMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) 175 { 176 return sal_False; 177 } 178 // ------------------------------------------------------------------------- 179 sal_Bool SAL_CALL KabDatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) 180 { 181 return sal_False; 182 } 183 // ------------------------------------------------------------------------- 184 sal_Bool SAL_CALL KabDatabaseMetaData::storesUpperCaseIdentifiers( ) throw(SQLException, RuntimeException) 185 { 186 return sal_False; 187 } 188 // ------------------------------------------------------------------------- 189 sal_Bool SAL_CALL KabDatabaseMetaData::supportsAlterTableWithAddColumn( ) throw(SQLException, RuntimeException) 190 { 191 return sal_False; 192 } 193 // ------------------------------------------------------------------------- 194 sal_Bool SAL_CALL KabDatabaseMetaData::supportsAlterTableWithDropColumn( ) throw(SQLException, RuntimeException) 195 { 196 return sal_False; 197 } 198 // ------------------------------------------------------------------------- 199 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxIndexLength( ) throw(SQLException, RuntimeException) 200 { 201 sal_Int32 nValue = 0; // 0 means no limit 202 return nValue; 203 } 204 // ------------------------------------------------------------------------- 205 sal_Bool SAL_CALL KabDatabaseMetaData::supportsNonNullableColumns( ) throw(SQLException, RuntimeException) 206 { 207 return sal_False; 208 } 209 // ------------------------------------------------------------------------- 210 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getCatalogTerm( ) throw(SQLException, RuntimeException) 211 { 212 ::rtl::OUString aVal; 213 if (m_bUseCatalog) 214 { 215 } 216 return aVal; 217 } 218 // ------------------------------------------------------------------------- 219 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getIdentifierQuoteString( ) throw(SQLException, RuntimeException) 220 { 221 // normally this is " 222 ::rtl::OUString aVal = ::rtl::OUString::createFromAscii("\""); 223 return aVal; 224 } 225 // ------------------------------------------------------------------------- 226 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getExtraNameCharacters( ) throw(SQLException, RuntimeException) 227 { 228 ::rtl::OUString aVal; 229 return aVal; 230 } 231 // ------------------------------------------------------------------------- 232 sal_Bool SAL_CALL KabDatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw(SQLException, RuntimeException) 233 { 234 return sal_False; 235 } 236 // ------------------------------------------------------------------------- 237 sal_Bool SAL_CALL KabDatabaseMetaData::isCatalogAtStart( ) throw(SQLException, RuntimeException) 238 { 239 sal_Bool bValue = sal_False; 240 if (m_bUseCatalog) 241 { 242 } 243 return bValue; 244 } 245 // ------------------------------------------------------------------------- 246 sal_Bool SAL_CALL KabDatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw(SQLException, RuntimeException) 247 { 248 return sal_True; 249 } 250 // ------------------------------------------------------------------------- 251 sal_Bool SAL_CALL KabDatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw(SQLException, RuntimeException) 252 { 253 return sal_True; 254 } 255 // ------------------------------------------------------------------------- 256 sal_Bool SAL_CALL KabDatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw(SQLException, RuntimeException) 257 { 258 return sal_True; 259 } 260 // ------------------------------------------------------------------------- 261 sal_Bool SAL_CALL KabDatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( ) throw(SQLException, RuntimeException) 262 { 263 return sal_True; 264 } 265 // ------------------------------------------------------------------------- 266 sal_Bool SAL_CALL KabDatabaseMetaData::supportsPositionedDelete( ) throw(SQLException, RuntimeException) 267 { 268 return sal_False; 269 } 270 // ------------------------------------------------------------------------- 271 sal_Bool SAL_CALL KabDatabaseMetaData::supportsPositionedUpdate( ) throw(SQLException, RuntimeException) 272 { 273 return sal_False; 274 } 275 // ------------------------------------------------------------------------- 276 sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw(SQLException, RuntimeException) 277 { 278 return sal_False; 279 } 280 // ------------------------------------------------------------------------- 281 sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw(SQLException, RuntimeException) 282 { 283 return sal_False; 284 } 285 // ------------------------------------------------------------------------- 286 sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw(SQLException, RuntimeException) 287 { 288 return sal_False; 289 } 290 // ------------------------------------------------------------------------- 291 sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw(SQLException, RuntimeException) 292 { 293 return sal_False; 294 } 295 // ------------------------------------------------------------------------- 296 sal_Bool SAL_CALL KabDatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 ) throw(SQLException, RuntimeException) 297 { 298 return sal_False; 299 } 300 // ------------------------------------------------------------------------- 301 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInDataManipulation( ) throw(SQLException, RuntimeException) 302 { 303 return sal_False; 304 } 305 // ------------------------------------------------------------------------- 306 sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92FullSQL( ) throw(SQLException, RuntimeException) 307 { 308 return sal_False; 309 } 310 // ------------------------------------------------------------------------- 311 sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw(SQLException, RuntimeException) 312 { 313 return sal_True; // should be supported at least 314 } 315 // ------------------------------------------------------------------------- 316 sal_Bool SAL_CALL KabDatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw(SQLException, RuntimeException) 317 { 318 return sal_False; 319 } 320 // ------------------------------------------------------------------------- 321 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw(SQLException, RuntimeException) 322 { 323 return sal_False; 324 } 325 // ------------------------------------------------------------------------- 326 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInTableDefinitions( ) throw(SQLException, RuntimeException) 327 { 328 return sal_False; 329 } 330 // ------------------------------------------------------------------------- 331 sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInTableDefinitions( ) throw(SQLException, RuntimeException) 332 { 333 return sal_False; 334 } 335 // ------------------------------------------------------------------------- 336 sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw(SQLException, RuntimeException) 337 { 338 return sal_False; 339 } 340 // ------------------------------------------------------------------------- 341 sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInDataManipulation( ) throw(SQLException, RuntimeException) 342 { 343 return sal_False; 344 } 345 // ------------------------------------------------------------------------- 346 sal_Bool SAL_CALL KabDatabaseMetaData::supportsOuterJoins( ) throw(SQLException, RuntimeException) 347 { 348 return sal_False; 349 } 350 // ------------------------------------------------------------------------- 351 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxStatements( ) throw(SQLException, RuntimeException) 352 { 353 sal_Int32 nValue = 0; // 0 means no limit 354 return nValue; 355 } 356 // ------------------------------------------------------------------------- 357 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxProcedureNameLength( ) throw(SQLException, RuntimeException) 358 { 359 sal_Int32 nValue = 0; // 0 means no limit 360 return nValue; 361 } 362 // ------------------------------------------------------------------------- 363 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxSchemaNameLength( ) throw(SQLException, RuntimeException) 364 { 365 sal_Int32 nValue = 0; // 0 means no limit 366 return nValue; 367 } 368 // ------------------------------------------------------------------------- 369 sal_Bool SAL_CALL KabDatabaseMetaData::supportsTransactions( ) throw(SQLException, RuntimeException) 370 { 371 return sal_False; 372 } 373 // ------------------------------------------------------------------------- 374 sal_Bool SAL_CALL KabDatabaseMetaData::allProceduresAreCallable( ) throw(SQLException, RuntimeException) 375 { 376 return sal_False; 377 } 378 // ------------------------------------------------------------------------- 379 sal_Bool SAL_CALL KabDatabaseMetaData::supportsStoredProcedures( ) throw(SQLException, RuntimeException) 380 { 381 return sal_False; 382 } 383 // ------------------------------------------------------------------------- 384 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSelectForUpdate( ) throw(SQLException, RuntimeException) 385 { 386 return sal_False; 387 } 388 // ------------------------------------------------------------------------- 389 sal_Bool SAL_CALL KabDatabaseMetaData::allTablesAreSelectable( ) throw(SQLException, RuntimeException) 390 { 391 return sal_False; 392 } 393 // ------------------------------------------------------------------------- 394 sal_Bool SAL_CALL KabDatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException) 395 { 396 // for the moment, we have read-only addresses, but this might change in the future 397 return sal_True; 398 } 399 // ------------------------------------------------------------------------- 400 sal_Bool SAL_CALL KabDatabaseMetaData::usesLocalFiles( ) throw(SQLException, RuntimeException) 401 { 402 return sal_False; 403 } 404 // ------------------------------------------------------------------------- 405 sal_Bool SAL_CALL KabDatabaseMetaData::usesLocalFilePerTable( ) throw(SQLException, RuntimeException) 406 { 407 return sal_False; 408 } 409 // ------------------------------------------------------------------------- 410 sal_Bool SAL_CALL KabDatabaseMetaData::supportsTypeConversion( ) throw(SQLException, RuntimeException) 411 { 412 return sal_False; 413 } 414 // ------------------------------------------------------------------------- 415 sal_Bool SAL_CALL KabDatabaseMetaData::nullPlusNonNullIsNull( ) throw(SQLException, RuntimeException) 416 { 417 return sal_False; 418 } 419 // ------------------------------------------------------------------------- 420 sal_Bool SAL_CALL KabDatabaseMetaData::supportsColumnAliasing( ) throw(SQLException, RuntimeException) 421 { 422 return sal_False; 423 } 424 // ------------------------------------------------------------------------- 425 sal_Bool SAL_CALL KabDatabaseMetaData::supportsTableCorrelationNames( ) throw(SQLException, RuntimeException) 426 { 427 return sal_False; 428 } 429 // ------------------------------------------------------------------------- 430 sal_Bool SAL_CALL KabDatabaseMetaData::supportsConvert( sal_Int32, sal_Int32 ) throw(SQLException, RuntimeException) 431 { 432 return sal_False; 433 } 434 // ------------------------------------------------------------------------- 435 sal_Bool SAL_CALL KabDatabaseMetaData::supportsExpressionsInOrderBy( ) throw(SQLException, RuntimeException) 436 { 437 return sal_False; 438 } 439 // ------------------------------------------------------------------------- 440 sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupBy( ) throw(SQLException, RuntimeException) 441 { 442 return sal_False; 443 } 444 // ------------------------------------------------------------------------- 445 sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupByBeyondSelect( ) throw(SQLException, RuntimeException) 446 { 447 return sal_False; 448 } 449 // ------------------------------------------------------------------------- 450 sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupByUnrelated( ) throw(SQLException, RuntimeException) 451 { 452 return sal_False; 453 } 454 // ------------------------------------------------------------------------- 455 sal_Bool SAL_CALL KabDatabaseMetaData::supportsMultipleTransactions( ) throw(SQLException, RuntimeException) 456 { 457 return sal_False; 458 } 459 // ------------------------------------------------------------------------- 460 sal_Bool SAL_CALL KabDatabaseMetaData::supportsMultipleResultSets( ) throw(SQLException, RuntimeException) 461 { 462 return sal_False; 463 } 464 // ------------------------------------------------------------------------- 465 sal_Bool SAL_CALL KabDatabaseMetaData::supportsLikeEscapeClause( ) throw(SQLException, RuntimeException) 466 { 467 return sal_False; 468 } 469 // ------------------------------------------------------------------------- 470 sal_Bool SAL_CALL KabDatabaseMetaData::supportsOrderByUnrelated( ) throw(SQLException, RuntimeException) 471 { 472 return sal_False; 473 } 474 // ------------------------------------------------------------------------- 475 sal_Bool SAL_CALL KabDatabaseMetaData::supportsUnion( ) throw(SQLException, RuntimeException) 476 { 477 return sal_False; 478 } 479 // ------------------------------------------------------------------------- 480 sal_Bool SAL_CALL KabDatabaseMetaData::supportsUnionAll( ) throw(SQLException, RuntimeException) 481 { 482 return sal_False; 483 } 484 // ------------------------------------------------------------------------- 485 sal_Bool SAL_CALL KabDatabaseMetaData::supportsMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) 486 { 487 return sal_False; 488 } 489 // ------------------------------------------------------------------------- 490 sal_Bool SAL_CALL KabDatabaseMetaData::supportsMixedCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) 491 { 492 return sal_False; 493 } 494 // ------------------------------------------------------------------------- 495 sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedAtEnd( ) throw(SQLException, RuntimeException) 496 { 497 return sal_False; 498 } 499 // ------------------------------------------------------------------------- 500 sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedAtStart( ) throw(SQLException, RuntimeException) 501 { 502 return sal_False; 503 } 504 // ------------------------------------------------------------------------- 505 sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedHigh( ) throw(SQLException, RuntimeException) 506 { 507 return sal_False; 508 } 509 // ------------------------------------------------------------------------- 510 sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedLow( ) throw(SQLException, RuntimeException) 511 { 512 return sal_False; 513 } 514 // ------------------------------------------------------------------------- 515 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInProcedureCalls( ) throw(SQLException, RuntimeException) 516 { 517 return sal_False; 518 } 519 // ------------------------------------------------------------------------- 520 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) 521 { 522 return sal_False; 523 } 524 // ------------------------------------------------------------------------- 525 sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw(SQLException, RuntimeException) 526 { 527 return sal_False; 528 } 529 // ------------------------------------------------------------------------- 530 sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) 531 { 532 return sal_False; 533 } 534 // ------------------------------------------------------------------------- 535 sal_Bool SAL_CALL KabDatabaseMetaData::supportsCorrelatedSubqueries( ) throw(SQLException, RuntimeException) 536 { 537 return sal_False; 538 } 539 // ------------------------------------------------------------------------- 540 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInComparisons( ) throw(SQLException, RuntimeException) 541 { 542 return sal_False; 543 } 544 // ------------------------------------------------------------------------- 545 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInExists( ) throw(SQLException, RuntimeException) 546 { 547 return sal_False; 548 } 549 // ------------------------------------------------------------------------- 550 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInIns( ) throw(SQLException, RuntimeException) 551 { 552 return sal_False; 553 } 554 // ------------------------------------------------------------------------- 555 sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw(SQLException, RuntimeException) 556 { 557 return sal_False; 558 } 559 // ------------------------------------------------------------------------- 560 sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQLException, RuntimeException) 561 { 562 return sal_False; 563 } 564 // ------------------------------------------------------------------------- 565 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getURL( ) throw(SQLException, RuntimeException) 566 { 567 // if someday we support more than the default address book, 568 // this method should return the URL which was used to create it 569 ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:address:kab:"); 570 return aValue; 571 } 572 // ------------------------------------------------------------------------- 573 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getUserName( ) throw(SQLException, RuntimeException) 574 { 575 ::rtl::OUString aValue; 576 return aValue; 577 } 578 // ------------------------------------------------------------------------- 579 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDriverName( ) throw(SQLException, RuntimeException) 580 { 581 ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("kab"); 582 return aValue; 583 } 584 // ------------------------------------------------------------------------- 585 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDriverVersion() throw(SQLException, RuntimeException) 586 { 587 ::rtl::OUString aValue = ::rtl::OUString::createFromAscii(KAB_DRIVER_VERSION); 588 return aValue; 589 } 590 // ------------------------------------------------------------------------- 591 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDatabaseProductVersion( ) throw(SQLException, RuntimeException) 592 { 593 ::rtl::OUString aValue; 594 return aValue; 595 } 596 // ------------------------------------------------------------------------- 597 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDatabaseProductName( ) throw(SQLException, RuntimeException) 598 { 599 ::rtl::OUString aValue; 600 return aValue; 601 } 602 // ------------------------------------------------------------------------- 603 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getProcedureTerm( ) throw(SQLException, RuntimeException) 604 { 605 ::rtl::OUString aValue; 606 return aValue; 607 } 608 // ------------------------------------------------------------------------- 609 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSchemaTerm( ) throw(SQLException, RuntimeException) 610 { 611 ::rtl::OUString aValue; 612 return aValue; 613 } 614 // ------------------------------------------------------------------------- 615 sal_Int32 SAL_CALL KabDatabaseMetaData::getDriverMajorVersion( ) throw(RuntimeException) 616 { 617 return KAB_DRIVER_VERSION_MAJOR; 618 } 619 // ------------------------------------------------------------------------- 620 sal_Int32 SAL_CALL KabDatabaseMetaData::getDefaultTransactionIsolation( ) throw(SQLException, RuntimeException) 621 { 622 return TransactionIsolation::NONE; 623 } 624 // ------------------------------------------------------------------------- 625 sal_Int32 SAL_CALL KabDatabaseMetaData::getDriverMinorVersion( ) throw(RuntimeException) 626 { 627 return KAB_DRIVER_VERSION_MINOR; 628 } 629 // ------------------------------------------------------------------------- 630 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSQLKeywords( ) throw(SQLException, RuntimeException) 631 { 632 ::rtl::OUString aValue; 633 return aValue; 634 } 635 // ------------------------------------------------------------------------- 636 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSearchStringEscape( ) throw(SQLException, RuntimeException) 637 { 638 ::rtl::OUString aValue; 639 return aValue; 640 } 641 // ------------------------------------------------------------------------- 642 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getStringFunctions( ) throw(SQLException, RuntimeException) 643 { 644 return ::rtl::OUString(); 645 } 646 // ------------------------------------------------------------------------- 647 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getTimeDateFunctions( ) throw(SQLException, RuntimeException) 648 { 649 return ::rtl::OUString(); 650 } 651 // ------------------------------------------------------------------------- 652 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSystemFunctions( ) throw(SQLException, RuntimeException) 653 { 654 return ::rtl::OUString(); 655 } 656 // ------------------------------------------------------------------------- 657 ::rtl::OUString SAL_CALL KabDatabaseMetaData::getNumericFunctions( ) throw(SQLException, RuntimeException) 658 { 659 return ::rtl::OUString(); 660 } 661 // ------------------------------------------------------------------------- 662 sal_Bool SAL_CALL KabDatabaseMetaData::supportsExtendedSQLGrammar( ) throw(SQLException, RuntimeException) 663 { 664 return sal_False; 665 } 666 // ------------------------------------------------------------------------- 667 sal_Bool SAL_CALL KabDatabaseMetaData::supportsCoreSQLGrammar( ) throw(SQLException, RuntimeException) 668 { 669 return sal_False; 670 } 671 // ------------------------------------------------------------------------- 672 sal_Bool SAL_CALL KabDatabaseMetaData::supportsMinimumSQLGrammar( ) throw(SQLException, RuntimeException) 673 { 674 return sal_True; 675 } 676 // ------------------------------------------------------------------------- 677 sal_Bool SAL_CALL KabDatabaseMetaData::supportsFullOuterJoins( ) throw(SQLException, RuntimeException) 678 { 679 return sal_False; 680 } 681 // ------------------------------------------------------------------------- 682 sal_Bool SAL_CALL KabDatabaseMetaData::supportsLimitedOuterJoins( ) throw(SQLException, RuntimeException) 683 { 684 return sal_False; 685 } 686 // ------------------------------------------------------------------------- 687 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInGroupBy( ) throw(SQLException, RuntimeException) 688 { 689 sal_Int32 nValue = 0; // 0 means no limit 690 return nValue; 691 } 692 // ------------------------------------------------------------------------- 693 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInOrderBy( ) throw(SQLException, RuntimeException) 694 { 695 sal_Int32 nValue = 0; // 0 means no limit 696 return nValue; 697 } 698 // ------------------------------------------------------------------------- 699 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInSelect( ) throw(SQLException, RuntimeException) 700 { 701 sal_Int32 nValue = 0; // 0 means no limit 702 return nValue; 703 } 704 // ------------------------------------------------------------------------- 705 sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxUserNameLength( ) throw(SQLException, RuntimeException) 706 { 707 sal_Int32 nValue = 0; // 0 means no limit 708 return nValue; 709 } 710 // ------------------------------------------------------------------------- 711 sal_Bool SAL_CALL KabDatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException) 712 { 713 switch (setType) 714 { 715 case ResultSetType::FORWARD_ONLY: 716 case ResultSetType::SCROLL_INSENSITIVE: 717 return sal_True; 718 } 719 return sal_False; 720 } 721 // ------------------------------------------------------------------------- 722 sal_Bool SAL_CALL KabDatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 ) throw(SQLException, RuntimeException) 723 { 724 switch (setType) 725 { 726 case ResultSetType::FORWARD_ONLY: 727 case ResultSetType::SCROLL_INSENSITIVE: 728 return sal_True; 729 } 730 return sal_False; 731 } 732 // ------------------------------------------------------------------------- 733 sal_Bool SAL_CALL KabDatabaseMetaData::ownUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) 734 { 735 return sal_False; 736 } 737 // ------------------------------------------------------------------------- 738 sal_Bool SAL_CALL KabDatabaseMetaData::ownDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) 739 { 740 return sal_False; 741 } 742 // ------------------------------------------------------------------------- 743 sal_Bool SAL_CALL KabDatabaseMetaData::ownInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) 744 { 745 return sal_False; 746 } 747 // ------------------------------------------------------------------------- 748 sal_Bool SAL_CALL KabDatabaseMetaData::othersUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) 749 { 750 return sal_False; 751 } 752 // ------------------------------------------------------------------------- 753 sal_Bool SAL_CALL KabDatabaseMetaData::othersDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) 754 { 755 return sal_False; 756 } 757 // ------------------------------------------------------------------------- 758 sal_Bool SAL_CALL KabDatabaseMetaData::othersInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) 759 { 760 return sal_False; 761 } 762 // ------------------------------------------------------------------------- 763 sal_Bool SAL_CALL KabDatabaseMetaData::updatesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException) 764 { 765 return sal_False; 766 } 767 // ------------------------------------------------------------------------- 768 sal_Bool SAL_CALL KabDatabaseMetaData::deletesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException) 769 { 770 return sal_False; 771 } 772 // ------------------------------------------------------------------------- 773 sal_Bool SAL_CALL KabDatabaseMetaData::insertsAreDetected( sal_Int32 ) throw(SQLException, RuntimeException) 774 { 775 return sal_False; 776 } 777 // ------------------------------------------------------------------------- 778 sal_Bool SAL_CALL KabDatabaseMetaData::supportsBatchUpdates( ) throw(SQLException, RuntimeException) 779 { 780 return sal_False; 781 } 782 // ------------------------------------------------------------------------- 783 Reference< XConnection > SAL_CALL KabDatabaseMetaData::getConnection( ) throw(SQLException, RuntimeException) 784 { 785 return (Reference< XConnection >) m_xConnection.get(); 786 } 787 // ------------------------------------------------------------------------- 788 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException) 789 { 790 ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTableTypes); 791 Reference< XResultSet > xRef = pResult; 792 793 static ODatabaseMetaDataResultSet::ORows aRows; 794 static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE")); 795 796 if (aRows.empty()) 797 { 798 ODatabaseMetaDataResultSet::ORow aRow(2); 799 aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); 800 aRow[1] = new ORowSetValueDecorator(aTable); 801 aRows.push_back(aRow); 802 } 803 pResult->setRows(aRows); 804 return xRef; 805 } 806 // ------------------------------------------------------------------------- 807 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTypeInfo( ) throw(SQLException, RuntimeException) 808 { 809 ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo); 810 Reference< XResultSet > xRef = pResult; 811 812 static ODatabaseMetaDataResultSet::ORows aRows; 813 if (aRows.empty()) 814 { 815 ODatabaseMetaDataResultSet::ORow aRow(19); 816 817 aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); 818 aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR")); 819 aRow[2] = new ORowSetValueDecorator(DataType::CHAR); 820 aRow[3] = new ORowSetValueDecorator((sal_Int32) 254); 821 aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); 822 aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); 823 aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue(); 824 aRow[7] = new ORowSetValueDecorator((sal_Int32) ColumnValue::NULLABLE); 825 aRow[8] = ODatabaseMetaDataResultSet::get1Value(); 826 aRow[9] = new ORowSetValueDecorator((sal_Int32) ColumnSearch::CHAR); 827 aRow[10] = ODatabaseMetaDataResultSet::get1Value(); 828 aRow[11] = ODatabaseMetaDataResultSet::get0Value(); 829 aRow[12] = ODatabaseMetaDataResultSet::get0Value(); 830 aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue(); 831 aRow[14] = ODatabaseMetaDataResultSet::get0Value(); 832 aRow[15] = ODatabaseMetaDataResultSet::get0Value(); 833 aRow[16] = ODatabaseMetaDataResultSet::getEmptyValue(); 834 aRow[17] = ODatabaseMetaDataResultSet::getEmptyValue(); 835 aRow[18] = new ORowSetValueDecorator((sal_Int32) 10); 836 aRows.push_back(aRow); 837 // Much more types might appear in KDE address books 838 // To be completed 839 } 840 pResult->setRows(aRows); 841 return xRef; 842 } 843 // ------------------------------------------------------------------------- 844 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getCatalogs( ) throw(SQLException, RuntimeException) 845 { 846 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCatalogs ); 847 } 848 // ----------------------------------------------------------------------------- 849 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getSchemas( ) throw(SQLException, RuntimeException) 850 { 851 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eSchemas ); 852 } 853 // ------------------------------------------------------------------------- 854 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getColumnPrivileges( 855 const Any&, const ::rtl::OUString&, const ::rtl::OUString&, 856 const ::rtl::OUString& ) throw(SQLException, RuntimeException) 857 { 858 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumnPrivileges ); 859 } 860 // ------------------------------------------------------------------------- 861 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getColumns( 862 const Any&, 863 const ::rtl::OUString&, 864 const ::rtl::OUString& tableNamePattern, 865 const ::rtl::OUString& columnNamePattern) throw(SQLException, RuntimeException) 866 { 867 ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eColumns); 868 Reference< XResultSet > xRef = pResult; 869 870 ODatabaseMetaDataResultSet::ORows aRows; 871 872 if (match(tableNamePattern, getAddressBookTableName(), '\0')) 873 { 874 ODatabaseMetaDataResultSet::ORow aRow(19); 875 876 aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); 877 aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue(); 878 aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue(); 879 aRow[3] = new ORowSetValueDecorator(getAddressBookTableName()); 880 aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue(); 881 aRow[9] = ODatabaseMetaDataResultSet::get0Value(); 882 aRow[10] = new ORowSetValueDecorator((sal_Int32) 10); 883 aRow[11] = ODatabaseMetaDataResultSet::get1Value(); 884 aRow[12] = ODatabaseMetaDataResultSet::getEmptyValue(); 885 aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue(); 886 aRow[14] = ODatabaseMetaDataResultSet::getEmptyValue(); 887 aRow[15] = ODatabaseMetaDataResultSet::getEmptyValue(); 888 aRow[16] = new ORowSetValueDecorator((sal_Int32) 254); 889 aRow[18] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("YES")); 890 891 sal_Int32 nPosition = 1; 892 QString aQtName; 893 ::rtl::OUString sName; 894 895 aQtName = ::KABC::Addressee::revisionLabel(); 896 sName = (const sal_Unicode *) aQtName.ucs2(); 897 if (match(columnNamePattern, sName, '\0')) 898 { 899 aRow[4] = new ORowSetValueDecorator(sName); 900 aRow[5] = new ORowSetValueDecorator(DataType::TIMESTAMP); 901 aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP")); 902 aRow[17] = new ORowSetValueDecorator(nPosition++); 903 aRows.push_back(aRow); 904 } 905 906 ::KABC::Field::List aFields = ::KABC::Field::allFields(); 907 ::KABC::Field::List::iterator aField; 908 909 for ( aField = aFields.begin(); 910 aField != aFields.end(); 911 ++aField, ++nPosition) 912 { 913 aQtName = (*aField)->label(); 914 sName = (const sal_Unicode *) aQtName.ucs2(); 915 if (match(columnNamePattern, sName, '\0')) 916 { 917 aRow[4] = new ORowSetValueDecorator(sName); 918 aRow[5] = new ORowSetValueDecorator(DataType::CHAR); 919 aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR")); 920 aRow[7] = new ORowSetValueDecorator((sal_Int32) 256); 921 // Might be VARCHAR and not CHAR[256]... 922 aRow[17] = new ORowSetValueDecorator(nPosition); 923 aRows.push_back(aRow); 924 } 925 } 926 } 927 pResult->setRows(aRows); 928 return xRef; 929 } 930 // ------------------------------------------------------------------------- 931 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTables( 932 const Any&, 933 const ::rtl::OUString&, 934 const ::rtl::OUString&, 935 const Sequence< ::rtl::OUString >& types) throw(SQLException, RuntimeException) 936 { 937 ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTables); 938 Reference< XResultSet > xRef = pResult; 939 940 // check whether we have tables in the requested types 941 // for the moment, we answer only the "TABLE" table type 942 // when no types are given at all, we return all the tables 943 static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE")); 944 sal_Bool bTableFound = sal_False; 945 const ::rtl::OUString* p = types.getConstArray(), 946 * pEnd = p + types.getLength(); 947 948 if (p == pEnd) 949 { 950 bTableFound = sal_True; 951 } 952 else while (p < pEnd) 953 { 954 if (match(*p, aTable, '\0')) 955 { 956 bTableFound = sal_True; 957 break; 958 } 959 p++; 960 } 961 if (!bTableFound) 962 return xRef; 963 964 static ODatabaseMetaDataResultSet::ORows aRows; 965 966 if (aRows.empty()) 967 { 968 ODatabaseMetaDataResultSet::ORow aRow(6); 969 970 aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); 971 aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue(); 972 aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue(); 973 aRow[3] = new ORowSetValueDecorator(getAddressBookTableName()); 974 aRow[4] = new ORowSetValueDecorator(aTable); 975 aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue(); 976 aRows.push_back(aRow); 977 } 978 pResult->setRows(aRows); 979 return xRef; 980 } 981 // ------------------------------------------------------------------------- 982 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getProcedureColumns( 983 const Any&, const ::rtl::OUString&, 984 const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) 985 { 986 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedureColumns ); 987 } 988 // ------------------------------------------------------------------------- 989 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getProcedures( 990 const Any&, const ::rtl::OUString&, 991 const ::rtl::OUString& ) throw(SQLException, RuntimeException) 992 { 993 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedures ); 994 } 995 // ------------------------------------------------------------------------- 996 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getVersionColumns( 997 const Any&, const ::rtl::OUString&, const ::rtl::OUString& table ) throw(SQLException, RuntimeException) 998 { 999 ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eVersionColumns); 1000 1001 Reference< XResultSet > xRef = pResult; 1002 1003 ODatabaseMetaDataResultSet::ORows aRows; 1004 1005 if (table == getAddressBookTableName()) 1006 { 1007 ODatabaseMetaDataResultSet::ORow aRow( 9 ); 1008 QString aQtName = ::KABC::Addressee::revisionLabel(); 1009 ::rtl::OUString sName = (const sal_Unicode *) aQtName.ucs2(); 1010 1011 aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); 1012 aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue(); 1013 1014 aRow[2] = new ORowSetValueDecorator(sName); 1015 aRow[3] = new ORowSetValueDecorator(DataType::TIMESTAMP); 1016 aRow[4] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP")); 1017 1018 aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue(); 1019 aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue(); 1020 aRow[7] = ODatabaseMetaDataResultSet::getEmptyValue(); 1021 aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue(); 1022 1023 aRows.push_back(aRow); 1024 } 1025 pResult->setRows(aRows); 1026 return xRef; 1027 } 1028 // ------------------------------------------------------------------------- 1029 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getExportedKeys( 1030 const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) 1031 { 1032 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eExportedKeys ); 1033 } 1034 // ------------------------------------------------------------------------- 1035 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getImportedKeys( 1036 const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) 1037 { 1038 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eImportedKeys ); 1039 } 1040 // ------------------------------------------------------------------------- 1041 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getPrimaryKeys( 1042 const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) 1043 { 1044 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::ePrimaryKeys ); 1045 } 1046 // ------------------------------------------------------------------------- 1047 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getIndexInfo( 1048 const Any&, const ::rtl::OUString&, const ::rtl::OUString&, 1049 sal_Bool, sal_Bool ) throw(SQLException, RuntimeException) 1050 { 1051 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eIndexInfo ); 1052 } 1053 // ------------------------------------------------------------------------- 1054 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getBestRowIdentifier( 1055 const Any&, const ::rtl::OUString&, const ::rtl::OUString&, sal_Int32, 1056 sal_Bool ) throw(SQLException, RuntimeException) 1057 { 1058 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eBestRowIdentifier ); 1059 } 1060 // ------------------------------------------------------------------------- 1061 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTablePrivileges( 1062 const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) 1063 { 1064 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges ); 1065 } 1066 // ------------------------------------------------------------------------- 1067 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getCrossReference( 1068 const Any&, const ::rtl::OUString&, 1069 const ::rtl::OUString&, const Any&, 1070 const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) 1071 { 1072 return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCrossReference ); 1073 } 1074 // ------------------------------------------------------------------------- 1075 Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getUDTs( const Any&, const ::rtl::OUString&, const ::rtl::OUString&, const Sequence< sal_Int32 >& ) throw(SQLException, RuntimeException) 1076 { 1077 OSL_ENSURE(0,"Not implemented yet!"); 1078 throw SQLException(); 1079 } 1080 // ----------------------------------------------------------------------------- 1081