22#include <sqlbison.hxx>
24#include <com/sun/star/sdbc/DataType.hpp>
25#include <com/sun/star/beans/PropertyAttribute.hpp>
26#include <com/sun/star/container/XIndexAccess.hpp>
35#include <com/sun/star/sdbc/ResultSetType.hpp>
36#include <com/sun/star/sdbc/FetchDirection.hpp>
37#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
38#include <com/sun/star/sdbcx/XIndexesSupplier.hpp>
50using namespace ::
cppu;
61 void lcl_throwError(
TranslateId pErrorId,
const css::uno::Reference< css::uno::XInterface>& _xContext)
73 ,m_aSkipDeletedSet(this)
74 ,m_pParseTree(pStmt->getParseTree())
75 ,m_pSQLAnalyzer(nullptr)
76 ,m_aSQLIterator(_aSQLIterator)
78 ,m_nResultSetType(ResultSetType::SCROLL_INSENSITIVE)
79 ,m_nFetchDirection(FetchDirection::FORWARD)
80 ,m_nResultSetConcurrency(ResultSetConcurrency::UPDATABLE)
84 ,m_nLastVisitedPos(-1)
85 ,m_nRowCountResult(-1)
90 ,m_bRowInserted(false)
92 ,m_bShowDeleted(pStmt->getOwnConnection()->showDeleted())
138 m_pTable->removeEventListener(
this);
153 return aRet.hasValue() ? aRet : OResultSet_BASE::queryInterface(rType);
158 ::osl::MutexGuard aGuard(
m_aMutex );
164 return ::comphelper::concatSequences(
aTypes.getTypes(),OResultSet_BASE::getTypes());
170 ::osl::MutexGuard aGuard(
m_aMutex );
175 sal_Int32 nLen = xMeta->getColumnCount();
179 if(xMeta->isCaseSensitive(
i) ?
columnName == xMeta->getColumnName(
i) :
180 columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(
i)))
191 ::osl::MutexGuard aGuard(
m_aMutex );
197 m_bWasNull = (*m_aSelectRow)[columnIndex]->getValue().isNull();
198 return *(*m_aSelectRow)[columnIndex];
203 if ( columnIndex <= 0
263 ::osl::MutexGuard aGuard(
m_aMutex );
280 ::osl::MutexGuard aGuard(
m_aMutex );
341 ::osl::MutexGuard aGuard(
m_aMutex );
350 ::osl::MutexGuard aGuard(
m_aMutex );
359 ::osl::MutexGuard aGuard(
m_aMutex );
368 ::osl::MutexGuard aGuard(
m_aMutex );
378 ::osl::MutexGuard aGuard(
m_aMutex );
395 ::osl::MutexGuard aGuard(
m_aMutex );
404 ::osl::MutexGuard aGuard(
m_aMutex );
411 ::osl::MutexGuard aGuard(
m_aMutex );
418 ::osl::MutexGuard aGuard(
m_aMutex );
425 ::osl::MutexGuard aGuard(
m_aMutex );
432 ::osl::MutexGuard aGuard(
m_aMutex );
442 ::osl::MutexGuard aGuard(
m_aMutex );
450{ ::osl::MutexGuard aGuard(
m_aMutex );
459 ::osl::MutexGuard aGuard(
m_aMutex );
469 ::osl::MutexGuard aGuard(
m_aMutex );
478 ::osl::MutexGuard aGuard(
m_aMutex );
487 ::osl::MutexGuard aGuard(
m_aMutex );
509 ::osl::MutexGuard aGuard(
m_aMutex );
522 sal_Int32
nPos = (*m_aInsertRow)[0]->getValue().getInt32();
524 *(*m_aInsertRow)[0] = sal_Int32(
m_pFileSet->size());
533 ::osl::MutexGuard aGuard(
m_aMutex );
537 lcl_throwError(STR_TABLE_READONLY,*
this);
540 *(*m_aInsertRow)[0] = (*m_aRow)[0]->getValue().getInt32();
547 ::osl::MutexGuard aGuard(
m_aMutex );
551 lcl_throwError(STR_TABLE_READONLY,*
this);
553 lcl_throwError(STR_DELETE_ROW,*
this);
555 lcl_throwError(STR_ROW_ALREADY_DELETED,*
this);
557 sal_Int32
nPos = (*m_aRow)[0]->getValue().getInt32();
569 ::osl::MutexGuard aGuard(
m_aMutex );
580 OValueRefVector::iterator aIter =
m_aInsertRow->begin()+1;
583 (*aIter)->setBound(
false);
592 ::osl::MutexGuard aGuard(
m_aMutex );
596 lcl_throwError(STR_TABLE_READONLY,*
this);
600 OValueRefVector::iterator aIter =
m_aInsertRow->begin()+1;
603 (*aIter)->setBound(
false);
615 ::osl::MutexGuard aGuard(
m_aMutex );
621 (*m_aInsertRow)[columnIndex]->setBound(
true);
622 *(*m_aInsertRow)[columnIndex] =
x;
700 ::osl::MutexGuard aGuard(
m_aMutex );
707 x->readBytes(aSeq,length);
718 ::osl::MutexGuard aGuard(
m_aMutex );
725 throw SQLException();
732 throw SQLException();
739 return new ::cppu::OPropertyArrayHelper(aProps);
749 sal_Int32 nFirstOffset,
753 OSL_ENSURE(
m_pSQLAnalyzer,
"OResultSet::ExecuteRow: Analyzer isn't set!");
757 sal_Int32 nOffset = nFirstOffset;
888 ExecuteRow(eCursorPosition,nOffset,
false,bRetrieveData);
895 switch(eCursorPosition)
989 switch (eCursorPosition)
1021 *(*m_aRow)[0] = sal_Int32(1);
1022 (*m_aRow)[1]->setBound(
true);
1023 (*m_aSelectRow)[1] = (*m_aRow)[1];
1045 switch(eCursorPosition)
1057 else if (nOffset < 0)
1079 xIndexes.set(xIndexSup->getIndexes(),UNO_QUERY);
1085 const sal_Int32
nCount = xIndexes->getCount();
1106 OSL_ENSURE(
static_cast<sal_Int32
>(
m_aSelectRow->size()) > elem,
"Invalid Index");
1107 switch ((*(
m_aSelectRow->begin()+elem))->getValue().getTypeKind())
1109 case DataType::CHAR:
1110 case DataType::VARCHAR:
1111 case DataType::LONGVARCHAR:
1115 case DataType::OTHER:
1116 case DataType::TINYINT:
1117 case DataType::SMALLINT:
1118 case DataType::INTEGER:
1119 case DataType::DECIMAL:
1120 case DataType::NUMERIC:
1121 case DataType::REAL:
1122 case DataType::DOUBLE:
1123 case DataType::DATE:
1124 case DataType::TIME:
1125 case DataType::TIMESTAMP:
1133 SAL_WARN(
"connectivity.drivers",
"OFILECursor::Execute: Data type not implemented");
1136 (*m_aSelectRow)[elem]->setBound(
true);
1161 OSL_ENSURE(
m_pSQLAnalyzer,
"No analyzer set with setSqlAnalyzer!");
1165 if (rTabs.empty() || !rTabs.begin()->second.is())
1166 lcl_throwError(STR_QUERY_TOO_COMPLEX,*
this);
1169 lcl_throwError(STR_QUERY_MORE_TABLES,*
this);
1171 OSQLTable xTable = rTabs.begin()->second;
1179 xComp->addEventListener(
this);
1184 sal_Int32 nColumnCount =
m_xColsIdx->getCount();
1211 lcl_throwError(STR_QUERY_COMPLEX_COUNT,*
this);
1234 bool bDistinct =
false;
1240 if (pDistinct && pDistinct->
getTokenID() == SQL_TOKEN_DISTINCT )
1252 sal::static_int_cast<sal_Int32>(
i))
1280 OSL_ENSURE(
m_pFileSet.is(),
"No KeySet existing! :-(");
1285 OValueRefVector::iterator aRowIter =
m_aRow->begin();
1286 OValueVector::iterator aSearchIter = aSearchRow->begin();
1287 for ( ++aRowIter,++aSearchIter;
1288 aRowIter !=
m_aRow->end();
1289 ++aRowIter,++aSearchIter)
1290 aSearchIter->setBound((*aRowIter)->isBound());
1296 #if OSL_DEBUG_LEVEL > 1
1302 for(
size_t j = nMaxRow-1; j > 0; --j)
1304 nPos = (*m_pFileSet)[j];
1308 OValueRefVector::iterator copyFrom =
m_aSelectRow->begin();
1309 OValueVector::iterator copyTo = aSearchRow->begin();
1310 for ( ++copyFrom,++copyTo;
1312 ++copyFrom,++copyTo)
1313 *copyTo = *(*copyFrom);
1317 nKey = (*m_pFileSet)[j-1];
1321 std::next(aSearchRow->begin()),
1322 [](
const OValueRefVector::value_type&
a,
const OValueVector::value_type& b) {
1323 return !a->isBound() || (*a == b); });
1326 (*m_pFileSet)[j] = 0;
1327 #if OSL_DEBUG_LEVEL > 1
1376 SAL_WARN(
"connectivity.drivers",
"OResultSet::OpenImpl: unsupported statement type!" );
1386 const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns,
1388 bool _bSetColumnMapping,
1390 std::vector<sal_Int32>& _rColMapping)
1395 OUString sTableColumnName, sSelectColumnRealName;
1401 std::map<OSQLColumns::iterator,bool> aSelectIters;
1402 OValueRefVector::const_iterator aRowIter = _rRow->begin()+1;
1404 aRowIter != _rRow->end();
1408 (*aRowIter)->setBound(
false);
1412 _xNames->getByIndex(
i) >>= xTableColumn;
1413 OSL_ENSURE(xTableColumn.is(),
"OResultSet::setBoundedColumns: invalid table column!");
1414 if (xTableColumn.is())
1415 xTableColumn->getPropertyValue(
sName) >>= sTableColumnName;
1417 sTableColumnName.clear();
1421 for ( OSQLColumns::iterator aIter = _rxColumns->begin();
1422 aIter != _rxColumns->end();
1426 if((*aIter)->getPropertySetInfo()->hasPropertyByName(sRealName))
1427 (*aIter)->getPropertyValue(sRealName) >>= sSelectColumnRealName;
1429 (*aIter)->getPropertyValue(
sName) >>= sSelectColumnRealName;
1431 if ( aCase(sTableColumnName, sSelectColumnRealName) && !(*aRowIter)->isBound() && aSelectIters.end() == aSelectIters.find(aIter) )
1433 aSelectIters.emplace(aIter,
true);
1434 if(_bSetColumnMapping)
1436 sal_Int32 nSelectColumnPos = aIter - _rxColumns->begin() + 1;
1438 sal_Int32 nTableColumnPos =
i + 1;
1440 _rColMapping[nSelectColumnPos] = nTableColumnPos;
1441 (*_rSelectRow)[nSelectColumnPos] = *aRowIter;
1444 (*aRowIter)->setBound(
true);
1445 sal_Int32
nType = DataType::OTHER;
1446 if (xTableColumn.is())
1447 xTableColumn->getPropertyValue(
sType) >>=
nType;
1448 (*aRowIter)->setTypeKind(
nType);
1460 if ( !(_bSetColumnMapping && aSelectIters.size() != _rColMapping.size()) )
1466 for ( OSQLColumns::iterator aIter = _rxColumns->begin();
1467 aIter != _rxColumns->end();
1471 if ( aSelectIters.end() == aSelectIters.find(aIter) )
1473 if ( (*aIter)->getPropertySetInfo()->hasPropertyByName(sRealName) )
1474 (*aIter)->getPropertyValue(sRealName) >>= sSelectColumnRealName;
1476 (*aIter)->getPropertyValue(
sName) >>= sSelectColumnRealName;
1478 if ( xNameAccess->hasByName( sSelectColumnRealName ) )
1480 aSelectIters.emplace(aIter,
true);
1481 sal_Int32 nSelectColumnPos = aIter - _rxColumns->begin() + 1;
1482 const OUString* pBegin = aSelectColumns.getConstArray();
1483 const OUString* pEnd = pBegin + aSelectColumns.getLength();
1484 for(sal_Int32
i=0;pBegin != pEnd;++pBegin,++
i)
1486 if ( aCase(*pBegin, sSelectColumnRealName) )
1489 sal_Int32 nTableColumnPos =
i + 1;
1491 _rColMapping[nSelectColumnPos] = nTableColumnPos;
1492 (*_rSelectRow)[nSelectColumnPos] = (*_rRow)[nTableColumnPos];
1503 OResultSet_BASE::acquire();
1508 OResultSet_BASE::release();
1513 return ::cppu::OPropertySetHelper::createPropertySetInfo(
getInfoHelper());
1524 m_aRow->setDeleted(
false);
1528 if ( rValue->isBound() )
1530 (*m_aRow)[
nPos]->setValue( rValue->getValue() );
1532 rValue->setBound(
nPos == 0);
1533 rValue->setModified(
false);
1544 (*_rRow)[0]->setBound(
true);
1545 std::for_each(_rRow->begin()+1,_rRow->end(),
TSetRefBound(
false));
1561 return (*
m_aRow)[0]->getValue().getInt32();
1566 return m_aRow->isDeleted();
IMPLEMENT_SERVICE_INFO(OResultSet,"com.sun.star.sdbcx.drivers.file.ResultSet","com.sun.star.sdbc.ResultSet")
::cppu::IPropertyArrayHelper * getArrayHelper()
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
The class OKeySet is a refcountable vector which also has a state.
css::util::Time getTime() const
sal_Int32 getInt32() const
OUString getString() const
css::uno::Any makeAny() const
sal_Int16 getInt16() const
css::util::Date getDate() const
css::util::DateTime getDateTime() const
sal_Int64 getLong() const
css::uno::Sequence< sal_Int8 > getSequence() const
sal_uInt32 getTokenID() const
OSQLParseNode * getChild(sal_uInt32 nPos) const
const ::rtl::Reference< OSQLColumns > & getSelectColumns() const
const OSQLTables & getTables() const
OSQLStatementType getStatementType() const
void clear()
clear the map and the vector used in this class
void SetDeletedVisible(bool _bDeletedVisible)
sal_Int32 getMappedPosition(sal_Int32 _nBookmark) const
getMappedPosition returns the mapped position of a logical position
void insertNewPosition(sal_Int32 _nPos)
insertNewPosition adds a new position to the map
bool skipDeleted(IResultSetHelper::Movement _eCursorPosition, sal_Int32 _nOffset, bool _bRetrieveData)
skipDeleted moves the resultset to the position defined by the parameters it guarantees that the row ...
void deletePosition(sal_Int32 _nPos)
deletePosition deletes this position from the map and decrement all following positions
The class OSortIndex can be used to implement a sorted index.
std::vector< OKeyType > TKeyTypeVector
helper class for accessing resources shared by different libraries in the connectivity module
OUString getResourceString(TranslateId pResId) const
loads a string from the shared resource file
void doTableSpecials(const OSQLTable &_xTable)
virtual void SAL_CALL updateCharacterStream(sal_Int32 columnIndex, const css::uno::Reference< css::io::XInputStream > &x, sal_Int32 length) override
std::unique_ptr< OKeyValue > GetOrderbyKeyValue(OValueRefRow const &_rRow)
virtual bool isRowDeleted() const override
virtual css::uno::Reference< css::sdbc::XArray > SAL_CALL getArray(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL rowUpdated() override
virtual sal_Int32 SAL_CALL getInt(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL first() override
void checkIndex(sal_Int32 columnIndex)
virtual void SAL_CALL updateTime(sal_Int32 columnIndex, const css::util::Time &x) override
virtual css::util::Time SAL_CALL getTime(sal_Int32 columnIndex) override
virtual css::util::DateTime SAL_CALL getTimestamp(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL absolute(sal_Int32 row) override
virtual void SAL_CALL updateDouble(sal_Int32 columnIndex, double x) override
virtual float SAL_CALL getFloat(sal_Int32 columnIndex) override
OValueRefRow m_aEvaluateRow
std::vector< sal_Int32 > m_aColMapping
virtual void SAL_CALL deleteRow() override
virtual css::util::Date SAL_CALL getDate(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL relative(sal_Int32 rows) override
virtual void SAL_CALL clearWarnings() override
virtual void SAL_CALL updateBytes(sal_Int32 columnIndex, const css::uno::Sequence< sal_Int8 > &x) override
::rtl::Reference< connectivity::OSQLColumns > m_xColumns
virtual bool move(IResultSetHelper::Movement _eCursorPosition, sal_Int32 _nOffset, bool _bRetrieveData) override
virtual css::uno::Reference< css::sdbc::XClob > SAL_CALL getClob(sal_Int32 columnIndex) override
css::uno::Reference< css::sdbc::XResultSetMetaData > m_xMetaData
virtual void SAL_CALL updateNumericObject(sal_Int32 columnIndex, const css::uno::Any &x, sal_Int32 scale) override
virtual void SAL_CALL close() override
virtual sal_Bool SAL_CALL isLast() override
virtual sal_Int32 getDriverPos() const override
css::uno::Reference< css::uno::XInterface > m_xStatement
virtual void SAL_CALL updateString(sal_Int32 columnIndex, const OUString &x) override
OValueRefRow m_aSelectRow
const ORowSetValue & getValue(sal_Int32 columnIndex)
virtual sal_Bool SAL_CALL isFirst() override
virtual ::cppu::IPropertyArrayHelper * createArrayHelper() const override
sal_Int32 m_nLastVisitedPos
virtual sal_Int64 SAL_CALL getLong(sal_Int32 columnIndex) override
virtual void SAL_CALL updateLong(sal_Int32 columnIndex, sal_Int64 x) override
rtl::Reference< OFileTable > m_pTable
virtual sal_Bool SAL_CALL next() override
virtual void SAL_CALL beforeFirst() override
virtual void SAL_CALL updateByte(sal_Int32 columnIndex, sal_Int8 x) override
virtual ~OResultSet() override
virtual sal_Int16 SAL_CALL getShort(sal_Int32 columnIndex) override
virtual css::uno::Any SAL_CALL getWarnings() override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
sal_Int32 m_nResultSetType
std::vector< TAscendingOrder > m_aOrderbyAscending
connectivity::OSQLParseTreeIterator & m_aSQLIterator
virtual void SAL_CALL updateFloat(sal_Int32 columnIndex, float x) override
virtual sal_Int8 SAL_CALL getByte(sal_Int32 columnIndex) override
virtual void SAL_CALL updateBoolean(sal_Int32 columnIndex, sal_Bool x) override
virtual double SAL_CALL getDouble(sal_Int32 columnIndex) override
virtual void SAL_CALL updateInt(sal_Int32 columnIndex, sal_Int32 x) override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getBytes(sal_Int32 columnIndex) override
virtual void SAL_CALL moveToInsertRow() 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::XResultSetMetaData > SAL_CALL getMetaData() override
virtual sal_Int32 SAL_CALL findColumn(const OUString &columnName) override
virtual sal_Bool SAL_CALL isAfterLast() override
virtual void SAL_CALL afterLast() override
virtual void SAL_CALL release() noexcept override
static void setBoundedColumns(const OValueRefRow &_rRow, const OValueRefRow &_rSelectRow, const ::rtl::Reference< connectivity::OSQLColumns > &_rxColumns, const css::uno::Reference< css::container::XIndexAccess > &_xNames, bool _bSetColumnMapping, const css::uno::Reference< css::sdbc::XDatabaseMetaData > &_xMetaData, std::vector< sal_Int32 > &_rColMapping)
OSQLAnalyzer * m_pSQLAnalyzer
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getCharacterStream(sal_Int32 columnIndex) override
void updateValue(sal_Int32 columnIndex, const ORowSetValue &x)
virtual sal_Bool SAL_CALL isBeforeFirst() override
static void initializeRow(OValueRefRow &_rRow, sal_Int32 _nColumnCount)
virtual void SAL_CALL updateTimestamp(sal_Int32 columnIndex, const css::util::DateTime &x) override
OKeySet::iterator m_aFileSetIter
virtual sal_Bool SAL_CALL last() override
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
connectivity::OSQLParseNode * m_pParseTree
virtual void SAL_CALL insertRow() override
::rtl::Reference< OKeySet > m_pFileSet
sal_Int32 m_nFetchDirection
virtual void SAL_CALL acquire() noexcept override
virtual void SAL_CALL updateRow() override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
ORefAssignValues m_aAssignValues
virtual bool fillIndexValues(const css::uno::Reference< css::sdbcx::XColumnsSupplier > &_xIndex)
virtual void SAL_CALL updateShort(sal_Int32 columnIndex, sal_Int16 x) override
virtual void SAL_CALL refreshRow() override
sal_Int32 m_nRowCountResult
virtual void SAL_CALL disposing() override final
virtual void SAL_CALL updateNull(sal_Int32 columnIndex) override
bool ExecuteRow(IResultSetHelper::Movement eFirstCursorPosition, sal_Int32 nOffset=1, bool bEvaluate=true, bool bRetrieveData=true)
virtual sal_Bool SAL_CALL previous() override
virtual css::uno::Reference< css::sdbc::XRef > SAL_CALL getRef(sal_Int32 columnIndex) override
virtual OUString SAL_CALL getString(sal_Int32 columnIndex) override
virtual css::uno::Reference< css::sdbc::XBlob > SAL_CALL getBlob(sal_Int32 columnIndex) override
virtual sal_Bool SAL_CALL rowInserted() override
virtual void SAL_CALL cancel() override
OValueRefRow m_aInsertRow
virtual void SAL_CALL moveToCurrentRow() override
sal_Int32 mapColumn(sal_Int32 column)
std::unique_ptr< OSortIndex > m_pSortIndex
css::uno::Reference< css::container::XNameAccess > m_xColNames
std::vector< sal_Int32 > m_aOrderbyColumnNumber
virtual sal_Bool SAL_CALL wasNull() override
virtual sal_Bool SAL_CALL getBoolean(sal_Int32 columnIndex) override
css::uno::Reference< css::container::XIndexAccess > m_xColsIdx
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getStatement() override
sal_Int32 m_nResultSetConcurrency
virtual void SAL_CALL cancelRowUpdates() override
OSkipDeletedSet m_aSkipDeletedSet
bool Move(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, bool bRetrieveData)
virtual sal_Bool SAL_CALL rowDeleted() override
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getBinaryStream(sal_Int32 columnIndex) override
virtual void SAL_CALL updateObject(sal_Int32 columnIndex, const css::uno::Any &x) override
virtual sal_Int32 SAL_CALL getRow() override
virtual void SAL_CALL updateBinaryStream(sal_Int32 columnIndex, const css::uno::Reference< css::io::XInputStream > &x, sal_Int32 length) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual void SAL_CALL updateDate(sal_Int32 columnIndex, const css::util::Date &x) override
void setSelectionEvaluationResult(OValueRefRow const &_pRow, const std::vector< sal_Int32 > &_rColumnMapping)
bool evaluateRestriction()
bool hasRestriction() const
bool hasFunctions() const
mutable::osl::Mutex m_aMutex
#define TOOLS_WARN_EXCEPTION(area, stream)
Sequence< sal_Int8 > aSeq
#define SAL_WARN(area, stream)
OUString getString(const Any &_rAny)
::cppu::WeakComponentImplHelper< css::sdbc::XResultSet, css::sdbc::XRow, css::sdbc::XResultSetMetaDataSupplier, css::util::XCancellable, css::sdbc::XWarningsSupplier, css::sdbc::XResultSetUpdate, css::sdbc::XRowUpdate, css::sdbc::XCloseable, css::sdbc::XColumnLocate, css::lang::XServiceInfo, css::lang::XEventListener > OResultSet_BASE
std::map< OUString, OSQLTable, comphelper::UStringMixLess > OSQLTables
css::uno::Reference< css::sdbcx::XColumnsSupplier > OSQLTable
ODeleteVector< ORowSetValue > OValueVector
void checkDisposed(bool _bThrow)
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
#define PROPERTY_ID_RESULTSETTYPE
#define PROPERTY_ID_RESULTSETCONCURRENCY
#define PROPERTY_ID_FETCHSIZE
#define PROPERTY_ID_REALNAME
#define PROPERTY_ID_FETCHDIRECTION
#define SQL_ISRULE(pParseNode, eRule)
TSetBound is a functor to set the bound value with e.q. for_each call.