| Artículos | 01 JUN 1999

Curso de páginas ASP (IV)

Tags: Histórico
Bases de datos y formularios
Esteban Trigos.
El uso de bases de datos junto con formularios, hacen de las páginas ASP un verdadero potencial que nos permitirá tener un control absoluto sobre el entorno de nuestra website. En esta entrega le mostramos las claves para sacar el máximo partido de esta forma de adquisición de datos.

En la anterior entrega de este curso de programación de páginas ASP vimos como la información de una página ASP se genera a partir de una base de datos que hemos construido. También la forma de crear una conexión desde una página ASP o un fichero GLOBAL.ASA a dicha base de datos. Y todo ello con el fin de extraer información (que en muchos casos puede ser gran cantidad) y poder manejarla de forma sencilla, cómoda y, sobre todo, rápida.
En esta entrega se va a realizar el proceso contrario, es decir, escribir o volcar información en una base de datos. Un proceso que puede ser incluso más útil que la simple lectura. A la hora de escribir información en la base de datos, los requerimientos van a ser los mismos que para obtenerla, es decir, necesitaremos crear una conexión del tipo ODBC con un sistema de base de datos habitual (Access, SQL Server, Oracle, etc.) y unas tablas dentro de ésta que ya estará previamente diseñada y que será donde vaya a parar la información.

Insertar información en una base de datos
Se puede decir que existen dos formas para añadir información en la base de datos. La primera de ellas sería construyendo el conjunto de instrucciones mediante el lenguaje SQL y posteriormente utilizando el método Execute para que lleve a buen resultado estas sentencias. La otra es utilizando el objeto RecordSet junto con sus propiedades y métodos, que más adelante se tratarán.
Para ver el primer caso, vamos a realizar un sencillo y curioso ejemplo de cómo se graban datos en una tabla. Este ejemplo consiste en crear una especie de contador, de forma que cada vez que se solicite una página o se haga clic en algún enlace en concreto, se añadirá un registro más a la base de datos de forma que luego no tendremos más que ir contando los registros que cumplen una determinada condición. Para este ejemplo es necesario crear una tabla denominada CONTADOR, con los campos FECHA, que tendrá la fecha y hora del momento en el que se realizó la inserción del registro y, por lo tanto, se visitó esa página; y PAGINA que será el nombre que defina la página que ha pedido el usuario, por ejemplo home_page, noticias, etc.
Una vez creada la tabla (Figura 1), es el momento de crear la página ASP. Ésta va a actuar de intermediaria entre la página en la que el usuario activa el enlace y a la que se llega después de pulsar el enlace. De esta forma éste estará dirigido hacia la página ASP que vamos a crear y será ésta quien lleve, después de realizar su función, al usuario a la página que se va a ver en su navegador (el esquema de funcionamiento se puede observar en la Figura 2) Todo este proceso se realiza de forma rápida, por lo que el usuario no se percatará de estar pasando antes por una página previa a la que él quiere dirigirse.
La función que vamos a utilizar para realizar la inserción en la base de datos es la siguiente:
function insertarDatos()
query = “ insert into CONTADOR “
query = query & “ (INSTANTE, PAGINA) “
query = query & “ values(‘“ & now() & “‘, ‘“ & Request.QueryString(“pag”) & “‘)”
insertarDatos = query
end function

Como se observa, esta vez no se utiliza la sentencia SELECT, sino que se hace uso de INSERT INTO, que permite agregar valores dentro de los campos establecidos, en este caso SEMANA y PAGINA. Los distintos valores que va a ir tomando SEMANA es la fecha y hora del momento en el que se inserta el registro, por lo tanto, será la sentencia Now(). El valor que toma el campo PAGINA viene dado por un parámetro que se le hace llegar desde la página de destino.

Obteniendo datos de una URL
Aunque el funcionamiento de QueryString se verá más adelante junto a los formularios, añadir que Request.QueryString nos permite obtener el valor de una variable que va incluida en la dirección URL. En el Listado 1 se puede observar cómo es el formato de la URL a que se dirige el usuario cuando selecciona alguno de los enlaces. Después de especificar el nombre de la página, contador.asp, se añade un identificador, llamado en este caso “pag” que define la página de origen. Por lo tanto, el formato para pasar datos de una página a otra, utilizando Request.QueryString será:
<nombre_pagina>.asp?id1 =<valor1>&id2 =<valor2>&… &idn=<valorn>
Si es necesario especificar varios valores, deben de ir separados por el símbolo “&”. Un ejemplo práctico sería:
index.asp?nombre=Luis Martínez&dni=15463144&provincia=Sevilla&cp=21542

De forma que en la página index.asp podemos declarar cuatro nuevas variables, que almacenarán los valores que le lleguen. Utilizando las funciones para transformar el subtipo, nos aseguramos que los números sean de tipo int y los caracteres sean de tipo string.
strNombre = CStr(Request.QueryString(“nombre”))
intDNI = CInt(Request.QueryString(“dni”))
strProvincia = CStr(Request.QueryString(“provincia”))
intCP = CInt(Request.QueryString(“cp”))

Es interesante señalar que cuando el valor que se añade en la URL contiene caracteres extraños como acentos, eñes, espacios, etc., deben de ser tratados de forma especial para que no ocurran errores durante la comunicación entre el cliente y el servidor. Para ello se debe utilizar el método URLEncode del objeto Server, que realiza la conversión de caracteres a un formato válido. En el ejemplo anterior, el valor de nombre contiene un error, ya que los espacios no están permitidos. Por ello, la solución pasaría por hacerlo de la siguiente forma:
nombreCorrecto = Server.URLEncode(“Luis Martínez”)
index.asp?nombre=nombreCorrecto &dni=15463144&provincia=Sevilla&cp=21542

y por tanto la nueva URL generada será la siguiente::
index.asp?nombre=Luis+Mart%EDnez&dni=15463144&provincia=Sevilla&cp=21542

Más adelante se tratará con detalle el tema de los formularios y de estos nuevos objetos con sus métodos y propiedades, que también incluye el ya visto QueryString. Volviendo al ejemplo que nos ocupa, la página ASP contador.asp, ya hemos visto las dos formas de hacer llegar a ésta los dos valores necesarios: INSTANTE y PAGINA. Una vez creada la función, hay que crear una instancia del objeto Connection. Recordemos que se podía realizar de dos formas diferentes. Utilizando el método CreateObject del objeto Server que permite crear una instancia de un objeto en el servidor:
Set BD = Server.CreateObject(“ADODB.Connection”)

O utilizando la etiqueta OBJECT:
<OBJECT RUNAT=Server ID=BD PROGID=”ADODB.Connection”></OBJECT>

No olvidemos que hay que “abrir” la conexión con la base de datos utilizando el ODBC que se ha creado para este ejemplo:
BD.Open “contador”

Después de crear el objeto BD, utilizamos el método Execute para ejecutar la función que realizará la

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información