diff options
author | Ocke Janssen [oj] <Ocke.Janssen@oracle.com> | 2010-11-29 13:15:25 +0100 |
---|---|---|
committer | Ocke Janssen [oj] <Ocke.Janssen@oracle.com> | 2010-11-29 13:15:25 +0100 |
commit | 1a273e914e872ff40f8a2f4db84ba374d6b4d372 (patch) | |
tree | f99f6e8cd0f89a6f5e3dc8b12147ea671a31e9bb /dbaccess/source | |
parent | 1e098993bfea9b96f43fae750ed81a4e6749473b (diff) |
dba34b: #109956# notify column value in correct order
Diffstat (limited to 'dbaccess/source')
-rw-r--r-- | dbaccess/source/core/api/RowSet.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx index e962f7f79..84a09390a 100644 --- a/dbaccess/source/core/api/RowSet.cxx +++ b/dbaccess/source/core/api/RowSet.cxx @@ -1078,7 +1078,7 @@ void ORowSet::implCancelRowUpdates( sal_Bool _bNotifyModified ) SAL_THROW( ( SQL positionCache( MOVE_NONE_REFRESH_ONLY ); ORowSetRow aOldValues; - if ( !m_aCurrentRow.isNull() ) + if ( !m_bModified && _bNotifyModified && !m_aCurrentRow.isNull() ) aOldValues = new ORowSetValueVector( m_aCurrentRow->getBody() ); m_pCache->cancelRowUpdates(); @@ -1088,11 +1088,13 @@ void ORowSet::implCancelRowUpdates( sal_Bool _bNotifyModified ) SAL_THROW( ( SQL m_aCurrentRow.setBookmark(m_aBookmark); // notification order - // - column values - ORowSetBase::firePropertyChange(aOldValues); // IsModified if( !m_bModified && _bNotifyModified ) + { + // - column values + ORowSetBase::firePropertyChange(aOldValues); fireProperty(PROPERTY_ID_ISMODIFIED,sal_False,sal_True); + } } // ------------------------------------------------------------------------- @@ -2771,9 +2773,9 @@ void SAL_CALL ORowSet::refreshRow( ) throw(SQLException, RuntimeException) // notification order: if ( m_bModified && m_pCache ) - // - column values implCancelRowUpdates( sal_False ); // do _not_ notify the IsModify - will do this ourself below + // - column values ORowSetBase::refreshRow(); // - IsModified |