Selecciones en una tabla de base de datos con ASP

Forma sencilla de realizar selecciones dentro de una tabla. Ejemplos prácticos.
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 Connection 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. Podemos ver más detalladamente este tipo de instrucciones SQL en nuestro manual de SQL.

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.

Para ver funcionar el script pincha aquí

Autor

Rubén Alvarez

Rubén es doctor en química y programador aficionado con experiencia en PHP.

Compartir

Comentarios

javier

09/6/2009
coneccion a sql
Hola
Bueno, mi comentario tiene relacion con la coneccion a la base de datos, esta exelente, pero tengo una pregunta que hacerte, este codigo me sirve para conectarme a una base de datos SQL server 2000...

Mira te felicito por lo que haces, eres bueno, yo soy novato en asp y me gustaria aprender mucho mas. es posible que me ayudes con la coneccion que te mencione anteriormente, por favor...
estaria muy agradecido.
si es asi este es mi correo goondam@gmail.com

nilson

25/8/2009
comentario tutorial
excelente tutorial para iniciar en el mundo de asp

Jorge174

28/4/2010
Cuando refresco el contenido de la ventana da error.
¿Por qué si le doy refrescar a la ventana donde estamos viendo el contendio por primera vez, marca error y ya no despliega lo mismo?

pedro contreras

30/9/2010
duda
sabes yo tngo la duda de un trabajo ke es kasi el mismo que es hacer una pagina en asp q despliegue todos los datos de una tabla en my sql o access .. lo estoy programando en dreamweaver y si es necesario instalar un servidor cmo el apache y otras cosas .. esa es la duda

fng

17/11/2010
Error de conexion
A mi me pasa exactamente lo mismo,
Cuando visualizas en el navegador los campos de la base de datos estos se ven perfectos, pero si refescas el navegador o navegas por los enlaces del ejemplo, cuando se pide una nueva conexión a la base de datos el script marca un error de conexión
¿A que se debe esto?¿fallo del script?
¿alguna solución pra corregir este error?

Gracias de antemano, un saludo

juan carlos

22/3/2014
ayuda por favor
como hacer para guardar las notas de los alumnos en una sola pagina, a traves de un formulario dinamico

Do While Not registros.EOF
nombre=mynumber
ACT1=registros.Fields("ACT1").Value
%>

<form method="post" action="califica.asp">
<%= registros.Fields("NombreS").Value %><input type="text" name="nombre" value="<%=ACT1%>">
</form>

<%
registros.MoveNext
mynumber=mynumber+1


Loop