0% encontró este documento útil (0 votos)
104 vistas39 páginas

Manual de ASP

Este documento proporciona referencias sobre ASP, incluyendo: 1) El uso de bloques de código ASP con <% %>; 2) La declaración del lenguaje VBScript; 3) El uso de comentarios. También explica objetos integrados como Response, Request, Server, Session y Application, y componentes como ADRotator.

Cargado por

jhonny
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
104 vistas39 páginas

Manual de ASP

Este documento proporciona referencias sobre ASP, incluyendo: 1) El uso de bloques de código ASP con <% %>; 2) La declaración del lenguaje VBScript; 3) El uso de comentarios. También explica objetos integrados como Response, Request, Server, Session y Application, y componentes como ADRotator.

Cargado por

jhonny
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

Mis Referencias de ASP Jhonny Pedro Chura Loza

REFERENCIAS ACERCA DE ASP

1. Bloques de código ASP


En ASP se utiliza <% y %>, de la siguiente forma:
<% ... %>
2. Declaración del lenguaje
Aunque esta sentencia es opcional en ASP yo la utilizo por solo formalismo, por nada
más.
<% LANGUAJE="VBScript"%>
Esta declaración se escribe al principio del archivo .

3. Uso de los comentarios


<% ' Esto es un comentario
rem Esto es un comentario %>

4. Una página ASP por dentro


El aspecto interno de una página ASP es el siguiente:
<%
' Referencia del lenguaje
' Declaración de variables
' etc. %>

Por ejemplo:

<html>
<title> Manual de ASP</title>

<body>
<%
' Conexión bases de datos
' Cálculos, etc.
%>
</body>
</html>

Como se puede observar, se trata de lenguaje Html común y corriente con agregados de
scripts de código ASP.

5. Declaración de variables

No hay que señalar de que tipo de variable se trata, todas son del tipo Variant.
La declaración de las variables es opcional, pero es recomendable hacerlo
Las variables se declaran con el comando Dim.
Para forzar a que se declaren todas las variables de una página se utiliza la función
"Option Explicit". Ejemplo:

<%
Option Explicit
' Declaramos las variables y las cargamos
Dim nombre, apellido, email

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

nombre = "Francisco José"


apellido = "Calvo"
email = "i72cafef@[Link]"
%>
<html>
<head></head>

<body>
Los datos son:
<br>
Nombre: <%=nombre%>
<br>
Apellido: <%=apellido%>
<br>
Email: <%=email%>
<br>
</body>
</html>
En este ejemplo se declaran tres variables y se cargan con los datos correspondientes, y
luego se imprimen en medio del código html normal.

6. Objeto integrado Response

El objeto Response es uno de los mas utilizados en las paginas ASP, ya que dispone de
la comunicación entre el cliente y el servidor.
Se utiliza para controlar la información que se envía al usuario. Esto incluye el envío de
información directamente al explorador, la redirección del explorador a otra dirección
URL o el establecimiento de valores de las cookies.
 Sintaxis general:
[Link] [valor]

Entre los métodos mas interesantes del objeto Response estan los siguientes:

6.1. Método Write

El método Write escribe una cadena de resultado en el navegador cliente (Nota: cuando
se usa la sintaxis <%=variable%> estamos usando implícitamente el método
[Link]).
Ejemplo:
<% [Link] "<center>Hola mundo</center>" %>
obtenemos “Hola mundo” en el navegador.

6.2. Método Redirect


El método Redirect hace que el explorador se conecte con una dirección URL diferente.
Nota: debemos usar este metodo antes de enviar cualquier resultado al navegador cliente
(antes de los tags HTML), en caso contrario produce un error.
Ejemplo:
<% [Link] "[Link] %>
El navegador se dirigirá a la URL especificada

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

6.3. Método Cookie


Sirve para almacenar una cookie en el ordenador del cliente:
Ejemplo:
<% [Link]("nombre") "Francisco" [Link]("edad") "22" %>
En la cookie nombre se guardará la palabra Francisco, y en edad 22.

7. OBJETO Request
El Objeto Request recupera los valores que el cliente pasa al servidor durante una
petición HTTP.
Dependiendo de la forma en que enviemos los datos al servidor tendremos que utilizar
una u otra de las diversas colecciones del objeto Request. Las mas típicas son:
· FORM recupera datos enviados desde un formulario mediante el método POST.
· QUERYSTRING recupera datos enviados como cadena de consulta HTTP.
· COOKIES recupera los valores de las Cookies.
Sintaxis General:
[Link](elemento)

7.1. Método Form

Supongamos que enviamos la información desde el siguiente formulario:


<form method="POST" action="[Link]" >
<p>Nombre: <input type="text" name="Nombre" size="20"></p>
<p>Nacionalidad: <input type="text" name="Nacionalidad" size="20"></p>
<p><input type="submit" value="Enviar" name="Enviar"></p>
</form>
En nuestra página "[Link]" podriamos usar la siguiente secuencia:
Hola Sr/a <%=[Link]("nombre")%> <br>
Asi que usted es de nacionalidad <%=[Link]("nacionalidad")%>
Con lo que el resultado seria:
Hola Sr/a Julian
Asi que usted es de nacionalidad francesa

7.2. Método QueryString


Supongamos que enviamos la información en forma de cadena de consulta (una cadena
de consulta HTTP está especificada por las parejas de valores que siguen al signo "?"):
<a href="[Link]?nombre=Julian&nacionalidad=francesa">
En nuestra página "[Link]" podriamos usar la siguiente secuencia:
Hola Sr/a <%=[Link]("nombre")%> <br>
Asi que usted es de nacionalidad <%=[Link]("nacionalidad")%>
Con lo que el resultado sería:
Hola Sr/a Julian
Asi que usted es de nacionalidad francesa

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

7.3. Método Cookies

