The methods in IRowsetRefresh enable the consumer to retrieve the data in the data source that is visible to the current transaction according to its isolation level. To retrieve a copy of the currently visible data, the consumer calls IRowsetRefresh::GetLastVisibleData. To update the copy of a row in the rowset with the currently visible data, the consumer calls IRowsetRefresh::RefreshVisibleData.
Although this capability is related to the DBPROP_OWNUPDATEDELETE, DBPROP_OWNINSERT, DBPROP_OTHERUPDATEDELETE, and DBPROP_OTHERINSERT properties, it is independent of them. That is, the value of these properties can be VARIANT_FALSE and the rowset can still expose IRowsetRefresh. However, because of implementation difficulties, many rowsets do not expose IRowsetRefresh unless the values of the DBPROP_OWNUPDATEDELETE and DBPROP_OTHERUPDATEDELETE properties are VARIANT_TRUE.