summaryrefslogtreecommitdiff
path: root/dbaccess/source
diff options
context:
space:
mode:
authorOcke Janssen [oj] <Ocke.Janssen@oracle.com>2010-11-29 13:15:25 +0100
committerOcke Janssen [oj] <Ocke.Janssen@oracle.com>2010-11-29 13:15:25 +0100
commit1a273e914e872ff40f8a2f4db84ba374d6b4d372 (patch)
treef99f6e8cd0f89a6f5e3dc8b12147ea671a31e9bb /dbaccess/source
parent1e098993bfea9b96f43fae750ed81a4e6749473b (diff)
dba34b: #109956# notify column value in correct order
Diffstat (limited to 'dbaccess/source')
-rw-r--r--dbaccess/source/core/api/RowSet.cxx10
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