Un ejemplo para utilizarlo, es crear un formulario que pida un nombre, y luego guardar
ese valor en una cookie, para que cuando nos vuelta a visitar lo reconozcamos y lo
saludemos:
Manual de Introducción al ASP (Active Server Pages)
<% nombre=[Link]("nombre") [Link] "Hola, " &nombre& "." %>

8. OBJETO Server
El objeto Server nos proporciona acceso a métodos y propiedades del servidor.

8.1. Método ScriptTimeout


Especifica la cantidad maxima de tiempo que puede tardar la ejecución de una
secuencia de comandos (tiempo maximo que puede tardar en ejecutarse una página
dada).
Sintaxis:
[Link]= nº de segundos
Ejemplo:
<% [Link]=120 %>
La página puede ejecutarse durante 120 segundos antes de que el servidor la termine.

8.2. Método CreateObject

Crea una instancia de un componente ActiveX en el servidor.


Sintaxis:

[Link] (IdProg)
IdProg es el identificativo del tipo de componente que queremos crear, nos viene
suministrado por el fabricante del componente.
Ejemplo:
<% set Mitabla = CreateObject("[Link]") %>
Instancia un objeto de tipo recordset y lo asigna a la variable "Mitabla".

9. OBJETO Session
El objeto Session permite almacenar la información necesaria para una sesión de
usuario contra nuestra aplicación ASP. Las variables que almacenemos en el objeto
Session no se pierden al cambiar de página, si no que se mantienen hasta que el cliente
sea eliminado por el servidor. Las variables de Session de un cliente solo pueden ser
accedidas por ese cliente. El servidor crea automáticamente el objeto Session cuando un
usuario que no tenga actualmente una sesión solicita una pagina Web de la aplicación.
Nota: el servidor elimina un cliente bien cuando desde una pagina ASP se invoca el
método Abandon ([Link]) o bien cuando este cliente lleva 20 minutos sin
actividad en nuestra aplicación.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

 Al concluir este capítulo usted deberá saber cómo crear variables y matrices para una
sesión de usuario.

9.1 Creación de una variable


Sintaxis

Sesion("Nomvariable") = valor

Ejemplo:

<% Session("Color")="Rojo" %>

Para recuperar ese valor:

<% ColorFavorito=Session("Color") %>

Esto nos almacenaría el valor "rojo" en la variable "ColorFavorito"

9.2. Matrices
Nota Importante:

En el objeto Session pueden almacenarse matrices, pero estas son almacenadas como un

objeto, es decir, no podemos almacenar o recuperar un solo elemento de la matriz, si no

que cargaremos o recuperaremos la variable con la matriz completa

Ejemplo:

<%Dim cestacompra(2)

cestacompra(0) = 1

cestacompra(1) = 8

cestacompra(2) = 22

Session("Cesta") =cestacompra%>

con estas instrucciones almacenaríamos TODA la matriz en la variable de sesión


"Cesta"

10. OBJETO Application

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Este objeto se utiliza para compartir información entre todos los usuarios de una
aplicación. Como varios usuarios pueden compartir este objeto, se utilizan los métodos
Lock y Unlock para no permitir que dos o mas usuarios puedan al mismo tiempo
modificar la propiedad.

 Al concluir este capítulo usted deberá haber saber cómo compartir la información
entre los usuarios

10.1. Método Lock


Asegura que solo un usuario pueda modificar el objeto Application a la vez.

<% [Link]%>

10.2. Método Unlock

Desbloquea al objeto previamente bloqueado, para poder ser modificado por otro
usuario después de haberlo bloqueado mediante el método Lock. Si no se desbloquea el
objeto Application, el servidor lo hace automáticamente cuando la página .asp termina o
transcurre el tiempo de espera.

<% [Link]%>

Ejemplo que calcula el número de visitantes a nuestra web:

<% [Link]

Application("visitas") = Application("visitas")+1

[Link] %>

Eres el visitante Nº <%=Application("visitas")%>

11. Componente ADRotator

Los componentes ActiveX se han diseñado para que se ejecuten en el servidor Web
como parte de las aplicaciones Web, proporcionan funcionalidad a las aplicaciones,
como el acceso a ficheros, Bases de datos, etcétera.

Existen componentes ActiveX para tareas muy diversas, en esta páginas mostraremos
como operar con algunos de los que se incluyen por defecto en la instalación de ASP.

Adrotator Inserción de publicidad rotatoria

FileSystemObject Acceso a ficheros en el servidor

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

TextStream Acceso a ficheros en el servidor

ActiveX Data Object Acceso a bases de datos.

El componente ADRotator automatiza la rotación de imágenes de anuncio en una


página

Web. Cada vez que un cliente abre o recarga la página este componente presenta una
nueva imagen según las definiciones especificadas en un archivo.

Los archivos necesarios son:

· Archivo Rotator Schedule: es un archivo de texto que contiene la agenda de


presentación de los anuncios.

· Archivo de redirección: es un archivo .asp que implementa la redirección a la URL


anunciante.

 Creación del objeto AdRotator

<% Set Rotacion=[Link]("[Link]") %>

Propiedades:

Border: Permite especificar si los anuncios se presentan enmarcados.

<% [Link]=tamaño %>

Clickable: Permite especificar si los anuncios se presentan como hipervinculos.

<% [Link]= True o False %>

TargetFrame: Permite especificar el marco de destino del hipervinculo.

<% objeto. TargetFrame= nombre del marco destino %>


 Al concluir este capítulo usted deberá saber cómo automatizar la rotación de
imágenes de anuncio en una página Web, muy útil si piensa crear una web con fines
comerciales

11.1. Método GetAdvertisement

Sintaxis:

[Link] (url del fichero Shedule).

 Estructura del fichero Schedule:

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

El fichero Schedule esta dividido en 2 secciones separadas por un asterisco "*". La


