SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: juanweston en Viernes 5 de Septiembre de 2003, 12:12

Título: Re: retornar un recordset desde una clase
Publicado por: juanweston en Viernes 5 de Septiembre de 2003, 12:12
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:
Título: Re: retornar un recordset desde una clase
Publicado por: Brroz en Viernes 5 de Septiembre de 2003, 13:02
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.
Título: retornar un recordset desde una clase
Publicado por: angelescj en Viernes 5 de Septiembre de 2003, 13:06
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: