Objeto RecordSet

El objeto Recordset es el interface entre los datos obtenidos de nuestras consultas sobre las tablas y nuestras páginas asp. Representa una tabla organizada en filas (registros) y columnas (campos).

La propiedades y métodos de Recordset son muchos, en este capitulo vamos a ver las mas interesantes, para hacerlo un poco mas sencillo de entender vamos a verlos agrupados por la funcionalidad que nos ofrecen.

Propiedades:

Métodos:

Definición del tipo de Cursor

Entendemos como cursor el puntero que nos permite desplazarnos por los registros del recordset. Dependiendo del tipo elegido determinaremos los desplazamientos y cambios realizables en los datos.

El tipo de cursor lo definiremos mediante la propiedad CursorType, los posibles valores son:

Denominación valor Características

adOpenForwardOnly 0

Es el cursor por defecto, solo nos permite recorrer la tabla de forma secuencial (no se puede volver hacia atrás) y no permite modificaciones en los registros. Por contra es el de menos consumo. No vemos los cambios realizados en la tabla por otro recordset.

adOpenKeyset 1

Nos permite movernos en los dos sentidos, si permite modificaciones en los registros. Vemos los cambios realizados en la tabla por otro recordset a excepción de las nuevas altas.

adOpenDynamic 2

Nos permite movernos en los dos sentidos, si permite modificaciones en los registros. Vemos Todos los cambios realizados en la tabla por otro recordset.

adOpenStatic 3

Nos permite movernos en los dos sentidos, no permite modificaciones en los registros. No vemos los cambios realizados en la tabla por otro recordset.

Definición del tipo de Cerrojo

Entendemos como cerrojo el tipo de bloqueo que efectuaremos en la base de datos cuando modifiquemos un recordset, a fin de evitar que dos o mas usuarios accedan a modificar un mismo registro a la vez.

El tipo de cerrojo lo definiremos mediante la propiedad LockType, los posibles valores son:

Denominación valor Características

adLockReadOnly 1

Es el defecto; no permite al usuario modificar

los datos de la tabla.

dLockPessimistic 2

Cuando se abra la tabla nadie mas podrá hacerlo, este modo nos asegura la plena integridad de los datos.

adLockOptimistic 3

Cierra la tabla a los demás usuarios cuando se invoque al método Update del objeto recordset; de este modo la Base de datos quedará bloqueada menos tiempo que con el método anterior.

Ejemplo de definición de un recordset para actualizar datos:

Const adOpenForwardOnly = 0

Const adOpenKeyset = 1

Const adOpenDynamic = 2

Const adOpenStatic = 3

Const adLockReadOnly = 1

Const adLockPessimistic = 2

Const adLockOptimistic = 3%>

set rs=createobject("ADODB.Recordset")

rs.CursorType = adOpenKeyset

rs.LockType = adLockOptimistic

Moviéndose por los datos del RecordSet

Métodos usados:

Método Características

Move Num_registros Mueve el cursor Num_registros hacia abajo si es positivo y hacia arriba si es negativo

MoveFirst Mueve el cursor al primer registro del Recordset

MoveLast Mueve el cursor al ultimo registro del Recordset

MoveNext Mueve el cursor un registro hacia adelante

MovePrevious Mueve el cursor un registro hacia atrás.

Propiedades usadas:

Propiedades Caracteristicas

Establece el numero de registros por página del recordset

PageSize

rs.Pagesize=10

Mueve el cursor al primer registro de dicha página (es necesario definir anteriormente el pageSize)

AbsolutePage

rs.AbsolutePage=2

Contiene el numero de páginas del recordset, tomando

como base PageSize

PageCount

xx=rs.PageCount

Mueve el cursor al num_registro especificado

Absoluteposition

rs.Absoluteposition=17

Contiene el numero de registros del recordset; Nota:

No funciona con el cursor adOpenForwardOnly

RecordCount

xx=rs.recordcount

BOF Toma el valor True cuando estamos en el primer registro del recordset

EOF Toma el valor True cuando estamos en el ultimo registro del recordset

Modificando los datos

Métodos usados:

Metodo Caracteristicas

Abre un nuevo registro en el recordset para introducir datos

AddNew rs.Addnew

rs("codigo")=1234

rs("titulo")="Todo sobre ASP"

rs.Update

Delete Elimina el registro actual

Actualiza un registro del recordset tras haberlo modificado

Update rs("titulo")="Como hacerse rico en 10 minutos"

rs.Update.Abriendo y cerrando el recordset

Métodos usados:

Metodo Caracteristicas

Abre el recordset y almacena en el el resultado de sql contra la conexion

Open Sql, conexion

set rs=createobject("ADODB.Recordset")

rs.CursorType = 1

rs.LockType = 3

Sqltxt="SELECT * FROM libros"

rs.open Sqltxt, "DSN=Biblioteca"

Close Cierra el recordset

Ejemplo de listado de un Recordset:

Listado.asp

<%SQLtxt = "SELECT Producto, Cantidad, Precio FROM almacen

set rs = CreateObject("ADODB.Recordset")

rs.Open SQLtxt, "DSN=Mibase"%>

<table>

<%

Do While NOT rs.EOF%>

<tr>

<td><% = rs("Producto")%></td>

<td><% = rs("Cantidad")%></td>

<td align="right"><% = FormatCurrency(rs("Precio"))%></td>

</tr>

<% rs.MoveNext

Loop

rs.Close

</table>

%>