El Objeto RecordSet

Valoración del artículo:
Describimos algunos de los métodos y propiedades que nos ayudarán a sacar partido de este objeto.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
En nuestro manual de ASP I hemos introducido las nociones imprescindibles para la interacción con bases de datos. Hemos explicado cómo conectar con la base de datos y de qué forma podemos llevar a cabo las consultas mediante sentencias SQL.

Sin embargo, temiendo cargar en exceso un manual orientado a aprendices, no hemos presentado de una manera oficial los ADO (ActiveX Data Objects).

Cuando interaccionamos con una base de datos hay tres acciones principales que son llevadas a cabo por tres objetos diferentes:

-Primeramente se realiza una conexión a la base de datos. Esta tarea es realizada por el objeto Connection al cual tendremos que especificar la base de datos a la que nos queremos conectar mediante el interface ODBC.

-El objeto Command se encargará a continuación de ejecutar la sentencia SQL pertinente.

-Los resultados de la selección son almacenados en el objeto RecordSet en forma de una tabla que puede ser consultada y explotada de muchas maneras.

La tabla RecordSet se sirve fundamentalmente de un cursor que se sitúa inicialmente en el primer registro y que puede ser desplazado de múltiples formas a lo largo de la tabla para, de este modo, extraer las informaciones que puedan interesarnos.

Para mover este cursor he aquí los métodos que pueden ser empleados:

Método Descripción
MoveFirst Posiciona el cursor en el primer registro
MoveLast Posiciona el cursor en el último registro
MoveNext Avanza el cursor en un registro
MovePrevious Retrasa el cursor en un registro


Los métodos y propiedades que ofrece este objeto son asombrosamente numerosos. Aquí sólo comentaremos los más frecuentemente utilizados dejando al lector documentarse sobre el resto.

Elemento Descripción
Open Abre el objeto RecordSet
Close Cierra el objeto RecordSet
Eof End Of File. Devuelve el valor True cuando el cursor ha llegado más allá del último registro.
Bof Begining Of File. Devuelve el valor True cuando el cursor está posicionado antes del primer registro. Muy útil cuando se leen tablas al revés.
AbsolutePage En caso de estar paginando los resultados, nos indica la página actual en la que nos encontramos.
PageCount En caso de estar paginando los resultados, nos indica el numero de página s total.
RecordCount Nos devuelve la cantidad de registros contenidos en el objeto RecordSet.
Fields.Count Nos devuelve la cantidad de campos contenidos en el objeto RecordSet


Puede que despues de leer este artículo, todavía resulten vagos algunos conceptos relativos a la aplicación de estos métodos y propiedades. Esperamos que nuestro siguiente capítulo, en donde pondremos en práctica muchos de estos elementos, permita aclararos todo tipo de dudas.

Comentarios
Fueron enviados 7 comentarios al artículo
7 comentarios revisados:
Por: raul
17/12/02
He utilizado el metodo RecordCount para contar los usuarios registrados en mi BBDD y siempre salen -1, es curioso porque el resto de métodos sí que me funcionan

RESPUESTA

Se puede utilizar la propiedad recordcount de un recordset, en Access incluso. Lo que ocurre es que, dependiendo del tipo de recordset que abras, tendrás disponible o no dicha propiedad.

Por ejemplo, abriendo el recordset así si que puedes acceder a recordcount

'constantes ADO VBScript
Const adCmdText = &H0001
Const adOpenStatic = 3

'Set Conn = Server.CreateObject("ADODB.Connection")
Set RS =Server.CreateObject("ADODB.RecordSet")
RS.Open sSQL,Conn,adopenstatic,adcmdtext


(Donde sSQL es la variable que tiene la cadena en lenguaje SQL que se quiere ejecutar)
Por: Cesar
23/1/03
Con RecordSet puedo listar una subconjunto de registros, pero la propiedad RecordCount siempre me da -1, como explicarias esto. Mi solución de momento es crear un contador al interior de un bucle while...
Por: Francisco Dopacio
09/10/04
Es por que la propiedad Cursortype de
tu recordset es 0 prueba poniendo este codigo

Recordset1.CursorType = 1
donde recorset1 es el nombre de tu recorset
Por: PepeMax
07/12/04
Es por el modo en que abres las conexion.
Debes abrir el recordset de la siguiente manera:
rs.Open sqlStr, conexion , 2 , 3
lo importante es el numero 2
que indica la modalidad en que funcionara el recordset.
Espero te sirva :)
Por: Juan Linares
21/10/05
Existe un método para sumar valores de registros?
Por ejemplo: mi recorset me devuelve 25 registros y en un campo determinado hay valores, necesito obtener la suma de dichos numeros pero no a través de SQL pues eso ya lo tengo resuelto. Gracias de antemano
Por: Delfin
15/12/05
la propiedad recordset puede dar una respuesta si abre el recordset de la siguiente forma
........................
RS.Open sSQL,Conn,1,2

y puedes mostrar por ejemplo cuantos registros se han recuperado en esa conculta
................
if rs.recordcount=0 then
response.Redirect("p_error.htm")
end if
Por: Alfonso Figueroa (Lechu)
17/5/06
Para poder evitar ese error de que el contador no salga 0, antes de abrir el recorset hay que setearlo con estos parámentros.
rs.cursortype=3
rs.cursorlocation=3
y finalmente el
rs.open

Muchas gracias por la ayuda que me sirvio y espero mi aporte tambien ayude a alguien.

Manuales relacionados
Categorias relacionadas
El autor
Rubén Alvarez
Redactor de DesarrolloWeb.com
http://www.desarrolloweb.com
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Alojados en el grupo