Data-access techniques using cached data on the client for updates is possible using disconnected recordsets. This technique generates collisions in some situations. However, the technique for dealing with collisions rows that the server rejects differs in ADO from the other models such as RDO and DAO. In ADO, Filter property of the recordset can be used to traverse the records that were modified. Then you can check their Status property to determine if the update succeeded on all rows. This is required since the ADO raises a trappable error only if the server rejects all the records in the update: The code snippet checks the status of each record in the recordset for status:
rsResults.Filter = adFilterAffectedRecordsDo While Not rsResults.EOF If rsResults.Status adRecUnmodified And
rsResults.Status adRecOK Then 'There is some problem in this record End If rsResults.MoveNextLooprsResults.Filter = adFilterNone