RowSet: notify listeners when next() brings us afterLast
Change-Id: I6024352f9d7c68d8075d90b5954ec3ba662a06f0
This commit is contained in:
@@ -591,12 +591,24 @@ sal_Bool SAL_CALL ORowSetBase::next( ) throw(SQLException, RuntimeException, st
|
|||||||
bRet = m_pCache->next();
|
bRet = m_pCache->next();
|
||||||
doCancelModification( );
|
doCancelModification( );
|
||||||
|
|
||||||
|
// if we were afterLast before next() then we still are,
|
||||||
|
// i.e. bAfterLast implies m_pCache->isAfterLast()
|
||||||
|
if (bAfterLast)
|
||||||
|
assert(m_pCache->isAfterLast());
|
||||||
|
// so the only way bAfterLast != m_pCache->isAfterLast()
|
||||||
|
// would be that we just arrived there,
|
||||||
|
if (bAfterLast != m_pCache->isAfterLast())
|
||||||
|
{
|
||||||
|
assert(!bAfterLast);
|
||||||
|
assert(m_pCache->isAfterLast());
|
||||||
|
}
|
||||||
|
// in which case we *did* move the cursor
|
||||||
if ( bRet || bAfterLast != m_pCache->isAfterLast() )
|
if ( bRet || bAfterLast != m_pCache->isAfterLast() )
|
||||||
{
|
{
|
||||||
// notification order
|
// notification order
|
||||||
// - column values
|
// - column values
|
||||||
// - cursorMoved
|
// - cursorMoved
|
||||||
setCurrentRow( bRet, true, aOldValues, aGuard );
|
setCurrentRow( true, true, aOldValues, aGuard );
|
||||||
OSL_ENSURE(!m_bBeforeFirst,"BeforeFirst is true. I don't know why?");
|
OSL_ENSURE(!m_bBeforeFirst,"BeforeFirst is true. I don't know why?");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user