El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
Usuario No me deja cerrar un Recordset
Desconocido
Enviado - 27/3/2003
 
Tengo el siguiente codigo:

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset

Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open "provider=Microsoft.Jet.OLEDB.4.0;data source= <base de datos>"


'Consultar si existe el registro
Set rst = cnn.Execute("SELECT * FROM <tabla> WHERE <condition>)

If rst.BOF Or rst.EOF Then
MsgBox "Registro no encontrado"
Else
Set rst = cnn.Execute("DELETE * FROM <tabla> WHERE <condition>)
MsgBox "Usuario borrado"
End If

Set rst = Nothing
Set cnn = Nothing
rst.Close
cnn.Close


El caso es q me hace todo bien hasta q llega a "rst.Close", q no me deja ejecutarla, xq dice q el objeto está cerrado. Si quito el "set rst = Nothing" sigue sin dejarme cerrar el objeto
Alguien me podría decir q estoy haciendo mal??

Gracias
 
fmarredo
493 Mensaje(s)
Enviado - 27/3/2003
 
Te dice que el objeto está cerrado porque la sentencia SQL que pusiste (Set rst = cnn.Execute("DELETE * FROM <tabla> WHERE <condition>)
) es una eliminación, la cual no devuelve datos.
Deberías ejecutarla sin asignársela al recordset

cnn.Execute "DELETE * FROM <tabla> WHERE <condition>"

 
El Guru
43 Mensaje(s)
Enviado - 27/3/2003
 
Aparte, hay otro tema y es que estas destruyendo el objeto antes de cerrarlo...

Set rst = Nothing
Set cnn = Nothing
rst.Close
cnn.Close

eso tendria que ir al reves, osea...

rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing

pero bueno en este caso el rst.close, no es aplicable.
 
 

 

Contactos myStudio Network