Cambiar sentencia sql de un adodbc. Recordset

Hola, otra vez yo.
¿Quería saber como hacer para cambiar la consulta de selección de una adodb. Recordset?
Hice este procedimiento público y necesito cambiar la sentencia. La única forma en que logre hacerlo es cerrando el recordset y abriéndolo otra vez. Pero me gustaría hacerlo con el mismo.
Public BDado As New ADODB.Connection
Public rsADO As New ADODB.Recordset
Public Sub ConectarAdo(mSQL As String, adoType As CursorTypeEnum)
If rsADO.State = Closed Then
rsADO.CursorLocation = adUseClient
rsADO.Open mSQL, BDado, adoType, adLockOptimistic
Else
msgbox "esta abierto"
End IF
End Sub
Desde ya muchísimas gracias por tu tiempo.

1 respuesta

Respuesta
1
Si "con el mismo" te refieres a que quieres hacerlo sin cerrarlo, que yo sepa no se puede.
Cuando un recordset ejecuta un Insert, Delete o Update, si se puede cambiar de sentencia, y usarlo, pero en el momento en que ejecuta un Select y la consulta trae al menos un registro, el Recordset queda cargado, entonces es necesario cerrarlo setearlo a nothing, para volver a utilizaro.
En resumen, solo después de un select que trae al menos un registro se hace necesario cerrar el recordset.
Con el Insert, Updete y Delete, no hay ese problema por que en esas instrucciones lo que hace el Recordset es llevar datos al motor de base de datos. Por lo tanto cuando deja los datos, el Recordset queda limpio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas