Visual Basic - problemas retornando un recordset

Life is soft - evento anual de software empresarial
 
Vista:

problemas retornando un recordset

Publicado por juanweston (3 intervenciones) el 04/09/2003 14:58:27
tengo una funcion que me retorna un recordset, el cual me da un error al querer abrirlo desde el procedimiento que lo llamo. que estoy haciendo mal?
una idea del codigo que utilizo es la siguiente:

Private Sub Form_Load()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

Set rs = Consulta
Set rs = Nothing
End Sub

Private Function Consulta() As ADODB.Recordset
Dim cn as ADODB.Cconnection
Dim rs1 As ADODB.Recordset

...
codigo de consultas
...

Set Consulta = rs1 ' devuelvo el recordset
Set rs1 = Nothing
Set cn = Nothing
End Function

rs1 funciona perfecto, me realiza la consulta y me devuelve registros.
rs lo uso para llenar una herarchical flex grid, pero no puedo recorrer el recordset ya que no esta abierto. (no estoy usando un objeto connection en el Form_Load)

saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:problemas retornando un recordset

Publicado por Yamil Bracho (226 intervenciones) el 04/09/2003 18:47:51
Para retornar un recordset desconectado la primero es que el CursorLocation del recordset debe estar del lado del cliente. Te quedaria el codigo como :

Private Sub Form_Load()
Dim rs As ADODB.Recordset

Set rs = Consulta()
...
Set rs = Nothing
End Sub

Private Function Consulta() As ADODB.Recordset
Dim cn as ADODB.Cconnection
Dim rs1 As ADODB.Recordset

rs1.CursorLocation = adUseCliente
...
codigo de consultas
...

Set Consulta = rs1 ' devuelvo el recordset
Set rs1 = Nothing
Set cn = Nothing
End Function

Prueba y me dices

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema retornando recordset desde clase

Publicado por juanweston (3 intervenciones) el 04/09/2003 23:23:39
el tema es que ejecuto un metodo de una clase que realiza una consulta y el recordset al que le asigo el retorno de ese metodo me queda cerrado y no me deja abrirlo porque dice que falta una conexicion.
cosa que si lo devuelvo desde una funcion no me pasa

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar