LibreOffice Module connectivity (master) 1
FDatabaseMetaDataResultSet.cxx
Go to the documentation of this file.
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
24#include <com/sun/star/sdbc/ColumnSearch.hpp>
25#include <com/sun/star/beans/PropertyAttribute.hpp>
30#include <o3tl/safeint.hxx>
31#include <o3tl/unreachable.hxx>
32#include <TConnection.hxx>
33
34using namespace connectivity;
35using namespace dbtools;
36using namespace cppu;
37
38using namespace ::com::sun::star::beans;
39using namespace ::com::sun::star::uno;
40using namespace ::com::sun::star::sdbcx;
41using namespace ::com::sun::star::sdbc;
42using namespace ::com::sun::star::container;
43using namespace ::com::sun::star::lang;
44
45ODatabaseMetaDataResultSet::ODatabaseMetaDataResultSet()
48 ,m_nColPos(0)
49 ,m_bBOF(true)
50 ,m_bEOF(true)
51{
52 construct();
53}
54
55
59 ,m_nColPos(0)
60 ,m_bBOF(true)
61 ,m_bEOF(true)
62{
63 construct();
64
65 setType(_eType);
66}
67
68
70{
71}
72
74{
79}
80
82{
83 switch( _eType )
84 {
85 case eCatalogs: setCatalogsMap(); break;
86 case eSchemas: setSchemasMap(); break;
88 case eColumns: setColumnsMap(); break;
89 case eTables: setTablesMap(); break;
90 case eTableTypes: setTableTypes(); break;
92 case eProcedures: setProceduresMap(); break;
93 case eExportedKeys: setExportedKeysMap(); break;
94 case eImportedKeys: setImportedKeysMap(); break;
95 case ePrimaryKeys: setPrimaryKeysMap(); break;
96 case eIndexInfo: setIndexInfoMap(); break;
99 case eTypeInfo: setTypeInfoMap(); break;
102 case eUDTs: setUDTsMap(); break;
103 default:
104 OSL_FAIL("Wrong type!");
105 }
106}
107
109{
111
112 ::osl::MutexGuard aGuard(m_aMutex);
113 m_aStatement.clear();
114 m_xMetaData.clear();
115 m_aRowsIter = m_aRows.end();
116 m_aRows.clear();
117 m_aRowsIter = m_aRows.end();
118}
119
121{
122 ODatabaseMetaDataResultSet_BASE::acquire();
123}
124
126{
127 ODatabaseMetaDataResultSet_BASE::release();
128}
129
131{
133 return aRet.hasValue() ? aRet : ODatabaseMetaDataResultSet_BASE::queryInterface(rType);
134}
135
136Sequence< Type > SAL_CALL ODatabaseMetaDataResultSet::getTypes( )
137{
141
142 return ::comphelper::concatSequences(aTypes.getTypes(),ODatabaseMetaDataResultSet_BASE::getTypes());
143}
144
146{
147 m_aRows = std::move(_rRows);
148 m_bBOF = true;
149 m_bEOF = m_aRows.empty();
150}
151
152sal_Int32 SAL_CALL ODatabaseMetaDataResultSet::findColumn( const OUString& columnName )
153{
154 ::osl::MutexGuard aGuard( m_aMutex );
155 checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
156
157
158 Reference< XResultSetMetaData > xMeta = getMetaData();
159 sal_Int32 nLen = xMeta->getColumnCount();
160 sal_Int32 i = 1;
161 for(;i<=nLen;++i)
162 {
163 if(xMeta->isCaseSensitive(i) ? columnName == xMeta->getColumnName(i) :
164 columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i))
165 )
166 return i;
167 }
168
171}
172
173void ODatabaseMetaDataResultSet::checkIndex(sal_Int32 columnIndex )
174{
175 if(columnIndex < 1 || o3tl::make_unsigned(columnIndex) >= (*m_aRowsIter).size())
177}
178
179Reference< css::io::XInputStream > SAL_CALL ODatabaseMetaDataResultSet::getBinaryStream( sal_Int32 /*columnIndex*/ )
180{
181 return nullptr;
182}
183
184Reference< css::io::XInputStream > SAL_CALL ODatabaseMetaDataResultSet::getCharacterStream( sal_Int32 /*columnIndex*/ )
185{
186 return nullptr;
187}
188
189
190sal_Bool SAL_CALL ODatabaseMetaDataResultSet::getBoolean( sal_Int32 columnIndex )
191{
192 return getValue(columnIndex).getBool();
193}
194
195
196sal_Int8 SAL_CALL ODatabaseMetaDataResultSet::getByte( sal_Int32 columnIndex )
197{
198 return getValue(columnIndex).getInt8();
199}
200
201
202Sequence< sal_Int8 > SAL_CALL ODatabaseMetaDataResultSet::getBytes( sal_Int32 columnIndex )
203{
204 return getValue(columnIndex).getSequence();
205}
206
207
208css::util::Date SAL_CALL ODatabaseMetaDataResultSet::getDate( sal_Int32 columnIndex )
209{
210 return getValue(columnIndex).getDate();
211}
212
213
214double SAL_CALL ODatabaseMetaDataResultSet::getDouble( sal_Int32 columnIndex )
215{
216 return getValue(columnIndex).getDouble();
217}
218
219
220float SAL_CALL ODatabaseMetaDataResultSet::getFloat( sal_Int32 columnIndex )
221{
222 return getValue(columnIndex).getFloat();
223}
224
225
226sal_Int32 SAL_CALL ODatabaseMetaDataResultSet::getInt( sal_Int32 columnIndex )
227{
228 return getValue(columnIndex).getInt32();
229}
230
231
233{
234 return 0;
235}
236
237
238sal_Int64 SAL_CALL ODatabaseMetaDataResultSet::getLong( sal_Int32 columnIndex )
239{
240 return getValue(columnIndex).getLong();
241}
242
243
244Reference< XResultSetMetaData > SAL_CALL ODatabaseMetaDataResultSet::getMetaData( )
245{
246 ::osl::MutexGuard aGuard( m_aMutex );
247 checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
248
249
250 if(!m_xMetaData.is())
252
253 return m_xMetaData;
254}
255
256Reference< XArray > SAL_CALL ODatabaseMetaDataResultSet::getArray( sal_Int32 /*columnIndex*/ )
257{
258 return nullptr;
259}
260
261
262Reference< XClob > SAL_CALL ODatabaseMetaDataResultSet::getClob( sal_Int32 /*columnIndex*/ )
263{
264 return nullptr;
265}
266
267Reference< XBlob > SAL_CALL ODatabaseMetaDataResultSet::getBlob( sal_Int32 /*columnIndex*/ )
268{
269 return nullptr;
270}
271
272
273Reference< XRef > SAL_CALL ODatabaseMetaDataResultSet::getRef( sal_Int32 /*columnIndex*/ )
274{
275 return nullptr;
276}
277
278
279Any SAL_CALL ODatabaseMetaDataResultSet::getObject( sal_Int32 columnIndex, const Reference< css::container::XNameAccess >& /*typeMap*/ )
280{
281 return getValue(columnIndex).makeAny();
282}
283
284
285sal_Int16 SAL_CALL ODatabaseMetaDataResultSet::getShort( sal_Int32 columnIndex )
286{
287 return getValue(columnIndex).getInt16();
288}
289
290
291OUString SAL_CALL ODatabaseMetaDataResultSet::getString( sal_Int32 columnIndex )
292{
293 return getValue(columnIndex).getString();
294}
295
296
297css::util::Time SAL_CALL ODatabaseMetaDataResultSet::getTime( sal_Int32 columnIndex )
298{
299 return getValue(columnIndex).getTime();
300}
301
302
303css::util::DateTime SAL_CALL ODatabaseMetaDataResultSet::getTimestamp( sal_Int32 columnIndex )
304{
305 return getValue(columnIndex).getDateTime();
306}
307
308
310{
311 return m_bEOF;
312}
313
314
316{
319}
320
322{
325}
326
327
329{
331}
332
334{
336}
337
338
340{
341 {
342 ::osl::MutexGuard aGuard( m_aMutex );
343 checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
344
345 }
346 dispose();
347}
348
349
351{
354}
355
356
358{
361}
362
364{
367}
368
370{
373}
374
376{
379}
380
381
382Reference< XInterface > SAL_CALL ODatabaseMetaDataResultSet::getStatement( )
383{
384 return m_aStatement.get();
385}
386
387
389{
392}
393
395{
398}
399
401{
404}
405
406
408{
409 return m_bBOF;
410}
411
412
414{
415 ::osl::MutexGuard aGuard( m_aMutex );
416 checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
417
418 if ( m_bBOF )
419 {
420 m_aRowsIter = m_aRows.begin();
421 m_bBOF = false;
422 }
423 else
424 {
425 if ( m_bEOF )
427 else
428 if ( m_aRowsIter != m_aRows.end() )
429 ++m_aRowsIter;
430 }
431
432 bool bSuccess = m_aRowsIter != m_aRows.end();
433 if ( !bSuccess )
434 {
435 m_bEOF = true;
436 m_bBOF = m_aRows.empty();
437 }
438 return bSuccess;
439}
440
441
443{
444 ::osl::MutexGuard aGuard( m_aMutex );
445 checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
446
447
448 if(m_aRowsIter == m_aRows.end() || !(*m_aRowsIter)[m_nColPos].is())
449 return true;
450
451 return (*m_aRowsIter)[m_nColPos]->getValue().isNull();
452}
453
455{
456}
457
458
460{
461}
462
464{
465}
466
468{
469 return Any();
470}
471
473{
474 Sequence< Property > aProps;
475 describeProperties(aProps);
476 return new ::cppu::OPropertyArrayHelper(aProps);
477}
478
480{
481 return *getArrayHelper();
482}
483
485{
487 pMetaData->setProceduresMap();
488 m_xMetaData = pMetaData;
489}
490
492{
494 pMetaData->setCatalogsMap();
495 m_xMetaData = pMetaData;
496}
497
499{
501 pMetaData->setSchemasMap();
502 m_xMetaData = pMetaData;
503}
504
506{
508 pMetaData->setColumnPrivilegesMap();
509 m_xMetaData = pMetaData;
510}
511
513{
515 pMetaData->setColumnsMap();
516 m_xMetaData = pMetaData;
517}
518
520{
522 pMetaData->setTablesMap();
523 m_xMetaData = pMetaData;
524}
525
527{
529 pMetaData->setProcedureColumnsMap();
530 m_xMetaData = pMetaData;
531}
532
534{
536 pMetaData->setPrimaryKeysMap();
537 m_xMetaData = pMetaData;
538}
539
541{
543 pMetaData->setIndexInfoMap();
544 m_xMetaData = pMetaData;
545}
546
548{
550 pMetaData->setTablePrivilegesMap();
551 m_xMetaData = pMetaData;
552}
553
555{
557 pMetaData->setCrossReferenceMap();
558 m_xMetaData = pMetaData;
559}
560
562{
564 pMetaData->setVersionColumnsMap();
565 m_xMetaData = pMetaData;
566}
567
569{
571 pMetaData->setBestRowIdentifierMap();
572 m_xMetaData = pMetaData;
573}
574
576{
578 pMetaData->setTypeInfoMap();
579 m_xMetaData = pMetaData;
580}
581
583{
585 pMetaData->setUDTsMap();
586 m_xMetaData = pMetaData;
587}
588
590{
592 pMetaData->setTableTypes();
593 m_xMetaData = pMetaData;
594}
595
597{
599 pMetaData->setExportedKeysMap();
600 m_xMetaData = pMetaData;
601}
602
604{
606 pMetaData->setImportedKeysMap();
607 m_xMetaData = pMetaData;
608}
609
610Reference< css::beans::XPropertySetInfo > SAL_CALL ODatabaseMetaDataResultSet::getPropertySetInfo( )
611{
612 return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
613}
614
616{
617 m_aValue = _aValue;
618 return *this;
619}
620
622{
623 ::osl::MutexGuard aGuard( m_aMutex );
624 checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
625
626 if ( isBeforeFirst() || isAfterLast() )
628
629 checkIndex(columnIndex );
630 m_nColPos = columnIndex;
631
632 if(m_aRowsIter != m_aRows.end() && (*m_aRowsIter)[columnIndex].is())
633 return *(*m_aRowsIter)[columnIndex];
634 return m_aEmptyValue;
635}
636
639{
640 static ORowSetValueDecoratorRef aEmptyValueRef = new ORowSetValueDecorator();
641 return aEmptyValueRef;
642}
643
646{
647 static ORowSetValueDecoratorRef a0ValueRef = new ORowSetValueDecorator(sal_Int32(0));
648 return a0ValueRef;
649}
650
653{
654 static ORowSetValueDecoratorRef a1ValueRef = new ORowSetValueDecorator(sal_Int32(1));
655 return a1ValueRef;
656}
657
660{
661 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(ColumnSearch::BASIC);
662 return aValueRef;
663}
664
666{
667 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("SELECT"));
668 return aValueRef;
669}
670
672{
673 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("INSERT"));
674 return aValueRef;
675}
676
678{
679 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("DELETE"));
680 return aValueRef;
681}
682
684{
685 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("UPDATE"));
686 return aValueRef;
687}
688
690{
691 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("CREATE"));
692 return aValueRef;
693}
694
696{
697 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("READ"));
698 return aValueRef;
699}
700
702{
703 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("ALTER"));
704 return aValueRef;
705}
706
708{
709 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("DROP"));
710 return aValueRef;
711}
712
714{
715 static ORowSetValueDecoratorRef aValueRef = new ORowSetValueDecorator(OUString("'"));
716 return aValueRef;
717}
718
719void SAL_CALL ODatabaseMetaDataResultSet::initialize( const Sequence< Any >& _aArguments )
720{
721 if ( _aArguments.getLength() != 2 )
722 return;
723
724 sal_Int32 nResultSetType = 0;
725 if ( !(_aArguments[0] >>= nResultSetType))
726 return;
727
728 setType(static_cast<MetaDataResultSetType>(nResultSetType));
729 Sequence< Sequence<Any> > aRows;
730 if ( !(_aArguments[1] >>= aRows) )
731 return;
732
733 ORows aRowsToSet;
734 const Sequence<Any>* pRowsIter = aRows.getConstArray();
735 const Sequence<Any>* pRowsEnd = pRowsIter + aRows.getLength();
736 for (; pRowsIter != pRowsEnd;++pRowsIter)
737 {
738 ORow aRowToSet;
739 const Any* pRowIter = pRowsIter->getConstArray();
740 const Any* pRowEnd = pRowIter + pRowsIter->getLength();
741 for (; pRowIter != pRowEnd;++pRowIter)
742 {
744 switch( pRowIter->getValueTypeClass() )
745 {
746 case TypeClass_BOOLEAN:
747 {
748 bool bValue = false;
749 *pRowIter >>= bValue;
750 aValue = new ORowSetValueDecorator(ORowSetValue(bValue));
751 }
752 break;
753 case TypeClass_BYTE:
754 {
755 sal_Int8 nValue(0);
756 *pRowIter >>= nValue;
758 }
759 break;
760 case TypeClass_SHORT:
761 case TypeClass_UNSIGNED_SHORT:
762 {
763 sal_Int16 nValue(0);
764 *pRowIter >>= nValue;
766 }
767 break;
768 case TypeClass_LONG:
769 case TypeClass_UNSIGNED_LONG:
770 {
771 sal_Int32 nValue(0);
772 *pRowIter >>= nValue;
774 }
775 break;
776 case TypeClass_HYPER:
777 case TypeClass_UNSIGNED_HYPER:
778 {
779 sal_Int64 nValue(0);
780 *pRowIter >>= nValue;
782 }
783 break;
784 case TypeClass_FLOAT:
785 {
786 float nValue(0.0);
787 *pRowIter >>= nValue;
789 }
790 break;
791 case TypeClass_DOUBLE:
792 {
793 double nValue(0.0);
794 *pRowIter >>= nValue;
796 }
797 break;
798 case TypeClass_STRING:
799 {
800 OUString sValue;
801 *pRowIter >>= sValue;
802 aValue = new ORowSetValueDecorator(ORowSetValue(sValue));
803 }
804 break;
805 default:
806 break;
807 }
808 aRowToSet.push_back(aValue);
809 }
810 aRowsToSet.push_back(aRowToSet);
811 } // for (; pRowsIter != pRowsEnd;++pRowsIter
812 setRows(std::move(aRowsToSet));
813}
814// XServiceInfo
815
816
818 {
819 return "org.openoffice.comp.helper.DatabaseMetaDataResultSet";
820 }
821
822 sal_Bool SAL_CALL ODatabaseMetaDataResultSet::supportsService( const OUString& _rServiceName )
823 {
824 return cppu::supportsService(this, _rServiceName);
825 }
826
828 {
829 return Sequence<OUString>{ "com.sun.star.sdbc.ResultSet" };
830 }
831
832extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
834 css::uno::XComponentContext* , css::uno::Sequence<css::uno::Any> const&)
835{
836 return cppu::acquire(new ODatabaseMetaDataResultSet());
837}
838
839/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * connectivity_dbtools_ODatabaseMetaDataResultSet_get_implementation(css::uno::XComponentContext *, css::uno::Sequence< css::uno::Any > const &)
void describeProperties(css::uno::Sequence< css::beans::Property > &_rProps) const
void registerProperty(const OUString &_rName, sal_Int32 _nHandle, sal_Int32 _nAttributes, void *_pPointerToMember, const css::uno::Type &_rMemberType)
void disposing(std::unique_lock< std::mutex > &rGuard)
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
static ORowSetValueDecoratorRef const & getEmptyValue()
return an empty ORowSetValueDecorator
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Reference< css::sdbc::XClob > SAL_CALL getClob(sal_Int32 columnIndex) override
virtual css::uno::Reference< css::sdbc::XResultSetMetaData > SAL_CALL getMetaData() override
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Bool SAL_CALL relative(sal_Int32 rows) override
virtual sal_Int64 SAL_CALL getLong(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL wasNull() override
virtual sal_Bool SAL_CALL rowUpdated() override
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getBytes(sal_Int32 columnIndex) override
virtual sal_Int32 SAL_CALL findColumn(const OUString &columnName) override
virtual sal_Bool SAL_CALL isAfterLast() override
virtual sal_Bool SAL_CALL isLast() override
static ORowSetValueDecoratorRef const & getBasicValue()
return an ORowSetValueDecorator with ColumnSearch::BASIC as value
virtual sal_Int32 SAL_CALL getInt(sal_Int32 columnIndex) override
virtual ::cppu::IPropertyArrayHelper * createArrayHelper() const override
virtual sal_Bool SAL_CALL previous() override
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
virtual sal_Int16 SAL_CALL getShort(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL absolute(sal_Int32 row) override
virtual css::uno::Any SAL_CALL getObject(sal_Int32 columnIndex, const css::uno::Reference< css::container::XNameAccess > &typeMap) override
virtual css::uno::Reference< css::sdbc::XArray > SAL_CALL getArray(sal_Int32 columnIndex) override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
static ORowSetValueDecoratorRef const & getAlterValue()
return an ORowSetValueDecorator with string ALTER as value
virtual double SAL_CALL getDouble(sal_Int32 columnIndex) override
virtual sal_Int8 SAL_CALL getByte(sal_Int32 columnIndex) override
std::vector< ORowSetValueDecoratorRef > ORow
virtual sal_Int32 SAL_CALL getRow() override
static ORowSetValueDecoratorRef const & getDeleteValue()
return an ORowSetValueDecorator with string DELETE as value
virtual sal_Bool SAL_CALL isBeforeFirst() override
css::uno::Reference< css::sdbc::XResultSetMetaData > m_xMetaData
virtual css::util::Time SAL_CALL getTime(sal_Int32 columnIndex) override
static ORowSetValueDecoratorRef const & getDropValue()
return an ORowSetValueDecorator with string DROP as value
@ eTableTypes
describes a result set as expected by XDatabaseMetaData::getTableTypes
@ eVersionColumns
describes a result set as expected by XDatabaseMetaData::getVersionColumns
@ ePrimaryKeys
describes a result set as expected by XDatabaseMetaData::getPrimaryKeys
@ eIndexInfo
describes a result set as expected by XDatabaseMetaData::getIndexInfo
@ eImportedKeys
describes a result set as expected by XDatabaseMetaData::getImportedKeys
@ eTypeInfo
describes a result set as expected by XDatabaseMetaData::getTypeInfo
@ eSchemas
describes a result set as expected by XDatabaseMetaData::getSchemas
@ eColumnPrivileges
describes a result set as expected by XDatabaseMetaData::getColumnPrivileges
@ eProcedures
describes a result set as expected by XDatabaseMetaData::getProcedures
@ eTables
describes a result set as expected by XDatabaseMetaData::getTables
@ eCrossReference
describes a result set as expected by XDatabaseMetaData::getCrossReference
@ eExportedKeys
describes a result set as expected by XDatabaseMetaData::getExportedKeys
@ eBestRowIdentifier
describes a result set as expected by XDatabaseMetaData::getBestRowIdentifier
@ eColumns
describes a result set as expected by XDatabaseMetaData::getColumns
@ eCatalogs
describes a result set as expected by XDatabaseMetaData::getCatalogs
@ eProcedureColumns
describes a result set as expected by XDatabaseMetaData::getProcedureColumns
@ eUDTs
describes a result set as expected by XDatabaseMetaData::getUDTs
@ eTablePrivileges
describes a result set as expected by XDatabaseMetaData::getTablePrivileges
virtual css::util::Date SAL_CALL getDate(sal_Int32 columnIndex) override
static ORowSetValueDecoratorRef const & getInsertValue()
return an ORowSetValueDecorator with string INSERT as value
virtual sal_Bool SAL_CALL first() override
virtual sal_Bool SAL_CALL rowInserted() override
static ORowSetValueDecoratorRef const & get1Value()
return an ORowSetValueDecorator with 1 as value
virtual void SAL_CALL acquire() noexcept override
virtual css::uno::Reference< css::sdbc::XRef > SAL_CALL getRef(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL isFirst() override
static ORowSetValueDecoratorRef const & get0Value()
return an ORowSetValueDecorator with 0 as value
static ORowSetValueDecoratorRef const & getReadValue()
return an ORowSetValueDecorator with string READ as value
virtual void SAL_CALL release() noexcept override
virtual css::uno::Reference< css::sdbc::XBlob > SAL_CALL getBlob(sal_Int32 columnIndex) override
virtual css::uno::Any SAL_CALL getWarnings() override
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getStatement() override
virtual OUString SAL_CALL getString(sal_Int32 columnIndex) override
static ORowSetValueDecoratorRef const & getUpdateValue()
return an ORowSetValueDecorator with string UPDATE as value
virtual sal_Bool SAL_CALL rowDeleted() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual sal_Bool SAL_CALL getBoolean(sal_Int32 columnIndex) override
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getBinaryStream(sal_Int32 columnIndex) override
virtual css::util::DateTime SAL_CALL getTimestamp(sal_Int32 columnIndex) override
static ORowSetValueDecoratorRef const & getQuoteValue()
return an ORowSetValueDecorator with string ' as value
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getCharacterStream(sal_Int32 columnIndex) override
static ORowSetValueDecoratorRef const & getCreateValue()
return an ORowSetValueDecorator with string CREATE as value
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual const ORowSetValue & getValue(sal_Int32 columnIndex)
virtual float SAL_CALL getFloat(sal_Int32 columnIndex) override
static ORowSetValueDecoratorRef const & getSelectValue()
return an ORowSetValueDecorator with string SELECT as value
::dbtools::OPropertyMap & getPropMap()
Definition: TConnection.cxx:68
ORowSetValueDecorator decorates an ORowSetValue so the value is "refcounted".
Definition: FValue.hxx:402
ORowSetValueDecorator & operator=(const ORowSetValue &_aValue)
css::util::Time getTime() const
Definition: FValue.cxx:1951
sal_Int32 getInt32() const
Definition: FValue.cxx:1377
OUString getString() const
Definition: FValue.cxx:933
css::uno::Any makeAny() const
Definition: FValue.cxx:837
sal_Int8 getInt8() const
Definition: FValue.cxx:1089
float getFloat() const
Definition: FValue.cxx:1669
sal_Int16 getInt16() const
Definition: FValue.cxx:1235
css::util::Date getDate() const
Definition: FValue.cxx:1893
css::util::DateTime getDateTime() const
Definition: FValue.cxx:1995
sal_Int64 getLong() const
Definition: FValue.cxx:1523
double getDouble() const
Definition: FValue.cxx:1745
css::uno::Sequence< sal_Int8 > getSequence() const
Definition: FValue.cxx:1821
mutable::osl::Mutex m_aMutex
sal_Int16 nValue
std::mutex m_aMutex
Type
::cppu::WeakComponentImplHelper< css::sdbc::XResultSet, css::sdbc::XRow, css::sdbc::XResultSetMetaDataSupplier, css::util::XCancellable, css::sdbc::XWarningsSupplier, css::sdbc::XCloseable, css::lang::XInitialization, css::lang::XServiceInfo, css::sdbc::XColumnLocate > ODatabaseMetaDataResultSet_BASE
void checkDisposed(bool _bThrow)
Definition: dbtools.cxx:1951
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
void throwFunctionSequenceException(const Reference< XInterface > &Context, const Any &Next)
void throwInvalidIndexException(const css::uno::Reference< css::uno::XInterface > &Context, const css::uno::Any &Next)
throw an invalid index sqlexception
void throwInvalidColumnException(const OUString &_rColumnName, const Reference< XInterface > &_rxContext)
int i
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
void dispose()
const char * columnName
Definition: pq_statics.cxx:56
#define PROPERTY_ID_RESULTSETTYPE
Definition: propertyids.hxx:44
#define PROPERTY_ID_RESULTSETCONCURRENCY
Definition: propertyids.hxx:43
#define PROPERTY_ID_FETCHSIZE
Definition: propertyids.hxx:46
#define PROPERTY_ID_FETCHDIRECTION
Definition: propertyids.hxx:45
unsigned char sal_Bool
signed char sal_Int8
#define O3TL_UNREACHABLE
const SvXMLTokenMapEntry aTypes[]