primera sección es la especifica los parámetros comunes para todas las imágenes que se
muestren; la segunda los ficheros , localizaciones y parametros propios de cada una de
las imagenes.

Sintaxis de la primera sección:

REDIRECT Especifica la url que se encargara de hacer la redirección, generalmente


una página .asp.

WIDTH Ancho en píxel del anuncio

HEIGHT Alto en píxel del anuncio

BORDER Ancho en píxel del borde del anuncio

Sintaxis de la segunda sección:

Url de la imagen a mostrar

Url de la pagina a redireccionar

Texto alternativo de la imagen

Ponderación de apariciones del anuncio con respecto del total

Ejemplo:

REDIRECT /util/[Link]

WIDTH 300

HEIGHT 50

BORDER 2

/imagenes/[Link]

[Link]

El viaje de tus sueños

20

/imagenes/[Link]

[Link]

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Dulces de calidad

30

Ejemplo de fichero de redirección

<% [Link] ([Link]("url")) %>

Ejemplo de una página completa:

<html>

<head><title>Uso de AdRotator</title></head>

<body><h2>Uso de AdRotator</h2>

<% Set Rotacion=[Link]("[Link]") %>

<=% [Link]("[Link]") %>

</ body>

</html>

12. COMPONENTE FileSystemObject

El componente FSO nos permite abrir y crear ficheros de texto en el servidor. Este
componente consta de 22 métodos, de los cuales podemos seleccionar 2 que son los que
nos van a permitir leer o escribir en archivos de texto existentes en el servidor o crear
dichos archivos.

Para crear un objeto FSO, la sintaxis es la misma que para cualquier otro componente
ActiveX:

<% Set MiFSO=[Link]("[Link]") %>

Cuando abrimos o creamos un fichero de texto mediante FSO este nos devuelve una
instancia del objeto TextStream que es la que representa el archivo físico y con la cual
trabajaremos.
 Al concluir este capítulo usted deberá saber crear y abrir ficheros de texto en el
servidor

12.1. Método CreateTextFile

CreateTextFile: Crea un archivo físico y devuelve la instancia de TextStream con la


cual trabajaremos.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

 Sintaxis

