Foros del Web » Programando para Internet » ASP Clásico »

Contar registros

Estas en el tema de Contar registros en el foro de ASP Clásico en Foros del Web. Hola, cómo puedo contar los registros de un recordsets. He provado con esto. Dim iResp Do While not ObjRSr.EOF iResp=iResp+1 objRSr.MoveNext Loop Pero luego no ...
  #1 (permalink)  
Antiguo 20/02/2004, 12:26
 
Fecha de Ingreso: agosto-2002
Mensajes: 74
Antigüedad: 21 años, 9 meses
Puntos: 1
Contar registros

Hola, cómo puedo contar los registros de un recordsets.
He provado con esto.

Dim iResp
Do While not ObjRSr.EOF
iResp=iResp+1
objRSr.MoveNext
Loop

Pero luego no hay manera de volver al principio del recordset.
¿Cómo podria solucionar esto?
  #2 (permalink)  
Antiguo 20/02/2004, 13:28
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 3 meses
Puntos: 0
Estimado Garet, primero que nada SI puedes regresar al primer registro del recordset siempre y cuando utilices el cursor adecuado, por ejemplo adOpenStatic o adOpenDynamic, no así con el adOpenForwardOnly que debe ser tu caso.
Si abres el recordset utilizando uno de estos cursores (Static o Dynamic) puedes utilizar una simple propiedad del objeto recordset que es RecordCount para obtener la cantidad de registros, o sea que podrías poner:

Dim cantidadregistros
cantidadregistros = miRecordset.RecordCount

Pero si estás utilizando un cursor de tipo adOpenForwardOnly tienes otra opción que es utilizar GetRows para obtener todos los registros de una vez, o sea que quedaría algo como esto.

Dim cantidadregistros
Dim arrRegistros
arrRegistros = miRecordset.GetRows
cantidadregistros = UBound(arrRegistros, 2) + 1

Tienes que sumarle uno, puesto que GetRows devuelve un array bidimensional con toda la información de los campos y registros de la consulta y como todo array su primer indice comienza por 0 en lugar de por 1.

El tema de GetRows es un poco más profundo que esto y tiene unas utilidades excelentes para acelerar la devolución de la información desde la base de datos, pero para lo que la necesitás con esto es suficiente.

Espero que te sirva.


Saludos
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:20.