|
Dentro de una base de datos, organizada
por tablas, la selección de una tabla
entera o de un cierto numero de registros
resulta una operación rutinaria.
A partir de esta selección se puede
posteriormente efectuar toda una serie de
cambios o bien realizar una simple lectura.
El siguiente script nos permite realizar
la lectura de la tabla clientes contenida
en nuestra base de datos. A primera vista
todo nos puede parecer un poco complejo,
pero nada más lejos de la realidad.
| <HTML>
<HEAD>
<TITLE>Lectura de registros
de una tabla</TITLE>
</HEAD>
<BODY>
<h1><div align="center">Lectura
de la tabla</div></h1>
<br>
<br>
<%
'Antes de nada hay que instanciar
el objeto Connection
Set Conn = Server.CreateObject("ADODB.Connection")
'Una vez instanciado Connection lo
podemos abrir y le asignamos la base
de
datos donde vamos a efectuar las operaciones
Conn.Open "Mibase"
'Ahora creamos la sentencia SQL que
nos servira para hablar a la BD
sSQL="Select * From Clientes
Order By nombre"
'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
'Mostramos los registros%>
<table align="center">
<tr>
<th>Nombre</th>
<th>Teléfono</th>
</tr>
<%
Do While Not RS.Eof
%>
<tr>
<td><%=RS("nombre")%></td>
<td><%=RS("telefono")%></td>
</tr>
<%
RS.MoveNext
Loop
'Cerramos el sistema de conexion
Conn.Close
%>
</table>
<div align="center">
<a href="insertar.html">Añadir
un nuevo registro</a><br>
<a href="actualizar1.asp">Actualizar
un registro existente</a><br>
<a href="borrar1.asp">Borrar
un registro</a><br>
</div>
</BODY>
</HTML> |
Antes de nada, si lo que deseamos es interrogar
una base de datos, lo primero que hay que
hacer es obviamente establecer la conexión
con ella. Esto se hace a partir del objeto
Connection el cual es "invocado"
o más técnicamente dicho instanciado
por medio de la primera instrucción
en la cual el objeto toma el nombre arbitrario
de la variable Conn .
El paso siguiente es abrir el objeto y
asignarle la base de datos con la que debe
contactar. En este caso, la base la hemos
llamado Mibase. Este debe de ser el mismo
nombre con el que la hemos bautizado cuando
hemos configurado los conectores ODCB, además,
este nombre no tiene por qué coincidir
necesariamente con el nombre del archivo.
Una vez creada la conexión a nuestra
base de datos, el paso siguiente es hacer
nuestra petición. Esta petición
puede ser formulada primeramente y almacenada
en una variable (sSQL) para, a continuación,
ser ejecutada por medio de la instrucción
siguiente.
La petición que hemos realizado
en este caso es la de seleccionar todos
los campos que hay en la tabla clientes
(* es un comodín) y ordenar los resultados
por orden alfabético con respecto
al campo nombre.
El resultado de nuestra selección
es almacenado en la variable RS en forma
de tabla. Para ver la tabla lo que hay que
hacer ahora es "pasearse" por
esta tabla "virtual" RS la cual
posee una especie de cursor que, a menos
que se especifique otra cosa, apunta al
primer registro de la selección.
El objetivo ahora es hacer desplazarse al
cursor a lo largo de la tabla para poder
leerla en su totalidad.
La forma de hacerlo es a partir de un bucle
Do While el cual ya ha sido explicado anteriormente
y que lo único que hace es ejecutar
las instrucciones comprendidas entre el
Do y el Loop siempre que la condición
propuesta (Not RS.Eof) sea verdadera. Esto
se traduce como "Ejecutar este conjunto
de instrucciones mientras que la tabla de
resultados (RS) no llegue al final (Eof,
End of File).
Las instrucciones incluidas en el bucle
son, por un lado, la impresión en
el documento de los valores de determinados
campos ( =RS("nombre del campo"))
y por otro, saltar de un registro al otro
mediante la instrucción RS.MoveNext.
Todo este conjunto de instrucciones ASP
viene en combinación con un código
HTML que permite su visualización
en forma de tabla. Además, se han
incluido unos enlaces que apuntan hacia
otra serie de scripts que veremos más
adelante y que formaran en conjunto una
aplicación.
Es interesante ver el código fuente
resultante de este script. En este caso
el código que ve el cliente resulta
sensiblemente más sencillo.
|