Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

vb6 + Error al traer recordset de base de datos

Estas en el tema de vb6 + Error al traer recordset de base de datos en el foro de Visual Basic clásico en Foros del Web. Hola, estoy teniendo un problema en un sistema hecho en vb6 y access. Creo una conexion, y al hacer selects, el recordset SIEMPRE viene vacio ...
  #1 (permalink)  
Antiguo 30/05/2011, 17:57
 
Fecha de Ingreso: agosto-2008
Mensajes: 14
Antigüedad: 15 años, 8 meses
Puntos: 0
vb6 + Error al traer recordset de base de datos

Hola, estoy teniendo un problema en un sistema hecho en vb6 y access.
Creo una conexion, y al hacer selects, el recordset SIEMPRE viene vacio (EOF en true). Los inserts los hace bien. Ejemplo del codigo:

Código:
 
    Dim cmdLocal As New ADODB.Command
    Dim rsLocal As New ADODB.Recordset
    Dim cnLocal As ADODB.Connection
    
    Set cnLocal = New ADODB.Connection
    cnLocal.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=C:\Lis\Seguros\base1.mdb ;"
    cnLocal.Open
    
    Set rsLocal = New ADODB.Recordset
    Set cmdLocal = New ADODB.Command
    
    With cmdLocal
      .ActiveConnection = cnLocal
      .CommandType = adCmdText
       .CommandText = "SELECT * FROM Caja  "     
      Set rsLocal = .Execute
      
      Debug.Assert rsLocal.RecordCount <> -1      
    End With
    Set cnLocal = Nothing
    Set cmdLocal = Nothing
    Set rsLocal = Nothing
y si en vez de abrilo con el command.execute, lo abro con el recordset.open (
Código:
rsLocal.Open "select * from caja", cnLocal, adOpenStatic, adLockBatchOptimistic
) lo HACE BIEN. El tema es que necesito hacerlo con el command, porque tengo muchas consultas que ncesitan parameters.
Agradezco cualquier ayuda.
  #2 (permalink)  
Antiguo 01/06/2011, 07:22
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 6 meses
Puntos: 47
Respuesta: vb6 + Error al traer recordset de base de datos

Hola!!
Que parametros necesitas?
No puedes poner "WHERE CAMPO1=VALOR" en lo Sentencia SQL?

Código vb:
Ver original
  1. rsLocal.Open "select * from caja where campo1=valor", cnLocal, adOpenStatic, adLockBatchOptimistic
  #3 (permalink)  
Antiguo 01/06/2011, 16:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 14
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: vb6 + Error al traer recordset de base de datos

no eso no puedo hacerlo, porque es un sistema que estoy migrando de DAO a ADO, y tiene mucha funcionalidad basada en parametros, por eso queria evitarlo. Igual te agradezco, ya lo solucione... bah, en realidad lo que pasaba es que el recordset linkeado a una base access SIEMPRE me devolvia el recordCount en -1 (no se porque) aunque en realidad si traia los datos.
  #4 (permalink)  
Antiguo 03/06/2011, 08:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 36
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: vb6 + Error al traer recordset de base de datos

Estimado :

te devolvia -1 el recordcount porque no veo como declaraste CursorLocation dentro de la apertura de la base. Para que recordcount funcione, debe declarase base.cursorlocation = adUseClient.

Saludos.
  #5 (permalink)  
Antiguo 05/06/2011, 14:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 14
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: vb6 + Error al traer recordset de base de datos

Gracias goffys1, ahi anduvo bien!

Etiquetas: ado, visualbasic
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:05.