Programación General > Visual Basic 6.0 e inferiores
Re: retornar un recordset desde una clase
(1/1)
juanweston:
mi problema es que quiero retornar un recordset ejecutando un metodo de una clase pero me queda cerrado y me dice que no puede abrirlo. el codigo resumido seria el siguiente:
Private Sub Form_Load()
Dim rs As New ADODB.Recordset
Dim Consulta As New cConsulta
Set rs = Consulta.Ejecutar("SELECT * FROM clientes")
// AQUI ESTA MI PROBLEMA. ya me dice que el recordset no se puede abrir
Set rs = Nothing
Set Consulta = Nothing
End Sub
Public Function Ejecutar(consulta as string) As ADODB.Recordset
Dim cn As New cConexion
cn.Inicializar App.path & "base de datos.mdb", ClaveBD
cn.SQL consulta
Set Ejecutar = cn.rs // hasta aqui todo OK. el recordset devuelve registros
Set cn = Nothing
End Function
:question:
Brroz:
Creo que el problema lo tienes porque destruyes la referencia al objeto cConexion (set cn = Nothing) antes de tiempo. Si defines 'cn' a nivel de módulo y destruyes la referencia al objeto con el evento 'Terminate' de la clase en vez de al finalizar la función, tu problema debe quedar resuelto.
Suerte.
angelescj:
Te envío un código con lo que creo pretendes hacer, y que funciona, ya que como lo tienes todo en clases hay código del que sólo se puede suponer lo que hace.
Espero que te sirva
:suerte:
Navegación
Ir a la versión completa