PRB: Bookmarks are not Persisted or MarshalledID: Q191084
|
After a recordset has been reopened, once persisted to disk or marshalled across processes or computer boundaries, the bookmarks are no longer correct and they appear to be reset.
Bookmarks are not preserved when a recordset is persisted to a file with the Save method or when marshalled across processes or computer boundaries.
This behavior is by design.
NOTE: this sample code was written for ADO 2.0. ADO 1.5 does not support a Save method.
Set oRs = New ADODB.Recordset
With oRs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockBatchOptimistic
.Fields.Append "c_col1", adChar, 2
.Fields.Append "c_col2", adChar, 2
.Open
End With
oRs.AddNew
oRs(0) = "1"
oRs.Update
oRs.AddNew
oRs(0) = "2"
oRs.Update
oRs.AddNew
oRs(0) = "3"
oRs.Update
oRs.MoveFirst
Debug.Print oRs.RecordCount
Debug.Print oRs.Bookmark
'Delete the first row, move to the new first row, and check its book
'mark value.
oRs.Delete
oRs.MoveFirst
Debug.Print oRs.Bookmark
'The Save method can not overwrite existing files.
On Error Resume Next
Kill "C:\mytmp.txt"
On Error GoTo 0
oRs.Save "C:\mytmp.txt"
oRs.Close
Set oRs = Nothing
'Re-open persisted file and check the first row's bookmark.
'Prior to persisting the recordset the first row's bookmark was a 2.
Set oRs = New ADODB.Recordset
oRs.Source = "C:\mytmp.txt"
oRs.Open
oRs.MoveFirst
Debug.Print oRs.Bookmark
Debug.Print oRs.RecordCount
Debug.Print oRs(0)
Unload Me
For additional information about ADO Recordset Properties, please see the following article(s) in the Microsoft Knowledge Base:
Q185423 Most ADO Recordset Properties are not Marshalled
Additional query words:
Keywords : kbADO kbADO150 kbADO200 kbDatabase kbSweepNext
Version : WINDOWS:1.5,2.0,6.0
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: May 27, 1999