summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/core/api/RowSet.cxx8
-rw-r--r--dbaccess/source/core/api/RowSetBase.cxx23
-rw-r--r--dbaccess/source/core/api/RowSetBase.hxx8
3 files changed, 19 insertions, 20 deletions
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index 0756e8b0a1cd..079673d307cc 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -1019,7 +1019,7 @@ void SAL_CALL ORowSet::deleteRow( ) throw(SQLException, RuntimeException, std::
// this call position the cache indirect
Any aBookmarkToDelete( m_aBookmark );
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE );
sal_Int32 nDeletePosition = m_pCache->getRow();
notifyRowSetAndClonesRowDelete( aBookmarkToDelete );
@@ -1066,7 +1066,7 @@ void ORowSet::implCancelRowUpdates( bool _bNotifyModified )
if ( m_bNew || m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY )
throwFunctionSequenceException(*this);
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE );
ORowSetRow aOldValues;
if ( !m_bModified && _bNotifyModified && !m_aCurrentRow.isNull() )
@@ -1194,7 +1194,7 @@ void SAL_CALL ORowSet::moveToInsertRow( ) throw(SQLException, RuntimeException,
setCurrentRow( true, false, aOldValues, aGuard);
}
else
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE );
// check before because the resultset could be empty
if ( !m_bBeforeFirst
@@ -1283,7 +1283,7 @@ void SAL_CALL ORowSet::moveToCurrentRow( ) throw(SQLException, RuntimeException
if ( notifyAllListenersCursorBeforeMove( aGuard ) )
{
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE_REFRESH );
ORowSetNotifier aNotifier( this );
diff --git a/dbaccess/source/core/api/RowSetBase.cxx b/dbaccess/source/core/api/RowSetBase.cxx
index 57a3dc12e7b6..bfaf44d5421b 100644
--- a/dbaccess/source/core/api/RowSetBase.cxx
+++ b/dbaccess/source/core/api/RowSetBase.cxx
@@ -221,7 +221,7 @@ const ORowSetValue& ORowSetBase::impl_getValue(sal_Int32 columnIndex)
if ( !bValidCurrentRow )
{
// currentrow is null when the clone moves the window
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE );
m_aCurrentRow = m_pCache->m_aMatrixIter;
m_bIsInsertRow = false;
OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getValue: we don't stand on a valid row! Row is null.");
@@ -348,7 +348,7 @@ Reference< ::com::sun::star::io::XInputStream > SAL_CALL ORowSetBase::getBinaryS
bool bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
if ( !bValidCurrentRow )
{
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE );
m_aCurrentRow = m_pCache->m_aMatrixIter;
m_bIsInsertRow = false;
OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getBinaryStream: we don't stand on a valid row! Row is null.");
@@ -657,6 +657,7 @@ sal_Bool SAL_CALL ORowSetBase::isFirst( ) throw(SQLException, RuntimeException,
if ( impl_rowDeleted() )
return ( m_nDeletedPosition == 1 );
+ positionCache( MOVE_NONE );
bool bIsFirst = m_pCache->isFirst();
SAL_INFO("dbaccess", "ORowSetBase::isFirst() = " << bIsFirst << " Clone = " << m_bClone);
@@ -686,6 +687,7 @@ sal_Bool SAL_CALL ORowSetBase::isLast( ) throw(SQLException, RuntimeException,
return ( m_nDeletedPosition == impl_getRowCount() );
}
+ positionCache( MOVE_NONE );
bool bIsLast = m_pCache->isLast();
SAL_INFO("dbaccess", "ORowSetBase::isLast() = " << bIsLast << " Clone = " << m_bClone);
@@ -857,13 +859,7 @@ sal_Int32 ORowSetBase::impl_getRow()
nPos = 0;
else
{
- if ( m_pCache->isAfterLast()
- || m_pCache->isBeforeFirst()
- || ( m_pCache->compareBookmarks( m_aBookmark, m_pCache->getBookmark() ) != CompareBookmark::EQUAL )
- )
- {
- positionCache( MOVE_NONE_REFRESH_ONLY );
- }
+ positionCache( MOVE_NONE );
nPos = m_pCache->getRow();
}
SAL_INFO("dbaccess", "ORowSetBase::impl_getRow() = " << nPos << " Clone = " << m_bClone);
@@ -1103,7 +1099,7 @@ void SAL_CALL ORowSetBase::refreshRow( ) throw(SQLException, RuntimeException,
{
bool bWasNew = m_pCache->m_bNew || impl_rowDeleted();
ORowSetRow aOldValues = getOldRow(bWasNew);
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE );
m_pCache->refreshRow();
firePropertyChange(aOldValues);
}
@@ -1237,7 +1233,7 @@ void ORowSetBase::positionCache( CursorMoveDirection _ePrepareForDirection )
bool bSuccess = false;
if ( m_aBookmark.hasValue() )
{
- if ( _ePrepareForDirection == MOVE_NONE_REFRESH_ONLY ||
+ if (_ePrepareForDirection == MOVE_NONE_REFRESH ||
m_pCache->compareBookmarks( m_aBookmark, m_pCache->getBookmark() ) != CompareBookmark::EQUAL )
bSuccess = m_pCache->moveToBookmark( m_aBookmark );
else
@@ -1278,7 +1274,8 @@ void ORowSetBase::positionCache( CursorMoveDirection _ePrepareForDirection )
bSuccess = m_pCache->absolute( m_nDeletedPosition );
break;
- case MOVE_NONE_REFRESH_ONLY:
+ case MOVE_NONE:
+ case MOVE_NONE_REFRESH:
bSuccess = false; // will be asserted below
break;
}
@@ -1334,7 +1331,7 @@ void ORowSetBase::onDeleteRow( const Any& _rBookmark )
//OSL_ENSURE( m_aBookmark.hasValue(), "ORowSetBase::onDeleteRow: Bookmark isn't valid!" );
if ( compareBookmarks( _rBookmark, m_aBookmark ) == 0 )
{
- positionCache( MOVE_NONE_REFRESH_ONLY );
+ positionCache( MOVE_NONE );
m_nDeletedPosition = m_pCache->getRow();
}
}
diff --git a/dbaccess/source/core/api/RowSetBase.hxx b/dbaccess/source/core/api/RowSetBase.hxx
index 00bb7cd250dc..9f23bd06199e 100644
--- a/dbaccess/source/core/api/RowSetBase.hxx
+++ b/dbaccess/source/core/api/RowSetBase.hxx
@@ -155,8 +155,10 @@ namespace dbaccess
MOVE_FORWARD,
/// denotes a cursor move backwards
MOVE_BACKWARD,
- /// denotes no cursor move at all, used when the current row is to be refreshed only
- MOVE_NONE_REFRESH_ONLY
+ /// denotes no cursor move at all, but move cache to current row (if it is not there already)
+ MOVE_NONE,
+ /// denotes no cursor move at all, but force the cache to move to current row (and refresh the row)
+ MOVE_NONE_REFRESH
};
/** positions the cache in preparation of a cursor move
@@ -170,7 +172,7 @@ namespace dbaccess
m_aBookmark.</br>
If, however, we're currently on a deleted row, this is used to properly position the cache
using <member>m_nDeletedPosition</member>.<br/>
- In this case, MOVE_NONE_REFRESH_ONLY is not supported. This is because the deleted row
+ In this case, MOVE_NONE(_REFRESH) is not supported. This is because the deleted row
(to which the RowSet currently points to) is not present in the cache. So, you cannot move the
cache to this row.
*/