MDAC 2.5 SDK - ADO


 

CompareBookmarks Method Example (VB)

See Also

This example demonstrates the CompareBookmarks method. The relative value of bookmarks is seldom needed unless a particular bookmark is somehow special.

Designate a random row of a Recordset derived from the Authors table as the target of a search. Then display the position of each row relative to that target.

Public Sub Main()
   CompareBookmarksX
End Sub

Public Sub CompareBookmarksX()
Dim rst As ADODB.Recordset
Dim count As Integer
Dim target As Variant
Dim result As Long
Dim strAns As String
Dim strTitle As String
strTitle = "CompareBookmarks Example"

Set rst = New ADODB.Recordset
rst.Open "SELECT * FROM Authors", _
         "DSN=Pubs;Provider=MSDASQL; uid=sa;pwd=;", _
         adOpenStatic, adLockReadOnly, adCmdText

count = rst.RecordCount
Debug.Print "Rows in the Recordset = "; count
If count = 0 Then Exit Sub   'Exit if an empty recordset

Randomize
count = (Int(count * Rnd))   'Get position between 0 and count-1
Debug.Print "Randomly chosen row position = "; count
rst.Move count, adBookmarkFirst 'Move row to random position
target = rst.Bookmark        'Remember the mystery row.

count = 0
rst.MoveFirst
Do While Not rst.EOF         'Loop through recordset
   result = rst.CompareBookmarks(rst.Bookmark, target)
   If result = adCompareNotEqual Then
      Debug.Print "Row "; count; ": Bookmarks are not equal."
   ElseIf result = adCompareNotComparable Then
      Debug.Print "Row "; count; ": Bookmarks are not comparable."
   Else
      Select Case result
         Case adCompareLessThan
         strAns = "less than"
         Case adCompareEqual
            strAns = "equal to"
         Case adCompareGreaterThan
            strAns = "greater than"
         Case Else
            strAns = "in error comparing to"
      End Select
      Debug.Print "Row position " & count & " is " & strAns & _
                  " the target."
   End If
   count = count + 1
   rst.MoveNext
Loop

rst.Close
End Sub