22#include <com/sun/star/io/XInputStream.hpp>
23#include <com/sun/star/sdbc/XConnection.hpp>
24#include <com/sun/star/sdb/XSingleSelectQueryAnalyzer.hpp>
25#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
48 css::uno::WeakReference< css::sdbc::XResultSet>
m_xSet;
49 css::uno::Reference< css::sdbc::XResultSetMetaData >
m_xMetaData;
50 css::uno::Reference< css::uno::XComponentContext>
m_aContext;
79 bool fill(ORowSetMatrix::iterator& _aIter,
const ORowSetMatrix::const_iterator& _aEnd, sal_Int32& _nPos,
bool _bCheck);
80 bool reFillMatrix(sal_Int32 _nNewStartPos,sal_Int32 nNewEndPos);
81 bool fillMatrix(sal_Int32 &_nNewStartPos,sal_Int32 &_nNewEndPos);
89 ,std::vector<sal_Int32>& o_ChangedColumns
93 ,std::vector<sal_Int32>
const & o_ChangedColumns
98 bool checkJoin(
const css::uno::Reference< css::sdbc::XConnection>& _xConnection,
99 const css::uno::Reference< css::sdb::XSingleSelectQueryAnalyzer >& _xComposer,
100 const OUString& _sUpdateTableName);
102 ,
const css::uno::Reference< css::sdbc::XConnection>& _xConnection
103 ,
const OUString& _sUpdateTableName);
114 ORowSetCache(
const css::uno::Reference< css::sdbc::XResultSet >& _xRs,
115 const css::uno::Reference< css::sdb::XSingleSelectQueryAnalyzer >& _xAnalyzer,
116 const css::uno::Reference< css::uno::XComponentContext >& _rContext,
117 const OUString& _rUpdateTableName,
121 const OUString& i_sRowSetFilter,
122 sal_Int32 i_nMaxRows);
145 sal_Int32
hashBookmark(
const css::uno::Any& bookmark );
154 ,std::vector<sal_Int32>& o_ChangedColumns
167 sal_Int32
getRow( )
const;
176 bool insertRow(std::vector< css::uno::Any >& o_aBookmarks);
179 void updateRow( ORowSetMatrix::iterator
const & _rUpdateRow, std::vector< css::uno::Any >& o_aBookmarks );
186 void reset(
const css::uno::Reference< css::sdbc::XResultSet>& _xDriverSet);
std::vector< VectorVal > Vector
const ORowSetMatrix::iterator & getEnd() const
std::unique_ptr< ORowSetMatrix > m_pMatrix
const css::uno::Reference< css::sdbc::XResultSetMetaData > & getMetaData() const
bool relative(sal_Int32 rows)
connectivity::OSQLTable m_aUpdateTable
css::uno::Any getBookmark()
sal_Int32 compareBookmarks(const css::uno::Any &first, const css::uno::Any &second)
void reset(const css::uno::Reference< css::sdbc::XResultSet > &_xDriverSet)
void checkPositionFlags()
void resetInsertRow(bool _bClearInsertRow)
bool absolute(sal_Int32 row)
std::map< sal_Int32, sal_Int32 > m_aKeyColumns
void updateValue(sal_Int32 columnIndex, const connectivity::ORowSetValue &x, ORowSetValueVector::Vector &io_aRow, std::vector< sal_Int32 > &o_ChangedColumns)
css::uno::WeakReference< css::sdbc::XResultSet > m_xSet
ORowSetCacheMap m_aCacheIterators
void setUpdateIterator(const ORowSetMatrix::iterator &_rOriginalRow)
bool moveRelativeToBookmark(const css::uno::Any &bookmark, sal_Int32 rows)
void rotateCacheIterator(ORowSetMatrix::difference_type _nDist)
void updateRow(ORowSetMatrix::iterator const &_rUpdateRow, std::vector< css::uno::Any > &o_aBookmarks)
void updateObject(sal_Int32 columnIndex, const css::uno::Any &x, ORowSetValueVector::Vector &io_aRow, std::vector< sal_Int32 > &o_ChangedColumns)
rtl::Reference< OCacheSet > m_xCacheSet
bool moveToBookmark(const css::uno::Any &bookmark)
ORowSetMatrix::iterator m_aMatrixIter
std::vector< TORowSetOldRowHelperRef > TOldRowSetRows
bool isResultSetChanged() const
bool checkJoin(const css::uno::Reference< css::sdbc::XConnection > &_xConnection, const css::uno::Reference< css::sdb::XSingleSelectQueryAnalyzer > &_xComposer, const OUString &_sUpdateTableName)
ORowSetCacheIterator createIterator(ORowSetBase *_pRowSet)
sal_Int32 hashBookmark(const css::uno::Any &bookmark)
void rotateAllCacheIterators()
bool fill(ORowSetMatrix::iterator &_aIter, const ORowSetMatrix::const_iterator &_aEnd, sal_Int32 &_nPos, bool _bCheck)
ORowSetMatrix::iterator m_aInsertRow
bool insertRow(std::vector< css::uno::Any > &o_aBookmarks)
ORowSetMatrix::iterator calcPosition() const
bool checkInnerJoin(const ::connectivity::OSQLParseNode *pNode, const css::uno::Reference< css::sdbc::XConnection > &_xConnection, const OUString &_sUpdateTableName)
TOldRowSetRows m_aOldRows
void impl_updateRowFromCache_throw(ORowSetValueVector::Vector &io_aRow, std::vector< sal_Int32 > const &o_ChangedColumns)
TORowSetOldRowHelperRef registerOldRow()
bool fillMatrix(sal_Int32 &_nNewStartPos, sal_Int32 &_nNewEndPos)
void deregisterOldRow(const TORowSetOldRowHelperRef &_rRow)
bool isBeforeFirst() const
void updateNumericObject(sal_Int32 columnIndex, const css::uno::Any &x, ORowSetValueVector::Vector &io_aRow, std::vector< sal_Int32 > &o_ChangedColumns)
bool hasOrderedBookmarks()
void updateCharacterStream(sal_Int32 columnIndex, const css::uno::Reference< css::io::XInputStream > &x, sal_Int32 length, ORowSetValueVector::Vector &io_aRow, std::vector< sal_Int32 > &o_ChangedColumns)
ORowSetCache(const css::uno::Reference< css::sdbc::XResultSet > &_xRs, const css::uno::Reference< css::sdb::XSingleSelectQueryAnalyzer > &_xAnalyzer, const css::uno::Reference< css::uno::XComponentContext > &_rContext, const OUString &_rUpdateTableName, bool &_bModified, bool &_bNew, const ORowSetValueVector &_aParameterValueForCache, const OUString &i_sRowSetFilter, sal_Int32 i_nMaxRows)
const std::map< sal_Int32, sal_Int32 > & getKeyColumns() const
void setFetchSize(sal_Int32 _nSize)
void checkUpdateConditions(sal_Int32 columnIndex)
css::uno::Reference< css::uno::XComponentContext > m_aContext
ORowSetMatrix::iterator m_aMatrixEnd
void updateNull(sal_Int32 columnIndex, ORowSetValueVector::Vector &io_aRow, std::vector< sal_Int32 > &o_ChangedColumns)
css::uno::Reference< css::sdbc::XResultSetMetaData > m_xMetaData
void deleteIterator(const ORowSetBase *_pRowSet)
void cancelRowModification()
bool reFillMatrix(sal_Int32 _nNewStartPos, sal_Int32 nNewEndPos)
std::unique_ptr< ORowSetMatrix > m_pInsertMatrix
css::uno::Reference< css::sdbcx::XColumnsSupplier > OSQLTable
std::map< sal_Int32, ORowSetCacheIterator_Helper > ORowSetCacheMap