This example uses the Supports method to display the options supported by a recordset opened with different cursor types. The DisplaySupport procedure is required for this procedure to run.
'BeginSupportsVB 'To integrate this code 'replace the data source and initial catalog values 'in the connection string Public Sub Main() On Error GoTo ErrorHandler ' recordset and connection variables Dim rstTitles As ADODB.Recordset Dim Cnxn As ADODB.Connection Dim strCnxn As String Dim strSQLTitles As String ' array variables Dim arrCursorType(4) As Integer Dim intIndex As Integer ' open connection Set Cnxn = New ADODB.Connection strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _ "Initial Catalog='Pubs';Integrated Security='SSPI';" Cnxn.Open strCnxn ' Fill array with CursorType constants arrCursorType(0) = adOpenForwardOnly arrCursorType(1) = adOpenKeyset arrCursorType(2) = adOpenDynamic arrCursorType(3) = adOpenStatic ' open recordset using each CursorType and optimistic locking For intIndex = 0 To 3 Set rstTitles = New ADODB.Recordset rstTitles.CursorType = arrCursorType(intIndex) rstTitles.LockType = adLockOptimistic strSQLTitles = "Titles" rstTitles.Open strSQLTitles, Cnxn, , , adCmdTable Select Case arrCursorType(intIndex) Case adOpenForwardOnly Debug.Print "ForwardOnly cursor supports:" Case adOpenKeyset Debug.Print "Keyset cursor supports:" Case adOpenDynamic Debug.Print "Dynamic cursor supports:" Case adOpenStatic Debug.Print "Static cursor supports:" End Select ' call the DisplaySupport procedure from below ' to display the supported options DisplaySupport rstTitles Next intIndex ' clean up rstTitles.Close Cnxn.Close Set rstTitles = Nothing Set Cnxn = Nothing Exit Sub ErrorHandler: ' clean up If Not rstTitles Is Nothing Then If rstTitles.State = adStateOpen Then rstTitles.Close End If Set rstTitles = Nothing If Not Cnxn Is Nothing Then If Cnxn.State = adStateOpen Then Cnxn.Close End If Set Cnxn = Nothing If Err <> 0 Then MsgBox Err.Source & "-->" & Err.Description, , "Error" End If End Sub 'EndSupportsVB 'BeginSupports2VB Public Sub DisplaySupport(rstTemp As ADODB.Recordset) Dim arrConstants(11) As Long Dim blnSupports As Boolean Dim intIndex As Integer ' Fill array with cursor option constants arrConstants(0) = adAddNew arrConstants(1) = adApproxPosition arrConstants(2) = adBookmark arrConstants(3) = adDelete arrConstants(4) = adFind arrConstants(5) = adHoldRecords arrConstants(6) = adMovePrevious arrConstants(7) = adNotify arrConstants(8) = adResync arrConstants(9) = adUpdate arrConstants(10) = adUpdateBatch For intIndex = 0 To 10 blnSupports = _ rstTemp.Supports(arrConstants(intIndex)) If blnSupports Then Select Case arrConstants(intIndex) Case adAddNew Debug.Print " AddNew" Case adApproxPosition Debug.Print " AbsolutePosition and AbsolutePage" Case adBookmark Debug.Print " blnkmark" Case adDelete Debug.Print " Delete" Case adFind Debug.Print " Find" Case adHoldRecords Debug.Print " Holding Records" Case adMovePrevious Debug.Print " MovePrevious and Move" Case adNotify Debug.Print " Notifications" Case adResync Debug.Print " Resyncing data" Case adUpdate Debug.Print " Update" Case adUpdateBatch Debug.Print " batch updating" End Select End If Next intIndex End Sub 'EndSupports2VB
Recordset Object | Supports Method