PRB: RollbackTrans Does Not Undo Changes To ADO Recordset

ID: Q192717

The information in this article applies to:

SYMPTOMS

Calling a RollbackTrans on an ActiveX Data Objects (ADO) connection object does not undo the changes made to a client-side ADO recordset object that uses that connection.

STATUS

This behavior is by design.

MORE INFORMATION

The easiest way to revert your recordset is to persist the recordset in the desired state using the Save method that was introduced in ADO version 2.0. For example:

   rsAuthors.CursorLocation = adUseClient
   rsAuthors.Open "SELECT Au_ID, Au_LName FROM Authors", cnPubs, _
                  adOpenStatic, adLockBatchOptimistic, adCmdText
   rsAuthors.Save strPath
   cnPubs.BeginTrans
   rsAuthors!Au_LName = InputBox("Enter a new last name")
   rsAuthors.Update
   rsAuthors.UpdateBatch
   cnPubs.RollbackTrans
   rsAuthors.Open Source:=strPath, LockType:=adLockBatchOptimistic, _
                  Options:=adCmdFile
   Set rsAuthors.ActiveConnection = Nothing
   Set rsAuthors.ActiveConnection = cnPubs

Another possible solution is to use the Resync or Requery commands on the recordset object to retrieve the most up to date information from the database.

REFERENCES

(c) Microsoft Corporation 1998, All Rights Reserved. Contributions by, David Sceppa, Microsoft Corporation

Additional query words: kbADO150 kbADO200 kbVBp

Keywords          : kbADO200 
Version           : WINDOWS:1.5,2.0,5.0,6.0,97
Platform          : WINDOWS
Issue type        : kbprb

Last Reviewed: September 18, 1998