<% Set MiFichero=[Link]("Nombre Fichero",Sobreescribir") %>

Nombre Fichero: Nombre del fichero a crear.

Sobreescribir: Admite los valores TRUE o FALSE, si el fichero ya existe y el valor


dado es TRUE se crea de nuevo, si no , devuelve un error.

12.2. Método OpenTextFile

OpenTextFile: Abre un archivo físico y devuelve la instancia de TextStream con la


cual trabajaremos.

Sintaxis:

<% Set MiFichero=[Link]("Nombre Fichero",modo,crear") %>

Nombre Fichero Nombre del fichero a abrir.

Modo Indica si queremos abrir el fichero para lectura (1) , para escritura (2) o para

escribir nuevos registros al final del fichero(8)

Crear Admite los valores TRUE o FALSE, si el fichero no existe y el valor dado es

TRUE se crea.

Ejemplo:

Apertura de fichero para lectura:

<% Set MiFichero=[Link]("c:\Fichero_nuevo.txt",1,true") %>

13. COMPONENTE TextStream

Al concluir este capítulo deberá conocer que el objeto TextStream nos sirve para
manejar ficheros de texto en el servidor. La creación de este objeto se realiza a partir de
un objeto FileSystemObject y gracias a alguno de sus métodos.

Una vez creado, disponemos de un objeto TextStream que representa un archivo físico
abierto, ya sea para lectura o escritura. Este objeto dispone de 9 métodos:

1. Close: Cierra el archivo.

Sintaxis:

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

<% [Link]%>

2. Read: Lee y devuelve un numero especifico de caracteres.

Sintaxis:

<% [Link](numero de caracteres) %>

3. ReadAll: Lee y devuelve un archivo completo.

Sintaxis:

<% [Link] %>

4. ReadLine: Lee y devuelve una línea completa de un archivo de texto.

Sintaxis:

<% [Link]%>

5. Skip: Salta un numero determinado de caracteres al leer un archivo.

Sintaxis

<% [Link](numero de caracteres) %>

6. SkipLine: Salta una línea al leer un archivo.

Sintaxis

<% [Link] %>

7. Write: Escribe una cadena de caracteres en un archivo.

Sintaxis

<% [Link]("texto_entre_comillas") %>

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

8. WriteLine: Escribe una cadena de caracteres en un archivo añadiendo al final un


carácter de fin de linea.

Sintaxis

<% [Link]("texto_entre_comillas") %>

9. WriteBlankLines: Escribe un numero especifico de caracteres de nueva línea.

Sintaxis

<% [Link](numero_de_lineas) %>

Ejemplo de escritura en un archivo:

<HTML>

<HEAD><TITLE>Ejemplo de FSO y TextStream</TITLE></HEAD>

<BODY>

<%

Set Mfso=[Link]("[Link]")

Set MArchivo=[Link]("c:\[Link]",2,true)

[Link] "Hola Mundo, hoy es:"

[Link] date()

[Link]

%>

Creado archivo en C:\[Link] con la fecha de hoy

</BODY>

</HTML>

14. INTRODUCCIÓN AL USO DE BASES DE DATOS EN ASP

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

 Al concluir este capítulo usted deberá conocer los diferentes tipos de conexiones a
bases de datos que ofrece ASP.

Existen varios tipos de conexión a bases datos. Algunos, como el ODBC requieren se la
configuración de un DSN en el servidor, otros en cambio, trabajan directamente si tener
que realizar alguna configuración. Algunas de las conexiones que

no requieren de DSN son OLEDB o DBQ, veámoslas a continuación:

a) OBDC

<% Set con = [Link]("[Link]"

' creamos el objeto de conexión

[Link] "NombreConexion"

' abrimos la conexión por ODBC al DSN NombreConexion

[Link]

' cierra la conexión

%>

b) Por OLEDB

<% set con=[Link]("[Link]")

' Conexión por OLEDB

[Link] "Provider=[Link].4.0;

Data Source="&[Link]("[Link]")&";"

%>

c) Por DBQ

<% set con=[Link]("[Link]")

' Conexión por DBQ

[Link] "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &


[Link]("[Link]")

%>

Recordset

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Se utiliza para realizar operaciones sobre las tablas de la base de datos. Para crear el
objeto RecordSet se utiliza la línea set rs=[Link]("[Link]")
seguida de una instrucción SQL para realizar alguna operación.

15. Fuentes de Datos ODBC

La administración de orígenes de datos ODBC (Open Database Connectivity) es una


utilidad general de Windows NT.

Permite que las aplicaciones accedan a los datos a través usando SQL como lenguaje
estándar. Se administran a través de la ventana ODBC del Panel de Control.

Se pueden configurar tres diferente fuentes de datos ODBC, la forma más interesante es
la de DSN del Sistema, que presenta la ventaja de poder ser accedida por cualquier
usuario, siendo el tipo usado en aplicaciones ASP.

Configuración de una fuente de datos:

En este ejemplo declaramos una base de datos Access, el procedimiento es


prácticamente igual para cualquier otra tecnología de bases de datos.

Para declarar una base de datos ODBC haremos doble clik en el icono Fuentes de Datos
ODBC que encontraremos en el panel de control de Windows(Inicio->Configuración->
Panel de Control), una vez abierto el programa nos situaremos en la pestaña DSN de
Sistema.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Pulsaremos el botón AGREGAR para añadir una nueva fuente de datos, lo que nos
llevara a la pantalla de controladores.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

En esta ventana elegiremos el driver adecuado para la tecnología de la base de datos que
queremos tratar desde nuestras páginas ASP y pulsaremos finalizar. La siguiente
pantalla que se nos muestra nos pedirá la ubicación física de nuestra base de datos y el
nombre ODBC con el que queremos acceder a ella.

Nombre de origen de datos: Es el nombre simbólico de nuestra base de datos, será el


que utilicemos desde ASP para referirnos a ella.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Descripción: Es una descripción de la base de datos

Base de datos: Es el camino físico de la base de datos, para establecerlo pulsaremos el


botón SELECCIONAR y mediante un explorador elegiremos nuestra fuente de datos.

Una vez hecho esto pulsaremos el botón ACEPTAR y ya tendremos nuestra base de
datos disponible para su uso desde nuestras aplicaciones Web.

NOTA: Si nuestro sistema operativo es Windows NT y declaramos una base de datos


ACCESS debemos de tener en cuenta que ACCESS crea en el mismo directorio de la
base de datos un fichero con extensión .ldb cuando cualquier usuario interactúa con la
base de datos. Ello nos obliga a dar derechos suficientes al usuario de IIS
(IUSR_Nombre del equipo) para manipular el directorio de la base de datos.

16. Instrucciones SQL

A través de estas instrucciones, podemos determinar que tipo de operación vamos a


realizar sobre la tabla de la base de datos, pudiendo ser seleccionar (select), borrar
(delete), agregar (insert), entre otros. Para ejecutarla hay que crear primero el objeto del
RecordSet, y tras la instrucción SQL escribir:
set rs=[Link](SQL) .

 Al concluir este capítulo usted deberá conocer las sentencias del lenguaje de
manipulación de bases de datos SQL.

16.1. Sentencia Select

Recupera registros de una tabla.

Sintaxis:

SELECT [ALL | DISTINCT] lista_selecccion [INTO [nueva_tabla]] [FROM {tabla |


consulat} [[, {tabla2 | consulta2} [..., {tabla16 | consulta16}]] [WHERE criterio]
[GROUP BY criterio] [HAVING criterio] [ORDER BY criterio]

[COMPUTE criterior] [FOR BROWSE]

Ejemplos:

· Select:

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

SELECT * FROM TABLA

Selecciona todos los registros de Tabla

SELECT nombre, apellido FROM TABLA

Selecciona los registros nombre y apellido de Tabla

SELECT * FROM TABLA WHERE nombre="Fran"

Selecciona los registros donde nombre sea igual a Fran

SELECT * FRTOM TABLA ORDER BY apellido

Selecciona todos los registros y los ordena por el apellido

16.2. Sentencia Delete

Elimina un registro de una tabla.

DELETE [FROM] {tabla| consulta} [WHERE criterio]


 Algunos ejemplos simples:

DELETE FROM TABLA WHERE id=55

Elimina el registro con el ID 55

DELETE FROM TABLA WHERE nombre="Fran"

Elimina todos los registros en donde el nombre sea igual a Fran

16.3. Sentencia Insert


Agrega registros a una tabla

INSERT [INTO] {tabla| consulta [(columnas)] {DEFAULT VALUES | valores |


instruccion_select}
 Ejemplo:

INSERT TABLA (nombre, apellido, email) VALUES ('Fran','Calvo','i72cafef@[Link]')

Inserta los datos en los campos correspondientes

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

16.4. Sentencia Update

Actualiza los registros de una tabla

UPDATE {tabla | consulta} SET [{tabla | consulta}] { columnas | variables |


variables_y_columnas} [, {columnas2 |

variables2 | variables_y_columnas2} ... [, {columnasN | variablesN |


variables_y_columnasN}]] [WHERE criterio]

Ejemplo:

UPDATE TABLA SET nombre='Fran' WHERE nombre='Juan'

Modifica los registros que contengan como nombre Fran por Juan.

 EJEMPLO SENCILLO DE CONSULTA:

<%

' Creamos los objetos de conexión y recordset

set con=[Link]("[Link]")

set rs=[Link]("[Link]")

' Conexión por OLEDB

[Link] "Provider=[Link].4.0;

Data Source="&[Link]("[Link]")&";"

sql="select * from Alumnos order by nombre"

rs=[Link](SQL)

' Hacemos un listado simple de los registros

[Link] "- "&[Link]("apellido")&","&[Link]("nombre")&".


"&[Link]("edad")&" años.<br>"

' Cerramos la conexión y el recordset

[Link] [Link] set rs=nothing set con=nothing

%>

17. INTRODUCCIÓN A ActiveX Data Object

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Una de las características mas interesantes de ASP es su facilidad para el manejo de


bases de Datos que residen en el servidor. Esto lo conseguimos mediante el uso de ADO
(ActiveX Data Object) de una forma fácil, rápida y con un mínimo consumo de recursos
del sistema.

ADO usa ODBC para el acceso a bases de datos. lo que nos independiza de la
tecnología de las mismas; esto implica que podemos cambiar la tecnología de la base de
datos y si mantenemos la misma estructura de datos, nuestras aplicaciones desarrolladas
con ADO pueden seguir funcionando sin cambiar ni una sola línea de código.

Para desarrollo podemos crear nuestras fuentes de datos en Microsoft Access, pero en
entornos de producción con gran afluencia de clientes deberemos de usar gestores de
bases de datos mas potentes, como Oracle, Microsoft Sql Server, etcétera.

ADO esta formado por varios objetos organizados de forma jerárquica (cada uno de
ellos con sus métodos y propiedades específicos) de los cuales vamos a estudiar los que
considero mas interesantes.

 Al concluir esta sección deberá conocer los principios básicos de ADO.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

18. OBJETOS ADO

Nos proporciona una conexión a una base de datos ODBC desde una página ASP. Esta
conexión nos permitirá efectuar las operaciones que deseemos sobre la base de datos.

Es el objeto primario de ADO, ninguno de los otros objetos puede existir si este no es
declarado de forma explicita o implícita (en algunos de los ejemplos veremos que no
existe una declaración del objeto Connection, pero debemos de tener en cuenta que
siempre existe, si es necesario ADO lo declarará por si mismo).

La conexión terminará cuando nosotros la cerremos explícitamente con el método close


o bien cuando termine la ejecución de la página ASP.

Error

Es una colección en la que se almacenaran los posibles errores del objeto

Command

Representa un comando SQL que se ejecuta contra la base de datos declarada en el


objeto

Connection.

Si el resultado de ese comando es un conjunto de datos, estos se almacenaran en un


objeto de tipo Recordset.

Recordset

Representa una tabla o el resultado de una consulta ejecutada contra la base de datos. Va
a ser nuestro interface natural contra la base de datos.

Como en todo modelo relacional, los datos se nos presentaran en filas y columnas.

Field

El objeto Field representa la información relativa a un campo de un Recordset.

Contiene la colección Fields que representa todos los campos de la tabla, cada miembro
de esa colección es un objeto de tipo Field.

19. CREACIÓN DE UN FORO EN ASP

Para realizar un foro necesitas:

Una conexión con bases de datos. Esta conexión puede realizarse de dos formas.
Directamente, (tal y como se explica en el manual Paginas ASP).

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Utilizando una DSN solicitándola al servidor que te provee de servicios de internet, (en
este caso uso esta opción).

Estructura de la base de datos: Tabla MiTabla

Autor
Email del Autor
Fecha de alta en el foro
Titulo de la cuestión
Cuerpo de la cuestión
ID de la pregunta, (uso interno)
QoR. Pregunta o Respuesta
Un ejemplo de tabla seria:

El campo QoR :

El campo QoR determina si el registro pertenece a :

- P: Una pregunta.

- R: Una respuesta a una pregunta.

- X: El único registro de la tabla con este valor en el campo QoR. El valor del
campo IDPregunta de este registro es el que mantiene el contador de dicho campo.
Almacena el valor de IDPregunta del última consulta entrada en el foro.

El campo con QoR = X ha de ser entrado manualmente en el momento de la


inauguración del foro.

El campo IDPregunta.

Al dar de alta un nuevo comentario en el foro; este viene identificado con un numero
que es asignado por el valor del campo IDPregunta del registro que posee X en el
campo QoR, (registro de indice).

Todas las respuestas que se lancen a ese comentario irán identificadas por ese mismo
valor en sus respectivos campos IDPregunta.

Nombres especiales.

Los nombres como la DSN de acceso a datos. El nombre de la base de datos y de la


tabla. Y las claves de acceso estan referidas en el código que se adjunta en este manual
como : MiDSN, MiBase, MiTabla y MiClave. Substituir dichas cadenas por las que se
determinen para vuestro foro personalizado.

Todos estos datos son importantes para el funcionamiento del foro. La DSN os la
proporciona el servidor que os provee de servicios de internet, (si no es así usad el
metodo de acceso directo que se comenta en el código). La base de datos y la tabla es la

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

que creeis vosotros, (por ejemplo en [Link]). Las claves de acceso son las que
vosotros qu

Proveedor de servicios de internet. Debeis aseguraros que el proveedor de servicios de


internet que habeis contratado os proporcione los recursos necesarios para ejecutar
páginas ASP y acceder a bases de datos. Muchos proveedores no proporcionan estos
servicios y, simplemente, no podreis hacer nada con ASP. Debereis cambiar de
proveedor.
Inicio del código.

Declaración de las bases de datos que se van a utilizar.


<%@ LANGUAGE="VBScript" %>

<%

' Declaramos el objeto de conexión a la base de datos

Set ConexionBD = [Link]("[Link]")

' Abrimos el objeto con el driver específico

[Link] "DSN=MiDNS"

%>

Si queremos atacar directamente a la base de datos utilizar esta otra técnica.

[Link] "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" &


[Link]("[Link]")
QueryString

QueryString recupera los valores de los parámetros entrados al llamar al ASP desde la
URL.

' Recupera los parámetros de la linea de comandos.

comando=[Link]("comando")

' Datos para la eliminación.

passw=[Link]("passw")

ID=[Link]("ID")

' Datos para una nueva alta.

QoR=[Link]("qor")

IDPregunta=[Link]("IDPregunta")

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

fecha=[Link]("fecha")

Titulo=[Link]("Titulo")

Cuerpo=[Link]("Cuerpo")

Autor=[Link]("Autor")

Opciones del foro

<html>
<head>
<title>El Foro</title></head>
<body>
<H2>Opciones</H2>

<UL>
<LI><A HRef="[Link]?comando=anadir">
Lanzar un nuevo comentario al foro.
</A></LI> <LI>
<A HRef="[Link]?comando=ver">
Ver Todo, (refrescar).
</A></LI></UL>

Añadir una nueva pregunta al foro.

La siguiente rutina consta de 2 fases

1 Petición de datos a añadir, (comando=añadir)

<%

If comando="anadir" Then

' Añadir una nueva entrada.

%>

<H1>A&ntilde;adir un nuevo comentario al foro.</H1>

<FORM Method="GET" Action="[Link]">

<INPUT Type="hidden" Name="fecha" Value="<%= Year(Date) & "/" & Month(Date)


& "/" & Day(Date) %>">

<INPUT Type="hidden" Name="QoR" Value="P" Size=0>

<%

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Set RS = [Link]("SELECT * FROM MiTabla WHERE QoR='X'")

[Link]

%>

<INPUT Type="hidden" Name="IDPregunta" Value=<%= RS("IDPregunta") + 1 %>>

<INPUT Type="hidden" Name="comando" Value="adiccion" Size=0>

Autor :<BR>

<UL>

<INPUT Type="text" Name="Autor" Size=50></UL>

e-mail, (si tienes) :<BR>

<UL>

<INPUT Type="text" Name="email">

</UL>

Titulo, (obligado) :

<UL>

<INPUT Type="text" Name="titulo" Size=50>

</UL>

Cuerpo del comentario que deseas lanzar al foro :

<UL>

<TEXTAREA Rows="10" Cols="50" Name="Cuerpo"></TEXTAREA>

</UL>

<INPUT Type="SUBMIT" Value="Enviar">

<INPUT Type="RESET" Value="Reestablecer">

</FORM>

<%

2 Alta en la base de datos, (comando=adiccion)

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

ElseIf comando="adiccion" Then

' Añade a la base de datos.

Error=False

MsjError=""

If Autor="" Then

Autor="-no firma-"

End If

If email="" Then

email=" "

End If

If Titulo="" Then

Error=True

MsjError = MsjError + "- Se necesita un t&iacute;tulo para su comentario.<BR>"

End If

If Cuerpo="" Then

Error=True

MsjError = MsjError + "- Se necesita un cuerpo del mensaje para incluirlo en el


foro.<BR>"

End If

' Añade el nuevo comentario al foro.

Set RS = [Link]("INSERT INTO MiTabla (QoR, IDPregunta, Fecha,


Autor, email, Titulo, Cuerpo) VALUES ('" & QoR & "', " & IDPregunta & ", #"&
Fecha & "#, '" & Autor & "', '" & email & "', '" & Titulo & "', '" & Cuerpo & "')")

'Si es una nueva pregunta, aumenta el contador.

If QoR="P" Then

Set RS = [Link]("UPDATE MiTabla SET IDPregunta = " & IDPregunta


& " WHERE QoR='X'")

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

End If

[Link]("<BR><BR><B>Se ha dado de alta tu colaboraci&oacute;n al


foro :</B><BR><BR>")

[Link]("<UL>")

[Link]("Fecha : " & Fecha & "<BR>")

[Link]("Autor : " & Autor & "<BR>")

[Link]("e-mail : " & email & "<BR>")

[Link]("Titulo : " & Titulo & "<BR>")

[Link]("Cuerpo : " & Cuerpo & "<BR>")

[Link]("</UL>")

[Link]("Gracias por colaborar en el foro de Acervo Visual")

Ver las preguntas abiertas en el foro.


Esta sección se comporta de 2 formas. Si Comando=ver o no tiene valor, mostrará el
contenido de todo el foro.

Si Comando=explosion se mostrará sólo la pregunta, (y todas sus respuestas), dada por


el parámetro IDPregunta.

' Visualizar FORO.

ElseIf comando="ver" or comando="explosion" or comando="" Then

' Visualizar FORO.

%>

<BR><BR>

<CENTER>

<TABLE Border=2 Width="90%">

<TR>

<TH BGColor='#03A7CF' Align='Left'>

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

<%

' Ver el libro de visitas completo.

If Comando="explosion" Then

Set RS = [Link]("SELECT * FROM MiTabla WHERE IDPregunta="


& IDPregunta & " ORDER BY IDPregunta DESC, QoR, Fecha DESC")

[Link]("Comentarios abiertos referentes a : <B>" & RS("Titulo") & "</B>")

Else

Set RS = [Link]("SELECT * FROM MiTabla WHERE QoR<>'X'


ORDER BY IDPregunta DESC, QoR, Fecha DESC")

[Link]("Comentarios abiertos en el foro.")

End If

%>

</TH>

</TR>

<%

Do while not [Link]

'Escribimos en la salida los datos que nos interesa

%><tr>

<td><%

' Indenta si es respuesta.

If RS("QoR")="R" Then

[Link]("<UL>")

End If

' Fecha.

If IsNull(RS("Fecha")) Then

Else

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

[Link]("(" & FormatDateTime(CDate(RS("Fecha")), 2) & ") ")

End If

' ID.

[Link](" - (" & RS("ID") & ") ")

' Título.

If IsNull(RS("Titulo")) Then

[Link](" <BR>")

Else

If Comando="explosion" Then

[Link]("<B>" & RS("Titulo") & "</B><BR><BR>")

Else

[Link]("<A HRef='[Link]?comando=explosion&IDPregunta="&
RS("IDPregunta") & "'>" & RS("Titulo") & "</A><BR>")

End If

End If

' Autor y e-mail.

If Comando="explosion" Then

[Link]("<B>Autor : </B>")

If IsNull(RS("Autor")) Then

Else

[Link]((RS("Autor"))

End If

If IsNull(RS("email")) Then

[Link](" <BR>")

Else

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

[Link](" (<A HRef='[Link] & RS("email") & "?subject=Foro Acervo


Visual'>" & RS("email") & "</A>)<BR>")

End If

[Link]("<BR><B>Cuerpo del comentario : </B><UL>")

[Link](RS("Cuerpo") & "</UL>")

'Botón de respuesta.

If RS("QoR")="P" Then

%>

<FORM Method="GET" Action=" [Link]">

<INPUT Type="hidden" Name="comando" Value="Responder" Size=0>

<INPUT Type="hidden" Name="fecha" Value="<%= Date %>" Size=0>

<INPUT Type="hidden" Name="IDPregunta" Value=<%= RS("IDPregunta") %>


Size=0>

<%

Tit = RS("Titulo")

Tit = Replace(Tit, " ", "+")

%>

<INPUT Type="hidden" Name="Titulo" Value=<%= Tit %> Size=0>

<INPUT Type="hidden" Name="QoR" Value="R" Size=0>

<INPUT Type="SUBMIT" Value="Responder">

</FORM>

<%

End If

End If

'Quita la indentación si es una respuesta.

If RS("QoR")="R" Then

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

[Link]("</UL>")

End If

%>

</td>

</tr><%

[Link]

Loop

%>

</TABLE>

</CENTER>

</UL>

<%

Responder una consulta abierta en el foro.


Al pulsar sobre el botón Responder en una de las consultas abiertas en el foro; Se pasa
como Comando=Responder y la pregunta a responder en el parámetro IDPregunta.

' Responder una questión abierta en el foro.

ElseIf comando="Responder" Then

' Responder a un comentario existente.

TituloResp = Titulo

%>

<H1>A&ntilde;adir un nuevo comentario al foro.</H1>

<FORM Method="GET" Action=" [Link]">

<INPUT Type="hidden" Name="fecha" Value="<%= Year(Fecha) & "/" &


Month(Fecha) & "/" & Day(Fecha) %>" Size=0>

<INPUT Type="hidden" Name="QoR" Value=<%= QoR %> Size=0>

<INPUT Type="hidden" Name="IDPregunta" Value=<%= IDPregunta %>>

<INPUT Type="hidden" Name="comando" Value="adiccion" Size=0>

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

<H3>Respuesta al comentario :</H3>

<UL>

<%

TituloResp = Replace(TituloResp, "+", " ")

%>

<H4><%= TituloResp %></H4>

</UL>

Autor :<BR>

<UL>

<INPUT Type="text" Name="Autor" Size=50>

</UL>

e-mail, (si tienes) :<BR>

<UL>

<INPUT Type="text" Name="email">

</UL>

Titulo, (obligado) :

<UL>

<%

TituloResp = "Resp : " & TituloResp

%>

<INPUT Type="text" Name="titulo" Value="<%= TituloResp %>" Size=50>

</UL>

Cuerpo del comentario que deseas lanzar al foro :

<UL>

<TEXTAREA Rows="10" Cols="50" Name="Cuerpo"></TEXTAREA>

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

</UL>

<INPUT Type="SUBMIT" Value="Enviar">

<INPUT Type="RESET" Value="Reestablecer">

</FORM>

<%

Funciones de uso interno.


Eliminar una pregunta o respuesta del foro.

Con esta opción, (Comando=Eliminar), eliminamos un registro de la base de datos. Es


conveniente que esta clase de opciones requieran contraseña.

ElseIf Comando="Eliminar" Then

%>

<H1>Eliminar un comentario del foro.</H1>

<FORM Method="GET" Action=" [Link]">

<INPUT Type="Hidden" Name="Comando" Value="Eliminacion">

Password :

<INPUT Type="Password" Name="passw"><BR>

ID de pregunta a eliminar :

<INPUT Type="Text" Name="IDPregunta">

<INPUT Type="SUBMIT" Value="Enviar">

<INPUT Type="RESET" Value="Reestablecer">

</FORM>

<%

ElseIf Comando="Eliminacion" Then

'Elimina la pregunta solicitada.

If passw = MiClave Then

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Set RS = [Link]("DELETE * FROM MiTabla WHERE IDPregunta = "


& IDPregunta & " AND QoR<>'X'")

[Link]("<H2>Ok.</H2>")

Else Password erroneo.

[Link](<H2>Password erroneo.</H2>)

End If

End If

%>

Fin del código

</body>

</html>

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

20. Ejercicios prácticos y reales sobre ASP

A continuación se expondrán unos ejemplos de los usos más comunes de ASP (aparte
de las conexiones a las bases de datos, claro), con su código fuente.

 Al concluir este capítulo usted sabrá manejarse con toda soltura con ASP y será
capaz de resolver cualquier problemas que se le presente en ASP.

20.1 Envío de datos desde un formulario a una dirección de correo

Muchas veces necesitamos en nuestro sitio web, un formulario que capture datos
de nuestros visitantes y deseamos recibir esos datos en nuestra casilla de correo.
Para ello utilizaremos un componente denominado CDONT y es parte del servicio
SMTP de Internet Information Server 4.

Este componente nos permite mediante unas pocas líneas de ASP, enviar y recibir
mail. Manos a la obra:

Necesitamos una página con el formulario, a la cual llamaremos [Link]:

<html>
<head>
</head>
<body>
<form method="post" action="[Link]">
<p>Nombre:
<input type="text" name="nom">
</p>
<p>Empresa:
<input type="text" name="emp">
</p>
<p>Sugerencias:
<textarea name="sug" cols="35"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Enviar">
<input type="reset" name="Submit2" value="Limpiar">
</p>
</form>
</body>
</html>

Por otro lado tendremos una página a la que llamaremos [Link].


El código es el siguiente:

<%
'Creación de variables para almacenar los campos del formulario

Nombre= [Link]("nom")
Empresa= [Link]("emp")

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Sugerencias= [Link]("sug")

strTo = [Link]
to="direccion@[Link]"&doclear=yes ' Esta es una dirección que
corresponda a
nuestro servidor
strSubject = "Envio de sugerencias de: " & Nombre

strBody = "<html><body>"
strBody = strBody & "Este es un mensaje generado por el formulario:" &
"<br><br>"
strBody = strBody & "Nombre: "& Nombre &"<br>"
strBody = strBody & "Empresa: "& Empresa &"<br>"
strBody = strBody & "Sugerencias: "& Sugerencias &"<br>"
strBody = strBody & "</body></html>"

Set objCDOMail = [Link]("[Link]") 'Creación del objeto

[Link] = [Link]
to="direccion@[Link]"&doclear=yes 'No hay problema en que sea la
misma que la anterior.
[Link] = strTo
[Link] = strSubject

[Link]=0 'Estas dos línes


[Link]=0 'permiten formatear mejor el mensaje

[Link] = strBody
[Link] 'Envía el mail
Set objCDOMail = Nothing
[Link] "[Link]"
' O bien podemos ahorrar una página y escribir algo como
' [Link] "Gracias por enviarnos sus sugerencias"
%>

Por último debemos generar una página con un mensaje de agradecimiento, o bien
redireccionar al visitante hacia otra página de nuestro sitio.

20.2. Cómo mostrar la cantidad de usuarios activos en nuestro sitio

Algo que puede llegar a ser muy interesante, es saber cuanto usuarios hay
visitando nuestro sitio al mismo tiempo, ya sea como un servicio más del sitio o
bien para realizar algunas estadísticas, que nos permitan conocer mejor las visitas
de los usuarios.
Para realizar este ejemplo, vamos a utilizar el archivo [Link] y cuatro eventos,
para manejar las rutinas.

Application_OnStart
Application_OnEnd
Session_OnStart
Session_OnEnd

El archivo [Link] debe quedar asi:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Sub Application_OnStart
Application("visitas") = 0
Application("Active") = 0
End Sub

Sub Application_OnEnd
End Sub

Sub Session_OnStart
[Link] = 20
Session("Start") = Now
[Link]
Application("visitas") = Application("visitas") + 1
intTotal_visitas = Application("visitas")
[Link]
Session("VisitorID") = intTotal_visitas

[Link]
Application("Active") = Application("Active") + 1
[Link]
End Sub

Sub Session_OnEnd
[Link]
Application("Active") = Application("Active") - 1
[Link]
End Sub
</SCRIPT>

Ahora sólo nos falta crear el archivo [Link] y listo.

<html>
<head>
<title>Mostrando la cantidad de usuarios activos</title>
</head>
<body>
Vos sos uno, de <%=Application("Active")%> visitantes en este momento.
</body>
</html>

20.3. Implementando un sistema de Banners Rotativos

Uno de los componentes más útiles que se pueden emplear en ASP es el llamado Ad
Rotator, este componente permite mostrar distintos banners en una página ASP,
pudiendo calcular mediante porcentajes, la cantidad de veces que queremos mostrar los
banners e incluso controlar las veces en que el usuario hace click en alguno de los
banners.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

El componente ad Rotator es incluído con el Windows NT Option Pack, cuando


instales el Internet Informatión Server, el componente debería instalarse
automáticamente en la carpeta, C:\Winnt\system32\inetsrv\[Link].

Vamos a crear para el ejemplo los archivos necesarios [Link], [Link]


[Link].

[Link]
<HTML>
<HEAD><TITLE> Mostrando Banners</TITLE></HEAD>

<BODY>
<CENTER><H1>Mostrando Distintos Banners!</H1></CENTER>

<HR>
<%
Set MyAd=[Link]("[Link]")
[Link]= "TARGET=""blank"""
%>

<CENTER><%= [Link]("[Link]") %></CENTER>


</BODY>
</HTML>

En esta página es en donde vamos a mostrar los distintos banners, y para ello
necesitamos crear 2 archivos más.

[Link]
REDIRECT [Link]
WIDTH 468
HEIGHT 60
BORDER 0
*
[Link]
[Link]
El Portal de Programación en Internet
60
[Link]
[Link]
WebKlan
20
[Link]
[Link]
Neolatina
20

Tenemos algunas propiedades para explicar.

Redirect: Especifica la dirección en donde el usuario que clickea en el banner es


enviado.

Width: Especifíca el largo que tendran el o los banners que mostremos, el tamaño
estandar que se utiliza habitualmente es de 468 pixels.

jhonnychura@[Link]
Mis Referencias de ASP Jhonny Pedro Chura Loza

Height: Especifíca el alto que tendran el o los banners que mostremos, el tamaño
estandar que se utiliza habitualmente es de 60 pixels.

Border: Este es el valor que le damos al borde del banner, lo habitual es no usar
borde, por lo tanto tenemos que colocar un 0 en esta propiedad.

[Link]

<%
[Link] [Link]("url")
[Link] [Link]("url")
%>

jhonnychura@[Link]

También podría gustarte