Cargar combos desde una Base de Datos con ADO

23/Feb/2009 ASP , , , , , , , Deja un comentario

Si los valores de un combo van a ser variables es recomendable extraer esta información de una base de datos, en vez de tenerlo codificados directamente en nuestro HTML. En este ejemplo vamos a ver como cargar combos desde una Base de Datos con ADO.

La idea es tener almacenada la lista de valores (diferentes opciones) en una tabla de tal manera que a la hora de crear un formulario generaremos dinamicamente la lista de opciones.

La tabla podrá tener la siguiente forma:

DEPORTE
Fútbol
Baloncesto
Atletismo
Voleibol
Gimnasia

Los pasos a seguir para volvar el contenido de esta tabla sobre los combos son los siguientes:

En primer lugar conectarnos a la base de datos que tenga la tabla. Esto lo podemos hacer mediante DSN y sin DSN. Nosotros lo vamos a hacer mediante DSN

  1. Set db = Server.CreateObject("ADODB.Connection")
  2. Dim DB_CONNECTIONSTRING
  3. DB_CONNECTIONSTRING = "DSN=BaseDatosDeportes;"
  4. db.open DB_CONNECTIONSTRING

La conexión a la base de datos la realizamos mediante el objeto Connection.

En segundo lugar crearemos un RecordSet el cual almacenara los datos de la tabla deportes. A este RecordSet debemos de decirle que almacenará todas las filas de la tabla.

  1. set deportes = Server.CreateObject ("ADOBD.RecordSet")
  2. SQLStr = "SELECT * FROM deportes"
  3. deportes.open SQLStr, DB_CONNECTIONSTRING, adOpenStatic, adLockReadOnly, adCmdText

Las constantes adOpenStatic, adLockReadOnly, adCmdText las encontraremos en el archivo adovbs.inc el cual deberemos de incluir en la página donde este el script.

  1. <!-- #include file="adovbs.inc" -->

Como tercer paso recorreremos el RecordSet mientras existan datos. Para ello utilizaremos alguna estructura repetitiva. A la hora de mostrar los datos no solamente escribiremos en pantalla el texto que haya en en RecordSet, sino que habrá que acompañarlo con el texto de creación del combo del formulario, mediante las etiquetas SELECT y OPTION.

  1. <SELECT NAME="deportes">
  2. <%
  3. while not deportes.EOF
  4. Response.Write("<OPTION VALUE='" + deportes("deporte") + "'>")
  5. Response.Write(deportes("deporte") + "</OPTION>")
  6.  
  7. ' Nos desplazamos por el RecordSet
  8. deportes.MoveNext
  9.  
  10. loop
  11. %>
  12. </SELECT>

Solo nos quedará anular los objetos y cerrar las conexiones:

  1. deportes.close
  2. set deportes = Nothing
  3. db.close
  4. Set db = Nothing

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*