Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include "file/FDatabaseMetaData.hxx"
21 : #include "FDatabaseMetaDataResultSet.hxx"
22 : #include <com/sun/star/sdbc/DataType.hpp>
23 : #include <com/sun/star/sdbc/ResultSetType.hpp>
24 : #include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
25 : #include <com/sun/star/ucb/SearchRecursion.hpp>
26 : #include <com/sun/star/ucb/SearchCommandArgument.hpp>
27 : #include <com/sun/star/ucb/UniversalContentBroker.hpp>
28 : #include <com/sun/star/ucb/SortedDynamicResultSetFactory.hpp>
29 : #include <com/sun/star/lang/XUnoTunnel.hpp>
30 : #include <tools/urlobj.hxx>
31 : #include "file/FDriver.hxx"
32 : #include "file/FTable.hxx"
33 : #include <comphelper/processfactory.hxx>
34 : #include <tools/debug.hxx>
35 : #include <ucbhelper/content.hxx>
36 :
37 : using namespace com::sun::star::ucb;
38 : using namespace connectivity::file;
39 : using namespace connectivity;
40 : using namespace com::sun::star::uno;
41 : using namespace com::sun::star::lang;
42 : using namespace com::sun::star::beans;
43 : using namespace com::sun::star::sdbc;
44 : using namespace com::sun::star::sdbcx;
45 : using namespace com::sun::star::container;
46 :
47 0 : ODatabaseMetaData::ODatabaseMetaData(OConnection* _pCon) : ::connectivity::ODatabaseMetaDataBase(_pCon,_pCon->getConnectionInfo())
48 0 : ,m_pConnection(_pCon)
49 : {
50 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::ODatabaseMetaData" );
51 0 : }
52 :
53 0 : ODatabaseMetaData::~ODatabaseMetaData()
54 : {
55 0 : }
56 :
57 0 : Reference< XResultSet > ODatabaseMetaData::impl_getTypeInfo_throw( )
58 : {
59 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_getTypeInfo_throw" );
60 0 : return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTypeInfo );
61 : }
62 :
63 0 : OUString ODatabaseMetaData::impl_getCatalogSeparator_throw( )
64 : {
65 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_getCatalogSeparator_throw" );
66 0 : return OUString();
67 : }
68 :
69 0 : Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
70 : const Any& /*catalog*/, const OUString& /*schemaPattern*/, const OUString& /*tableNamePattern*/,
71 : const OUString& /*columnNamePattern*/ ) throw(SQLException, RuntimeException, std::exception)
72 : {
73 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getColumns" );
74 : SAL_WARN( "connectivity.drivers","Should be overloaded!");
75 0 : return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumns );
76 : }
77 :
78 :
79 : namespace
80 : {
81 0 : sal_Int16 isCaseSensitiveParentFolder( const OUString& _rFolderOrDoc, const OUString& _rDocName )
82 : {
83 0 : sal_Int16 nIsCS = 1;
84 : try
85 : {
86 : // first get the real content for the URL
87 0 : INetURLObject aContentURL( _rFolderOrDoc );
88 0 : ::ucbhelper::Content aContent1;
89 : {
90 0 : ::ucbhelper::Content aFolderOrDoc( _rFolderOrDoc, Reference< XCommandEnvironment >(), comphelper::getProcessComponentContext() );
91 0 : if ( aFolderOrDoc.isDocument() )
92 0 : aContent1 = aFolderOrDoc;
93 : else
94 : {
95 0 : aContentURL = INetURLObject( _rFolderOrDoc, INetURLObject::WAS_ENCODED );
96 0 : aContentURL.Append( _rDocName );
97 0 : aContent1 = ::ucbhelper::Content( aContentURL.GetMainURL( INetURLObject::NO_DECODE ), Reference< XCommandEnvironment >(), comphelper::getProcessComponentContext() );
98 0 : }
99 : }
100 :
101 : // get two extensions which differ by case only
102 0 : OUString sExtension1(aContentURL.getExtension());
103 0 : OUString sExtension2(sExtension1.toAsciiLowerCase());
104 0 : if (sExtension2 == sExtension1)
105 : {
106 : // the extension was already in lower case
107 0 : sExtension2 = sExtension2.toAsciiUpperCase();
108 : }
109 :
110 : // the complete URL for the second extension
111 0 : INetURLObject aURL2( aContentURL );
112 0 : if (!sExtension2.isEmpty())
113 0 : aURL2.SetExtension( sExtension2 );
114 0 : if ( aURL2.GetMainURL(INetURLObject::NO_DECODE) == aContentURL.GetMainURL(INetURLObject::NO_DECODE) )
115 0 : return -1;
116 :
117 : // the second context
118 0 : sal_Bool bCanAccess = sal_False;
119 0 : ::ucbhelper::Content aContent2;
120 : try
121 : {
122 0 : aContent2 = ::ucbhelper::Content( aURL2.GetMainURL( INetURLObject::NO_DECODE ), Reference< XCommandEnvironment >(), comphelper::getProcessComponentContext() );
123 0 : bCanAccess = aContent2.isDocument();
124 : }
125 0 : catch( const Exception& )
126 : {
127 : }
128 :
129 0 : if ( bCanAccess )
130 : {
131 : // here we have two contents whose URLs differ by case only.
132 : // Now let's check if both really refer to the same object ....
133 0 : Reference< XContent > xContent1 = aContent1.get();
134 0 : Reference< XContent > xContent2 = aContent2.get();
135 : OSL_ENSURE( xContent1.is() && xContent2.is(), "isCaseSensitiveParentFolder: invalid content interfaces!" );
136 0 : if ( xContent1.is() && xContent2.is() )
137 : {
138 0 : Reference< XContentIdentifier > xID1 = xContent1->getIdentifier();
139 0 : Reference< XContentIdentifier > xID2 = xContent2->getIdentifier();
140 : OSL_ENSURE( xID1.is() && xID2.is(), "isCaseSensitiveParentFolder: invalid ID interfaces!" );
141 0 : if ( xID1.is() && xID2.is()
142 0 : && ( UniversalContentBroker::create(
143 0 : comphelper::getProcessComponentContext() )->
144 0 : compareContentIds( xID1, xID2 ) == 0 ) )
145 : {
146 : // finally, we know that the folder is not case-sensitive ....
147 0 : nIsCS = 0;
148 0 : }
149 0 : }
150 0 : }
151 : }
152 0 : catch( const Exception& )
153 : {
154 : SAL_WARN( "connectivity.drivers", "isCaseSensitiveParentFolder: caught an unexpected exception!" );
155 : }
156 :
157 0 : return nIsCS;
158 : }
159 : }
160 :
161 :
162 0 : Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables(
163 : const Any& /*catalog*/, const OUString& /*schemaPattern*/,
164 : const OUString& tableNamePattern, const Sequence< OUString >& types ) throw(SQLException, RuntimeException, std::exception)
165 : {
166 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getTables" );
167 0 : ::osl::MutexGuard aGuard( m_aMutex );
168 :
169 :
170 0 : ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTables );
171 0 : Reference< XResultSet > xRef = pResult;
172 :
173 : // check if any type is given
174 : // when no types are given then we have to return all tables e.g. TABLE
175 :
176 0 : static const OUString aTable("TABLE");
177 :
178 0 : sal_Bool bTableFound = sal_True;
179 0 : sal_Int32 nLength = types.getLength();
180 0 : if(nLength)
181 : {
182 0 : bTableFound = sal_False;
183 :
184 0 : const OUString* pBegin = types.getConstArray();
185 0 : const OUString* pEnd = pBegin + nLength;
186 0 : for(;pBegin != pEnd;++pBegin)
187 : {
188 0 : if(*pBegin == aTable)
189 : {
190 0 : bTableFound = sal_True;
191 0 : break;
192 : }
193 : }
194 : }
195 0 : if(!bTableFound)
196 0 : return xRef;
197 :
198 0 : Reference<XDynamicResultSet> xContent = m_pConnection->getDir();
199 : Reference < XSortedDynamicResultSetFactory > xSRSFac =
200 0 : SortedDynamicResultSetFactory::create( m_pConnection->getDriver()->getComponentContext() );
201 :
202 0 : Sequence< NumberedSortingInfo > aSortInfo( 1 );
203 0 : NumberedSortingInfo* pInfo = aSortInfo.getArray();
204 0 : pInfo[ 0 ].ColumnIndex = 1;
205 0 : pInfo[ 0 ].Ascending = sal_True;
206 :
207 0 : Reference < XAnyCompareFactory > xFactory;
208 0 : Reference< XDynamicResultSet > xDynamicResultSet;
209 0 : xDynamicResultSet = xSRSFac->createSortedDynamicResultSet( xContent, aSortInfo, xFactory );
210 0 : Reference<XResultSet> xResultSet = xDynamicResultSet->getStaticResultSet();
211 :
212 0 : Reference<XRow> xRow(xResultSet,UNO_QUERY);
213 :
214 0 : OUString aFilenameExtension = m_pConnection->getExtension();
215 0 : OUString sThisContentExtension;
216 0 : ODatabaseMetaDataResultSet::ORows aRows;
217 : // scan the directory for tables
218 0 : OUString aName;
219 0 : INetURLObject aURL;
220 0 : xResultSet->beforeFirst();
221 :
222 0 : sal_Bool bKnowCaseSensivity = sal_False;
223 0 : sal_Bool bCaseSensitiveDir = sal_True;
224 0 : sal_Bool bCheckEnabled = m_pConnection->isCheckEnabled();
225 :
226 0 : while(xResultSet->next())
227 : {
228 0 : aName = xRow->getString(1);
229 0 : aURL.SetSmartProtocol(INET_PROT_FILE);
230 0 : OUString sUrl = m_pConnection->getURL() + "/" + aName;
231 0 : aURL.SetSmartURL( sUrl );
232 0 : sThisContentExtension = aURL.getExtension();
233 :
234 0 : ODatabaseMetaDataResultSet::ORow aRow(3);
235 0 : aRow.reserve(6);
236 0 : sal_Bool bNewRow = sal_False;
237 :
238 0 : if ( !bKnowCaseSensivity )
239 : {
240 0 : bKnowCaseSensivity = sal_True;
241 0 : sal_Int16 nCase = isCaseSensitiveParentFolder( m_pConnection->getURL(), aURL.getName() );
242 0 : switch( nCase )
243 : {
244 : case 1:
245 0 : bCaseSensitiveDir = sal_True;
246 0 : break;
247 : case -1:
248 0 : bKnowCaseSensivity = sal_False;
249 : /** run through */
250 : case 0:
251 0 : bCaseSensitiveDir = sal_False;
252 : }
253 0 : if ( bKnowCaseSensivity )
254 : {
255 0 : m_pConnection->setCaseSensitiveExtension( bCaseSensitiveDir, OConnection::GrantAccess() );
256 0 : if ( !bCaseSensitiveDir )
257 : {
258 0 : aFilenameExtension = aFilenameExtension.toAsciiLowerCase();
259 : }
260 : }
261 : }
262 :
263 0 : if (!aFilenameExtension.isEmpty())
264 : {
265 0 : if ( !bCaseSensitiveDir )
266 : {
267 0 : sThisContentExtension = sThisContentExtension.toAsciiLowerCase();
268 : }
269 :
270 0 : if ( sThisContentExtension == aFilenameExtension )
271 : {
272 0 : aName = aName.copy(0, (aName.getLength()-(aFilenameExtension.getLength()+1)));
273 0 : sal_Unicode nChar = aName.toChar();
274 0 : if ( match(tableNamePattern,aName,'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) )
275 : {
276 0 : aRow.push_back(new ORowSetValueDecorator(aName));
277 0 : bNewRow = sal_True;
278 : }
279 : }
280 : }
281 : else // no extension, filter myself
282 : {
283 0 : sal_Bool bErg = sal_False;
284 0 : do
285 : {
286 0 : if (aURL.getExtension().isEmpty())
287 : {
288 0 : sal_Unicode nChar = aURL.getBase()[0];
289 0 : if(match(tableNamePattern,aURL.getBase(),'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) )
290 : {
291 0 : aRow.push_back(new ORowSetValueDecorator(OUString(aURL.getBase())));
292 0 : bNewRow = sal_True;
293 : }
294 0 : break;
295 : }
296 0 : else if ( ( bErg = xResultSet->next() ) != sal_False )
297 : {
298 0 : aName = xRow->getString(1);
299 0 : aURL.SetSmartURL(aName);
300 : }
301 : } while (bErg);
302 : }
303 0 : if(bNewRow)
304 : {
305 0 : aRow.push_back(new ORowSetValueDecorator(aTable));
306 0 : aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
307 :
308 0 : aRows.push_back(aRow);
309 : }
310 0 : }
311 :
312 0 : pResult->setRows(aRows);
313 :
314 0 : return xRef;
315 : }
316 :
317 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException, std::exception)
318 : {
319 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxBinaryLiteralLength" );
320 0 : return 0;
321 : }
322 :
323 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxRowSize( ) throw(SQLException, RuntimeException, std::exception)
324 : {
325 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxRowSize" );
326 0 : return 0;
327 : }
328 :
329 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCatalogNameLength( ) throw(SQLException, RuntimeException, std::exception)
330 : {
331 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxCatalogNameLength" );
332 0 : return 0;
333 : }
334 :
335 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException, std::exception)
336 : {
337 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxCharLiteralLength" );
338 0 : return SAL_MAX_INT32;
339 : }
340 :
341 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException, std::exception)
342 : {
343 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxColumnNameLength" );
344 0 : return 0;
345 : }
346 :
347 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException, std::exception)
348 : {
349 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxColumnsInIndex" );
350 0 : return 0;
351 : }
352 :
353 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCursorNameLength( ) throw(SQLException, RuntimeException, std::exception)
354 : {
355 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxCursorNameLength" );
356 0 : return 0;
357 : }
358 :
359 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxConnections( ) throw(SQLException, RuntimeException, std::exception)
360 : {
361 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxConnections" );
362 0 : return 0;
363 : }
364 :
365 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException, std::exception)
366 : {
367 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxColumnsInTable" );
368 0 : return 0;
369 : }
370 :
371 0 : sal_Int32 ODatabaseMetaData::impl_getMaxStatements_throw( )
372 : {
373 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_getMaxStatements_throw" );
374 0 : return 0;
375 : }
376 :
377 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxTableNameLength( ) throw(SQLException, RuntimeException, std::exception)
378 : {
379 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxTableNameLength" );
380 0 : return 0;
381 : }
382 :
383 0 : sal_Int32 ODatabaseMetaData::impl_getMaxTablesInSelect_throw( )
384 : {
385 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_getMaxTablesInSelect_throw" );
386 0 : return 1;
387 : }
388 :
389 0 : Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges(
390 : const Any& /*catalog*/, const OUString& /*schemaPattern*/, const OUString& tableNamePattern ) throw(SQLException, RuntimeException, std::exception)
391 : {
392 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getTablePrivileges" );
393 0 : ::osl::MutexGuard aGuard( m_aMutex );
394 :
395 0 : ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges );
396 0 : Reference< XResultSet > xRef = pResult;
397 0 : ODatabaseMetaDataResultSet::ORows aRows;
398 :
399 :
400 0 : Reference< XTablesSupplier > xTabSup = m_pConnection->createCatalog();
401 0 : if( xTabSup.is())
402 : {
403 0 : Reference< XNameAccess> xNames = xTabSup->getTables();
404 0 : Sequence< OUString > aNames = xNames->getElementNames();
405 0 : const OUString* pBegin = aNames.getConstArray();
406 0 : const OUString* pEnd = pBegin + aNames.getLength();
407 0 : for(;pBegin != pEnd;++pBegin)
408 : {
409 0 : if(match(tableNamePattern,*pBegin,'\0'))
410 : {
411 0 : static ODatabaseMetaDataResultSet::ORow aRow(8);
412 :
413 0 : aRow[2] = new ORowSetValueDecorator(*pBegin);
414 0 : aRow[6] = ODatabaseMetaDataResultSet::getSelectValue();
415 0 : aRow[7] = new ORowSetValueDecorator(OUString("NO"));
416 0 : aRows.push_back(aRow);
417 :
418 : Reference< XPropertySet> xTable(
419 0 : xNames->getByName(*pBegin), css::uno::UNO_QUERY);
420 0 : if(xTable.is())
421 : {
422 0 : Reference<XUnoTunnel> xTunnel(xTable,UNO_QUERY);
423 0 : if(xTunnel.is())
424 : {
425 0 : OFileTable* pTable = reinterpret_cast< OFileTable* >( xTunnel->getSomething(OFileTable::getUnoTunnelImplementationId()) );
426 0 : if(pTable)
427 : {
428 0 : if(!pTable->isReadOnly())
429 : {
430 0 : aRow[6] = ODatabaseMetaDataResultSet::getInsertValue();
431 0 : aRows.push_back(aRow);
432 0 : if(!m_pConnection->showDeleted())
433 : {
434 0 : aRow[6] = ODatabaseMetaDataResultSet::getDeleteValue();
435 0 : aRows.push_back(aRow);
436 : }
437 0 : aRow[6] = ODatabaseMetaDataResultSet::getUpdateValue();
438 0 : aRows.push_back(aRow);
439 0 : aRow[6] = ODatabaseMetaDataResultSet::getCreateValue();
440 0 : aRows.push_back(aRow);
441 0 : aRow[6] = ODatabaseMetaDataResultSet::getReadValue();
442 0 : aRows.push_back(aRow);
443 0 : aRow[6] = ODatabaseMetaDataResultSet::getAlterValue();
444 0 : aRows.push_back(aRow);
445 0 : aRow[6] = ODatabaseMetaDataResultSet::getDropValue();
446 0 : aRows.push_back(aRow);
447 : }
448 : }
449 0 : }
450 0 : }
451 : }
452 0 : }
453 : }
454 :
455 0 : pResult->setRows(aRows);
456 0 : return xRef;
457 : }
458 :
459 0 : sal_Bool SAL_CALL ODatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw(SQLException, RuntimeException, std::exception)
460 : {
461 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::doesMaxRowSizeIncludeBlobs" );
462 0 : return sal_True;
463 : }
464 :
465 0 : sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException, std::exception)
466 : {
467 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::storesLowerCaseQuotedIdentifiers" );
468 0 : return sal_False;
469 : }
470 :
471 0 : sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseIdentifiers( ) throw(SQLException, RuntimeException, std::exception)
472 : {
473 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::storesLowerCaseIdentifiers" );
474 0 : return sal_False;
475 : }
476 :
477 0 : sal_Bool ODatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw( )
478 : {
479 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw" );
480 0 : return sal_False;
481 : }
482 :
483 0 : sal_Bool SAL_CALL ODatabaseMetaData::storesMixedCaseIdentifiers( ) throw(SQLException, RuntimeException, std::exception)
484 : {
485 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::storesMixedCaseIdentifiers" );
486 0 : return sal_False;
487 : }
488 :
489 0 : sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException, std::exception)
490 : {
491 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::storesUpperCaseQuotedIdentifiers" );
492 0 : return sal_False;
493 : }
494 :
495 0 : sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseIdentifiers( ) throw(SQLException, RuntimeException, std::exception)
496 : {
497 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::storesUpperCaseIdentifiers" );
498 0 : return sal_False;
499 : }
500 :
501 0 : sal_Bool ODatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw( )
502 : {
503 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw" );
504 0 : return sal_False;
505 : }
506 :
507 0 : sal_Bool ODatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw( )
508 : {
509 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw" );
510 0 : return sal_False;
511 : }
512 :
513 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxIndexLength( ) throw(SQLException, RuntimeException, std::exception)
514 : {
515 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxIndexLength" );
516 0 : return 0;
517 : }
518 :
519 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsNonNullableColumns( ) throw(SQLException, RuntimeException, std::exception)
520 : {
521 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsNonNullableColumns" );
522 0 : return sal_False;
523 : }
524 :
525 0 : OUString SAL_CALL ODatabaseMetaData::getCatalogTerm( ) throw(SQLException, RuntimeException, std::exception)
526 : {
527 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getCatalogTerm" );
528 0 : return OUString();
529 : }
530 :
531 0 : OUString ODatabaseMetaData::impl_getIdentifierQuoteString_throw( )
532 : {
533 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_getIdentifierQuoteString_throw" );
534 0 : static const OUString sQuote("\"");
535 0 : return sQuote;
536 : }
537 :
538 0 : OUString SAL_CALL ODatabaseMetaData::getExtraNameCharacters( ) throw(SQLException, RuntimeException, std::exception)
539 : {
540 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getExtraNameCharacters" );
541 0 : return OUString();
542 : }
543 :
544 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw(SQLException, RuntimeException, std::exception)
545 : {
546 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsDifferentTableCorrelationNames" );
547 0 : return sal_True;
548 : }
549 :
550 0 : sal_Bool ODatabaseMetaData::impl_isCatalogAtStart_throw( )
551 : {
552 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_isCatalogAtStart_throw" );
553 0 : return sal_True;
554 : }
555 :
556 0 : sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw(SQLException, RuntimeException, std::exception)
557 : {
558 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::dataDefinitionIgnoredInTransactions" );
559 0 : return sal_True;
560 : }
561 :
562 0 : sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw(SQLException, RuntimeException, std::exception)
563 : {
564 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::dataDefinitionCausesTransactionCommit" );
565 0 : return sal_True;
566 : }
567 :
568 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw(SQLException, RuntimeException, std::exception)
569 : {
570 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsDataManipulationTransactionsOnly" );
571 0 : return sal_False;
572 : }
573 :
574 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( ) throw(SQLException, RuntimeException, std::exception)
575 : {
576 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions" );
577 0 : return sal_False;
578 : }
579 :
580 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedDelete( ) throw(SQLException, RuntimeException, std::exception)
581 : {
582 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsPositionedDelete" );
583 0 : return sal_False;
584 : }
585 :
586 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedUpdate( ) throw(SQLException, RuntimeException, std::exception)
587 : {
588 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsPositionedUpdate" );
589 0 : return sal_False;
590 : }
591 :
592 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw(SQLException, RuntimeException, std::exception)
593 : {
594 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsOpenStatementsAcrossRollback" );
595 0 : return sal_False;
596 : }
597 :
598 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw(SQLException, RuntimeException, std::exception)
599 : {
600 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsOpenStatementsAcrossCommit" );
601 0 : return sal_False;
602 : }
603 :
604 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw(SQLException, RuntimeException, std::exception)
605 : {
606 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsOpenCursorsAcrossCommit" );
607 0 : return sal_False;
608 : }
609 :
610 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw(SQLException, RuntimeException, std::exception)
611 : {
612 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsOpenCursorsAcrossRollback" );
613 0 : return sal_False;
614 : }
615 :
616 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 /*level*/ ) throw(SQLException, RuntimeException, std::exception)
617 : {
618 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsTransactionIsolationLevel" );
619 0 : return sal_False;
620 : }
621 :
622 0 : sal_Bool ODatabaseMetaData::impl_supportsSchemasInDataManipulation_throw( )
623 : {
624 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_supportsSchemasInDataManipulation_throw" );
625 0 : return sal_False;
626 : }
627 :
628 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92FullSQL( ) throw(SQLException, RuntimeException, std::exception)
629 : {
630 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsANSI92FullSQL" );
631 0 : return sal_False;
632 : }
633 :
634 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw(SQLException, RuntimeException, std::exception)
635 : {
636 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsANSI92EntryLevelSQL" );
637 0 : return sal_False;
638 : }
639 :
640 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw(SQLException, RuntimeException, std::exception)
641 : {
642 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsIntegrityEnhancementFacility" );
643 0 : return sal_False;
644 : }
645 :
646 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw(SQLException, RuntimeException, std::exception)
647 : {
648 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSchemasInIndexDefinitions" );
649 0 : return sal_False;
650 : }
651 :
652 0 : sal_Bool ODatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw( )
653 : {
654 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw" );
655 0 : return sal_False;
656 : }
657 :
658 0 : sal_Bool ODatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw( )
659 : {
660 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw" );
661 0 : return sal_False;
662 : }
663 :
664 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw(SQLException, RuntimeException, std::exception)
665 : {
666 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsCatalogsInIndexDefinitions" );
667 0 : return sal_False;
668 : }
669 :
670 0 : sal_Bool ODatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw( )
671 : {
672 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw" );
673 0 : return sal_False;
674 : }
675 :
676 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins( ) throw(SQLException, RuntimeException, std::exception)
677 : {
678 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsOuterJoins" );
679 0 : return sal_False;
680 : }
681 :
682 0 : Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException, std::exception)
683 : {
684 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getTableTypes" );
685 0 : ::osl::MutexGuard aGuard( m_aMutex );
686 :
687 0 : ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTableTypes );
688 0 : Reference< XResultSet > xRef = pResult;
689 0 : static ODatabaseMetaDataResultSet::ORows aRows;
690 0 : if(aRows.empty())
691 : {
692 0 : ODatabaseMetaDataResultSet::ORow aRow;
693 0 : aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
694 0 : aRow.push_back(new ORowSetValueDecorator(OUString("TABLE")));
695 0 : aRows.push_back(aRow);
696 : }
697 0 : pResult->setRows(aRows);
698 0 : return xRef;
699 : }
700 :
701 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxStatementLength( ) throw(SQLException, RuntimeException, std::exception)
702 : {
703 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxStatementLength" );
704 0 : return 0;
705 : }
706 :
707 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxProcedureNameLength( ) throw(SQLException, RuntimeException, std::exception)
708 : {
709 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxProcedureNameLength" );
710 0 : return 0;
711 : }
712 :
713 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxSchemaNameLength( ) throw(SQLException, RuntimeException, std::exception)
714 : {
715 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxSchemaNameLength" );
716 0 : return 0;
717 : }
718 :
719 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactions( ) throw(SQLException, RuntimeException, std::exception)
720 : {
721 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsTransactions" );
722 0 : return sal_False;
723 : }
724 :
725 0 : sal_Bool SAL_CALL ODatabaseMetaData::allProceduresAreCallable( ) throw(SQLException, RuntimeException, std::exception)
726 : {
727 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::allProceduresAreCallable" );
728 0 : return sal_False;
729 : }
730 :
731 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsStoredProcedures( ) throw(SQLException, RuntimeException, std::exception)
732 : {
733 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsStoredProcedures" );
734 0 : return sal_False;
735 : }
736 :
737 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSelectForUpdate( ) throw(SQLException, RuntimeException, std::exception)
738 : {
739 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSelectForUpdate" );
740 0 : return sal_False;
741 : }
742 :
743 0 : sal_Bool SAL_CALL ODatabaseMetaData::allTablesAreSelectable( ) throw(SQLException, RuntimeException, std::exception)
744 : {
745 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::allTablesAreSelectable" );
746 0 : return sal_True;
747 : }
748 :
749 0 : sal_Bool SAL_CALL ODatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException, std::exception)
750 : {
751 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::isReadOnly" );
752 0 : return sal_True;
753 : }
754 :
755 0 : sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFiles( ) throw(SQLException, RuntimeException, std::exception)
756 : {
757 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::usesLocalFiles" );
758 0 : return sal_True;
759 : }
760 :
761 0 : sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFilePerTable( ) throw(SQLException, RuntimeException, std::exception)
762 : {
763 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::usesLocalFilePerTable" );
764 0 : return sal_True;
765 : }
766 :
767 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsTypeConversion( ) throw(SQLException, RuntimeException, std::exception)
768 : {
769 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsTypeConversion" );
770 0 : return sal_False;
771 : }
772 :
773 0 : sal_Bool SAL_CALL ODatabaseMetaData::nullPlusNonNullIsNull( ) throw(SQLException, RuntimeException, std::exception)
774 : {
775 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::nullPlusNonNullIsNull" );
776 0 : return sal_True;
777 : }
778 :
779 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsColumnAliasing( ) throw(SQLException, RuntimeException, std::exception)
780 : {
781 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsColumnAliasing" );
782 0 : return sal_True;
783 : }
784 :
785 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsTableCorrelationNames( ) throw(SQLException, RuntimeException, std::exception)
786 : {
787 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsTableCorrelationNames" );
788 0 : return sal_True;
789 : }
790 :
791 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert( sal_Int32 /*fromType*/, sal_Int32 /*toType*/ ) throw(SQLException, RuntimeException, std::exception)
792 : {
793 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsConvert" );
794 0 : return sal_False;
795 : }
796 :
797 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsExpressionsInOrderBy( ) throw(SQLException, RuntimeException, std::exception)
798 : {
799 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsExpressionsInOrderBy" );
800 0 : return sal_False;
801 : }
802 :
803 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupBy( ) throw(SQLException, RuntimeException, std::exception)
804 : {
805 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsGroupBy" );
806 0 : return sal_False;
807 : }
808 :
809 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByBeyondSelect( ) throw(SQLException, RuntimeException, std::exception)
810 : {
811 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsGroupByBeyondSelect" );
812 0 : return sal_False;
813 : }
814 :
815 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByUnrelated( ) throw(SQLException, RuntimeException, std::exception)
816 : {
817 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsGroupByUnrelated" );
818 0 : return sal_False;
819 : }
820 :
821 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleTransactions( ) throw(SQLException, RuntimeException, std::exception)
822 : {
823 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsMultipleTransactions" );
824 0 : return sal_False;
825 : }
826 :
827 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleResultSets( ) throw(SQLException, RuntimeException, std::exception)
828 : {
829 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsMultipleResultSets" );
830 0 : return sal_False;
831 : }
832 :
833 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsLikeEscapeClause( ) throw(SQLException, RuntimeException, std::exception)
834 : {
835 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsLikeEscapeClause" );
836 0 : return sal_False;
837 : }
838 :
839 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsOrderByUnrelated( ) throw(SQLException, RuntimeException, std::exception)
840 : {
841 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsOrderByUnrelated" );
842 0 : return sal_True;
843 : }
844 :
845 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsUnion( ) throw(SQLException, RuntimeException, std::exception)
846 : {
847 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsUnion" );
848 0 : return sal_False;
849 : }
850 :
851 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsUnionAll( ) throw(SQLException, RuntimeException, std::exception)
852 : {
853 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsUnionAll" );
854 0 : return sal_False;
855 : }
856 :
857 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsMixedCaseIdentifiers( ) throw(SQLException, RuntimeException, std::exception)
858 : {
859 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsMixedCaseIdentifiers" );
860 0 : return sal_True;
861 : }
862 :
863 0 : sal_Bool ODatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw( )
864 : {
865 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw" );
866 0 : return sal_False;
867 : }
868 :
869 0 : sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtEnd( ) throw(SQLException, RuntimeException, std::exception)
870 : {
871 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::nullsAreSortedAtEnd" );
872 0 : return sal_False;
873 : }
874 :
875 0 : sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtStart( ) throw(SQLException, RuntimeException, std::exception)
876 : {
877 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::nullsAreSortedAtStart" );
878 0 : return sal_True;
879 : }
880 :
881 0 : sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedHigh( ) throw(SQLException, RuntimeException, std::exception)
882 : {
883 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::nullsAreSortedHigh" );
884 0 : return sal_False;
885 : }
886 :
887 0 : sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedLow( ) throw(SQLException, RuntimeException, std::exception)
888 : {
889 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::nullsAreSortedLow" );
890 0 : return sal_True;
891 : }
892 :
893 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInProcedureCalls( ) throw(SQLException, RuntimeException, std::exception)
894 : {
895 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSchemasInProcedureCalls" );
896 0 : return sal_False;
897 : }
898 :
899 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw(SQLException, RuntimeException, std::exception)
900 : {
901 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions" );
902 0 : return sal_False;
903 : }
904 :
905 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw(SQLException, RuntimeException, std::exception)
906 : {
907 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsCatalogsInProcedureCalls" );
908 0 : return sal_False;
909 : }
910 :
911 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw(SQLException, RuntimeException, std::exception)
912 : {
913 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions" );
914 0 : return sal_False;
915 : }
916 :
917 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsCorrelatedSubqueries( ) throw(SQLException, RuntimeException, std::exception)
918 : {
919 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsCorrelatedSubqueries" );
920 0 : return sal_False;
921 : }
922 :
923 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInComparisons( ) throw(SQLException, RuntimeException, std::exception)
924 : {
925 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSubqueriesInComparisons" );
926 0 : return sal_False;
927 : }
928 :
929 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInExists( ) throw(SQLException, RuntimeException, std::exception)
930 : {
931 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSubqueriesInExists" );
932 0 : return sal_False;
933 : }
934 :
935 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInIns( ) throw(SQLException, RuntimeException, std::exception)
936 : {
937 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSubqueriesInIns" );
938 0 : return sal_False;
939 : }
940 :
941 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw(SQLException, RuntimeException, std::exception)
942 : {
943 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsSubqueriesInQuantifieds" );
944 0 : return sal_False;
945 : }
946 :
947 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQLException, RuntimeException, std::exception)
948 : {
949 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsANSI92IntermediateSQL" );
950 0 : return sal_False;
951 : }
952 :
953 0 : OUString SAL_CALL ODatabaseMetaData::getURL( ) throw(SQLException, RuntimeException, std::exception)
954 : {
955 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getURL" );
956 0 : static const OUString aValue( "sdbc:file:" );
957 0 : return aValue;
958 : }
959 :
960 0 : OUString SAL_CALL ODatabaseMetaData::getUserName( ) throw(SQLException, RuntimeException, std::exception)
961 : {
962 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getUserName" );
963 0 : return OUString();
964 : }
965 :
966 0 : OUString SAL_CALL ODatabaseMetaData::getDriverName( ) throw(SQLException, RuntimeException, std::exception)
967 : {
968 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getDriverName" );
969 0 : return OUString();
970 : }
971 :
972 0 : OUString SAL_CALL ODatabaseMetaData::getDriverVersion( ) throw(SQLException, RuntimeException, std::exception)
973 : {
974 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getDriverVersion" );
975 0 : return OUString::number(1);
976 : }
977 :
978 0 : OUString SAL_CALL ODatabaseMetaData::getDatabaseProductVersion( ) throw(SQLException, RuntimeException, std::exception)
979 : {
980 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getDatabaseProductVersion" );
981 0 : return OUString::number(0);
982 : }
983 :
984 0 : OUString SAL_CALL ODatabaseMetaData::getDatabaseProductName( ) throw(SQLException, RuntimeException, std::exception)
985 : {
986 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getDatabaseProductName" );
987 0 : return OUString();
988 : }
989 :
990 0 : OUString SAL_CALL ODatabaseMetaData::getProcedureTerm( ) throw(SQLException, RuntimeException, std::exception)
991 : {
992 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getProcedureTerm" );
993 0 : return OUString();
994 : }
995 :
996 0 : OUString SAL_CALL ODatabaseMetaData::getSchemaTerm( ) throw(SQLException, RuntimeException, std::exception)
997 : {
998 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getSchemaTerm" );
999 0 : return OUString();
1000 : }
1001 :
1002 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMajorVersion( ) throw(RuntimeException, std::exception)
1003 : {
1004 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getDriverMajorVersion" );
1005 0 : return 0;
1006 : }
1007 :
1008 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getDefaultTransactionIsolation( ) throw(SQLException, RuntimeException, std::exception)
1009 : {
1010 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getDefaultTransactionIsolation" );
1011 0 : return 0;
1012 : }
1013 :
1014 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMinorVersion( ) throw(RuntimeException, std::exception)
1015 : {
1016 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getDriverMinorVersion" );
1017 0 : return 0;
1018 : }
1019 :
1020 0 : OUString SAL_CALL ODatabaseMetaData::getSQLKeywords( ) throw(SQLException, RuntimeException, std::exception)
1021 : {
1022 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getSQLKeywords" );
1023 0 : return OUString();
1024 : }
1025 :
1026 0 : OUString SAL_CALL ODatabaseMetaData::getSearchStringEscape( ) throw(SQLException, RuntimeException, std::exception)
1027 : {
1028 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getSearchStringEscape" );
1029 0 : return OUString();
1030 : }
1031 :
1032 0 : OUString SAL_CALL ODatabaseMetaData::getStringFunctions( ) throw(SQLException, RuntimeException, std::exception)
1033 : {
1034 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getStringFunctions" );
1035 0 : return OUString("UCASE,LCASE,ASCII,LENGTH,OCTET_LENGTH,CHAR_LENGTH,CHARACTER_LENGTH,CHAR,CONCAT,LOCATE,SUBSTRING,LTRIM,RTRIM,SPACE,REPLACE,REPEAT,INSERT,LEFT,RIGHT");
1036 : }
1037 :
1038 0 : OUString SAL_CALL ODatabaseMetaData::getTimeDateFunctions( ) throw(SQLException, RuntimeException, std::exception)
1039 : {
1040 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getTimeDateFunctions" );
1041 0 : return OUString("DAYOFWEEK,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,HOUR,MINUTE,SECOND,CURDATE,CURTIME,NOW");
1042 : }
1043 :
1044 0 : OUString SAL_CALL ODatabaseMetaData::getSystemFunctions( ) throw(SQLException, RuntimeException, std::exception)
1045 : {
1046 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getSystemFunctions" );
1047 0 : return OUString();
1048 : }
1049 :
1050 0 : OUString SAL_CALL ODatabaseMetaData::getNumericFunctions( ) throw(SQLException, RuntimeException, std::exception)
1051 : {
1052 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getNumericFunctions" );
1053 0 : return OUString("ABS,SIGN,MOD,FLOOR,CEILING,ROUND,EXP,LN,LOG,LOG10,POWER,SQRT,PI,COS,SIN,TAN,ACOS,ASIN,ATAN,ATAN2,DEGREES,RADIANS");
1054 : }
1055 :
1056 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsExtendedSQLGrammar( ) throw(SQLException, RuntimeException, std::exception)
1057 : {
1058 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsExtendedSQLGrammar" );
1059 0 : return sal_False;
1060 : }
1061 :
1062 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsCoreSQLGrammar( ) throw(SQLException, RuntimeException, std::exception)
1063 : {
1064 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsCoreSQLGrammar" );
1065 0 : return sal_False;
1066 : }
1067 :
1068 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsMinimumSQLGrammar( ) throw(SQLException, RuntimeException, std::exception)
1069 : {
1070 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsMinimumSQLGrammar" );
1071 0 : return sal_True;
1072 : }
1073 :
1074 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsFullOuterJoins( ) throw(SQLException, RuntimeException, std::exception)
1075 : {
1076 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsFullOuterJoins" );
1077 0 : return sal_False;
1078 : }
1079 :
1080 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsLimitedOuterJoins( ) throw(SQLException, RuntimeException, std::exception)
1081 : {
1082 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsLimitedOuterJoins" );
1083 0 : return sal_False;
1084 : }
1085 :
1086 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInGroupBy( ) throw(SQLException, RuntimeException, std::exception)
1087 : {
1088 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxColumnsInGroupBy" );
1089 0 : return 0;
1090 : }
1091 :
1092 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInOrderBy( ) throw(SQLException, RuntimeException, std::exception)
1093 : {
1094 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxColumnsInOrderBy" );
1095 0 : return 0;
1096 : }
1097 :
1098 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInSelect( ) throw(SQLException, RuntimeException, std::exception)
1099 : {
1100 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxColumnsInSelect" );
1101 0 : return 0;
1102 : }
1103 :
1104 0 : sal_Int32 SAL_CALL ODatabaseMetaData::getMaxUserNameLength( ) throw(SQLException, RuntimeException, std::exception)
1105 : {
1106 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getMaxUserNameLength" );
1107 0 : return 0;
1108 : }
1109 :
1110 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException, std::exception)
1111 : {
1112 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsResultSetType" );
1113 0 : switch(setType)
1114 : {
1115 : case ResultSetType::FORWARD_ONLY:
1116 0 : return sal_True;
1117 : case ResultSetType::SCROLL_INSENSITIVE:
1118 : case ResultSetType::SCROLL_SENSITIVE:
1119 0 : break;
1120 : }
1121 0 : return sal_False;
1122 : }
1123 :
1124 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 /*concurrency*/ ) throw(SQLException, RuntimeException, std::exception)
1125 : {
1126 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsResultSetConcurrency" );
1127 0 : switch(setType)
1128 : {
1129 : case ResultSetType::FORWARD_ONLY:
1130 0 : return sal_True;
1131 : case ResultSetType::SCROLL_INSENSITIVE:
1132 : case ResultSetType::SCROLL_SENSITIVE:
1133 0 : break;
1134 : }
1135 0 : return sal_False;
1136 : }
1137 :
1138 0 : sal_Bool SAL_CALL ODatabaseMetaData::ownUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1139 : {
1140 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::ownUpdatesAreVisible" );
1141 0 : return sal_True;
1142 : }
1143 :
1144 0 : sal_Bool SAL_CALL ODatabaseMetaData::ownDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1145 : {
1146 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::ownDeletesAreVisible" );
1147 0 : return sal_True;
1148 : }
1149 :
1150 0 : sal_Bool SAL_CALL ODatabaseMetaData::ownInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1151 : {
1152 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::ownInsertsAreVisible" );
1153 0 : return sal_True;
1154 : }
1155 :
1156 0 : sal_Bool SAL_CALL ODatabaseMetaData::othersUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1157 : {
1158 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::othersUpdatesAreVisible" );
1159 0 : return sal_True;
1160 : }
1161 :
1162 0 : sal_Bool SAL_CALL ODatabaseMetaData::othersDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1163 : {
1164 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::othersDeletesAreVisible" );
1165 0 : return sal_True;
1166 : }
1167 :
1168 0 : sal_Bool SAL_CALL ODatabaseMetaData::othersInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1169 : {
1170 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::othersInsertsAreVisible" );
1171 0 : return sal_True;
1172 : }
1173 :
1174 0 : sal_Bool SAL_CALL ODatabaseMetaData::updatesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1175 : {
1176 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::updatesAreDetected" );
1177 0 : return sal_False;
1178 : }
1179 :
1180 0 : sal_Bool SAL_CALL ODatabaseMetaData::deletesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1181 : {
1182 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::deletesAreDetected" );
1183 0 : return sal_False;
1184 : }
1185 :
1186 0 : sal_Bool SAL_CALL ODatabaseMetaData::insertsAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException, std::exception)
1187 : {
1188 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::insertsAreDetected" );
1189 0 : return sal_False;
1190 : }
1191 :
1192 0 : sal_Bool SAL_CALL ODatabaseMetaData::supportsBatchUpdates( ) throw(SQLException, RuntimeException, std::exception)
1193 : {
1194 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::supportsBatchUpdates" );
1195 0 : return sal_False;
1196 : }
1197 :
1198 0 : Reference< XResultSet > SAL_CALL ODatabaseMetaData::getUDTs( const Any& /*catalog*/, const OUString& /*schemaPattern*/, const OUString& /*typeNamePattern*/, const Sequence< sal_Int32 >& /*types*/ ) throw(SQLException, RuntimeException, std::exception)
1199 : {
1200 : SAL_INFO( "connectivity.drivers", "file Ocke.Janssen@sun.com ODatabaseMetaData::getUDTs" );
1201 0 : return NULL;
1202 : }
1203 :
1204 :
1205 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|