Mediante un objeto de conjunto de registros
Como alternativa, puede usar Recordset.Open para establecer implícitamente una conexión y emitir un comando a través de esa conexión en una sola operación. Por ejemplo, en Visual Basic:
Dim oRs As ADODB.Recordset
Dim sConn As String
Dim sSQL as String
sConn = "Provider='SQLOLEDB';Data Source='MySqlServer';" & _ "Initial Catalog='Northwind';Integrated Security='SSPI';"
sSQL = "SELECT ProductID, ProductName, CategoryID, UnitPrice " & _
"FROM Products"
' Create and Open the Recordset object.
Set oRs = New ADODB.Recordset
oRs.CursorLocation = adUseClient
oRs.Open sSQL, sConn, adOpenStatic, _
adLockBatchOptimistic, adCmdText
MsgBox oRs.RecordCount
oRs.MarshalOptions = adMarshalModifiedOnly
' Disconnect the Recordset.
Set oRs.ActiveConnection = Nothing
oRs.Close
Set oRs = Nothing
Observe que oRs.Open toma una cadena de conexión (sConn), en lugar de un objeto Connection (oConn), como valor de su parámetro ActiveConnection. También se aplica el tipo de cursor del lado cliente estableciendo la propiedad CursorLocation en el objeto Recordset. De nuevo, compare esto con el ejemplo HelloData.