Está en la página 1de 46

Fundamentacion

Objetivos generales

Requisitos

Contenidos

Unidad 1: Introducción a la programación de páginas dinámicas


Introducción
Características
HTML Dinámico
JavaScript
Eventos

Unidad 2: Programación de páginas en diferentes lenguajes


Ejemplos en lenguajes (ASP, PHP, ColdFusion, Perl, XML, etc.)

Unidad 3: Formularios
Introducción
Como funcionan
Campos
Mezclamos formularios con JavaScript
Consejos para el armado de Formularios

Unidad 4: Desarrollo de aplicaciones orientadas a paginas Web con


ASP
Fundamentos de VBScript
Procesamiento de Datos
Variables de Sesión
Uso de Cookies

Unidad 5: Acceso a datos con ASP


ADO
Objetos
Acceso a datos con SQL

Propuesta Metodológica

Usted deberá leer los temas antes del encuentro presencial, anotando sus dudas para
solicitar del profesor las explicaciones pertinentes.

Realizaremos ejercicios que no forman parte de este módulo, o algún ejercicio de éste
que presente dificultades en su resolución.

Evaluación
Deberá aprobarse el 60% del examen o práctico realizado
Deberá tener 80% de asistencias.
Se tomarán 2 parciales y 1 trabajo práctico.

Bibliografía y Material de Consulta


UNIDAD 1

Objetivos Generales

Que el alumno se capaz de:


• Entender el significado y funcionamiento de las paginas dinámicas
• Conocer las diferencias con página estáticas
• Conocer como trabajan dentro del servidor

Introducción

Muy probablemente, estés familiarizado con el lenguaje HTML y con toda seguridad
hayas desarrollado algún sitio basado en esta herramienta. En realidad el HTML no es
lenguaje de programación sino, más bien, se trata de un lenguaje descriptivo que tiene
como objeto dar formato al texto y las imágenes que pretendemos visualizar en el
navegador.

A partir de este lenguaje somos capaces de introducir enlaces, seleccionar el tamaño de


las fonts o intercalar imágenes, todo esto de una manera prefijada y en ningún caso
inteligente. En efecto, el HTML no permite el realizar un simple cálculo matemático o
crear una página de la nada a partir de una base de datos. A decir verdad, el HTML,
aunque muy útil a pequeña escala, resulta bastante limitado a la hora de crear grandes
sitios o portales. Las páginas creadas a partir de HTML las llamamos “Páginas
Estáticas”

Es esta deficiencia del HTML la que ha hecho necesario el empleo de otros lenguajes
accesorios mucho más versátiles y de un aprendizaje relativamente más complicado,
capaces de responder de manera inteligente a las demandas del navegador y que
permiten la automatización de determinadas.

Estos lenguajes capaces de recrear a partir de ciertos "scripts" un sinfín de páginas


automatizadas son los protagonistas de este concepto de “Páginas Dinámicas”.

Diferencias entre paginas Dinámicas y Estáticas

Páginas Estáticas: se construyen con el lenguaje HTML, que no permite grandes


funcionalidades para crear efectos más allá de los enlaces.

Estas páginas son muy sencillas de crear, aunque ofrecen pocas ventajas tanto a los
desarrolladores como a los visitantes, ya que sólo se pueden presentar textos planos
acompañados de imágenes y a lo sumo contenidos multimedia como pueden ser videos
o sonidos

A una página estática se le puede incluir cualquier efecto especial o funcionalidad y


para ello es necesario utilizar otros lenguajes de programación, aparte del simple
HTML.
Páginas Dinámicas: Las páginas dinámicas son páginas HTML generadas a partir de
lenguajes de programación (scripts). Hay diferentes tipos de scripts, los que se ejecutan
localmente y los que lo hacen en el servidor (Server Side Scripts). Los 'Server Side'
scripts generan un código HTML desde el propio servidor web.

Este código HTML puede ser modificado -por ejemplo- en función de una petición
realizada por el usuario en una Base de Datos. Dependiendo de los resultados de la
consulta en la Base de Datos, se generará un código HTML u otro, mostrando diferentes
contenidos.

HTML Dinámico (DHTML)

HTML Dinamico es la conjunción de HTML, hojas de estilo (CSS), Capas (Layers) y


javascript, el uso combinado de estas tres tecnologías permite introducir dinamismo en
la paginas web. Permite el desarrollo de atractivas interfaces, animaciones, y multitud
de efectos y capacidades que hacen a las paginas no solo mas vistosas sino mucho mas
utiles para el usuario.

El HTML dinámico integra varios elementos:

* Las Hojas de Estilo, para controlar los atributos de presentación de cada elemento de
una página.
* El DOM (Document Object Model) es una especificación que permite describir la
estructura y composición de una página, sin hacer referencia a su contenido. Permite
alterar determinados aspectos de la presentación de una página, accediendo a una
jerarquía de objetos que se crea a partir de los diferentes elementos HTML de la página.
Puede ser utilizado desde otro lenguaje de macros, Java, plug-ins o ActiveX, por poner
ejemplos ya conocidos.
* Las Capas (Layers) permiten crear documentos HTML solapados; para ello, se define
una sección rectangular, caracterizada en un sistema de coordenadas tridimensionales, y
se añade código HTML a la misma. De esta forma, se dispone de la capacidad de
colocar y mover elementos por la pantalla del browser.
* Lenguajes de macros, como JavaScript o VisualBasic Script, que tienen capacidad de
modificar el DOM, y con ello el contenido y presentación de la página.

Solo nos vamos a enfocar en los aspectos que hacen a la programación y sus puntos
mas importantes. La practica con Estilos la realizamos en el pasado cuatrimestre ya
que hace mas al diseño y armado de los documentos HTML, ante cualquier duda
refiéranse al anterior material.

Hojas de Estilo en Cascada (CSS)

Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal
usado para definir la presentación de un documento estructurado escrito en HTML o
XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el
encargado de formular la especificación de las hojas de estilo que servirá de estándar
para los agentes de usuario o navegadores.

La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un


documento de su presentación.
Las ventajas de utilizar CSS (u otro lenguaje de estilo) son:

• Control centralizado de la presentación de un sitio web completo con lo que se


agiliza de forma considerable la actualización del mismo.
• Los Navegadores permiten a los usuarios especificar su propia hoja de estilo
local que será aplicada a un sitio web remoto, con lo que aumenta
considerablemente la accesibilidad. Por ejemplo, personas con deficiencias
visuales pueden configurar su propia hoja de estilo para aumentar el tamaño del
texto o remarcar más los enlaces.
• Una página puede disponer de diferentes hojas de estilo según el dispositivo que
la muestre o incluso a elección del usuario. Por ejemplo, para ser impresa,
mostrada en un dispositivo móvil, o ser "leída" por un sintetizador de voz.
• El documento HTML en sí mismo es más claro de entender y se consigue
reducir considerablemente su tamaño.

Hay varias versiones : CSS1 y CSS2, con CSS3 en desarrollo por el World Wide Web
Consortium (W3C). Los navegadores modernos implementan CSS1 bastante bien,
aunque existen pequeñas diferencias de implementación según marcas y versiones de
los navegadores¹. CSS2, sin embargo, está solo parcialmente implentado en los más
recientes.

Ejemplo.html

dentro del body


<div id="capa1"><br>
Aquí, va lo que nos venga en gana: imágenes, texto, etc.<br>
</div>

Estilo_Ejemplo.css

#capa1 { //aquí definimos las propiedades de la capa


background-color: #fff;
margin: auto;
color: #000;
}

El DOM de DHTML
Actualmente, el DOM implementado en MSIE 4
es más completo que el propuesto por Netscape. El
nuevo DOM de MS es accesible con JavaScript y
VBScript e incluye el objeto "all", que representa
el conjunto de todos los elementos de una página.
En la versión puesta a punto por Netscape, los
eventos quedan limitados a objetos específicos,
mientras que Microsoft abre los elementos de una
página a todos los eventos, lo que permite el
acceso a todos los atributos de un elemento,
incluidos color, fondo y fuente.

Dentro del DOM, no todos los objetos se


encuentran al mismo nivel, sino que cada uno de
ellos existe por estar relacionado con conjuntos de
otros objetos.

El objeto de primer nivel es "window", el cual, a su vez, contiene el objeto "document". El objeto
"window" expone la información relativa al documento y al actual URL, así como a los URL
visitados. Como los documentos HTML tradicionales, los FRAMESET se exponen mediante el
elemento "document", pero a diferencia de los primeros subdividen la pantalla en varios
marcos. Esta peculiaridad hace que cada FRAMESET sea expuesto como otro objeto
"window".

Es posible, gracias a las potencialidades de los estilos dinámicos, modificar


automáticametne el aspecto de un documento a intervalos de tiempo. En el ejemplo que
figura a continuación, los estilos adoptados para diversas partes de texto están asociados
a un reloj que, en este caso particular, genera un texto elástico, que hasta ahora podía
obtenerse sólo con applet Java o GIF animados:

<HTML><HEAD>

<TITLE>Texto elástico</TITLE>

<STYLE TYPE="text/css">

H1 {color:red; font-weight:bold; font-size:95pt}

H2 {color:black; font-weight:bold; font-size:45pt}

H3 {color:gray; font-weight:bold; font-size:35pt}

</STYLE>

<SCRIPT LANGUAGE="JavaScript">

var sizes = new Array("0px", "4px", "8px", "16px", "32px");


sizes.pos = 0;

function rubberBand() {

var el = document.all.elastic;

if (null == el.direction)

el.direction = 1;

else if ((sizes.pos > sizes.length - 2) ||

(0 == sizes.pos))

el.direction *= -1;

el.style.letterSpacing = sizes[sizes.pos += el.direction];

</SCRIPT>

</HEAD>

<BODY ONLOAD="window.tm = setInterval('rubberBand()', 150);"

ONUNLOAD="clearInterval(window.tm);">

<H2 ALIGN="center">Internet News</H2>

<H1 ID="elastic" ALIGN="Center">DHTML</H1>

<H3 ALIGN="Center">ejemplo de texto elástico</H3>

</BODY>

</HTML>

Lenguajes de macros (scripts del lado del cliente)

Para declarar un script de cliente se usan las etiquetas <SCRIPT> </SCRIPT>. El


navegador interpreta cualquier texto escrito entre estas marcas como script, sujeto a las
reglas del lenguaje script en el cual fue escrito. Actualmente los navegadores mas
importantes soportan JavaScript. Internet Explorer ademas, soporta VBScript pero no
JavaScript. Teniando presente esto, lo mejor seria que escribamos scripts en JavaScript.

A continuación veremos un sencillo script de cliente escrito en JS. Este script permite al
usuario hacer clic en un boton para mostrar un mensaje en un cuadro de dialogo.

El código define un elemento HTML <FORM> con el nombre myform. En este ejemplo
usamos el elemento <FORM> porque queremos que la página sea soportada por todos
los navegadores.

El código dentro de las marcas <SCRIPT></SCRIPT> se activará una vez que el cliente
haga clic en el botón que mediante la directiva OnClick=MostrarMensaje() provoca que
se ejecute el script.

JavaScript

Historia
El lenguaje fue inventado por Brendan Eich en la empresa Netscape Communications,
que es la que fabricó los primeros navegadores de Internet comerciales.

Apareció por primera vez en el producto de Netscape llamado Netscape Navigator 2.0.

Tradicionalmente, se venía utilizando en páginas web HTML, para realizar tareas y


operaciones en el marco de la aplicación cliente servidor. Con la irrupción de Web 2.0,
JavaScript se ha convertido en un verdadero lenguaje de programación que aporta la
potencia de cálculo del navegador para aumentar la usabilidad de aplicaciones Web con
técnicas avanzadas como AJAX o JCC.

¿Que es?

Javascript es un lenguaje de programación utilizado para crear pequeños programitas


encargados de realizar acciones dentro del ámbito de una página web. Con Javascript
podemos crear efectos especiales en las páginas y definir interactividades con el
usuario. El navegador del cliente es el encargado de interpretar las instrucciones
Javascript y ejecutarlas para realizar estos efectos e interactividades, de modo que el
mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador.

Javascript es el siguiente paso, después del HTML, que puede dar un programador de la
web que decida mejorar sus páginas y la potencia de sus proyectos. Es un lenguaje de
programación bastante sencillo y pensado para hacer las cosas con rapidez, a veces con
ligereza. Incluso las personas que no tengan una experiencia previa en la programación
podrán aprender este lenguaje con facilidad y utilizarlo en toda su potencia con sólo un
poco de práctica.

Versiones

* Javascript 1: nació con el Netscape 2.0 y soportaba gran cantidad de instrucciones y


funciones, casi todas las que existen ahora ya se introdujeron en el primer estandar.

* Javascript 1.1: Es la versión de Javascript que se diseñó con la llegada de los


navegadores 3.0. Implementaba poco más que su anterior versión, como por ejemplo el
tratamiento de imágenes dinámicamente y la creación de arrays.

* Javascript 1.2: La versión de los navegadores 4.0. Esta tiene como desventaja que
es un poco distinta en plataformas Microsoft y Netscape, ya que ambos navegadores
crecieron de distinto modo y estaban en plena lucha por el mercado.

* Javascript 1.3: Versión que implementan los navegadores 5.0. En esta versión se
han limado algunas diferencias y asperezas entre los dos navegadores.

* Javascript 1.5: Versión actual, en el momento de escribir estas líneas, que


implementa Netscape 6.

* Por su parte, Microsoft también ha evolucionado hasta presentar su versión 5.5 de


JScript (así llaman al javascript utilizado por los navegadores de Microsoft).

¿Como ejecuto JavaScript?


Lo más importante que podemos destacar en este Ejemplo
momento es que la programación de Javascript se
<HTML>
realiza dentro del propio documento HTML. Esto <HEAD>
quiere decir que en la página se mezclan los dos <TITLE>Mensaje Sencillo</TITLE>
lenguajes, y para que estos dos lenguajes se </HEAD>
<BODY>
puedan mezclar sin problemas se han de incluir
unos delimitadores que separan las etiquetas <SCRIPT LANGUAGE=javascript>
HTML de las instrucciones Javascript. Estos Function MostrarMensaje() {
Alert(“Hola Mundo!”);
delimitadores son las etiquetas <SCRIPT> y }
</SCRIPT>. Todo el código Javascript que </SCRIPT>
pongamos en la página ha de ser introducido entre
<Form name=myform>
estas dos etiquetas. <INPUT name=boton type=button
value=”Mostrar Mensaje”
En una misma página podemos introducir varios OnClick=MostrarMensaje()>
</Form>
scripts, cada uno que podría introducirse dentro de
unas etiquetas <SCRIPT> distintas. La colocación </BODY>
de estos scripts es indiferente, en un principio nos </HTML>
da igual donde colocarlos, pero en determinados
casos esta colocación si que será muy importante.
Esto se llama “Ejecución Directa”.

También se puede escribir Javascript dentro de determinados atributos de la página,


como el atributo onclick. Estos atributos están relacionados con las acciones del usuario
y se llaman manejadores de eventos. A esto lo llamamos “Respuesta a un evento”.

Las acciones que queremos realizar como respuesta a un evento se han de indicar dentro
del mismo código HTML, pero en este caso se indican en atributos HTML que se
colocan dentro de la etiqueta que queremos que responda a las acciones del usuario. Ver
EVENTOS.

Sintaxis

El lenguaje Javascript tiene una sintaxis muy parecida a la de Java por estar basado en
él. También es muy parecida a la del lenguaje C.

Comentarios

Un comentario es una parte de código que no es interpretada por el navegador y cuya


utilidad radica en facilitar la lectura al programador. El programador, a medida que
desarrolla el script, va dejando frases o palabras sueltas, llamadas comentarios, que le
ayudan a él o a cualquier otro a leer mas fácilmente el script a la hora de modificarlo o
depurarlo.

Existen dos tipos de comentarios en el lenguaje. Uno de ellos, la doble barra, sirve para
comentar una línea de código. El otro comentario lo podemos utilizar para comentar
varias líneas y se indica con los signos /* para empezar el comentario y */ para
terminarlo. Veamos unos ejemplos.
<SCRIPT>
//Este es un comentario de una línea
/*Este comentario se puede extender
por varias líneas.
Las que quieras*/
</SCRIPT>

Mayúsculas y minúsculas

En javascript se han de respetar las mayúsculas y las minúsculas. Si nos equivocamos al


utilizarlas el navegador responderá con un mensaje de error de sintaxis. Por convención
los nombres de las cosas se escriben en minúsculas, salvo que se utilice un nombre con
más de una palabra, pues en ese caso se escribirán con mayúsculas las iniciales de las
palabras siguientes a la primera. También se puede utilizar mayúsculas en las iniciales
de las primeras palabras en algunos casos, como los nombres de las clases.

Separación de instrucciones

Las distintas instrucciones que contienen nuestros scripts se han de separar


convenientemente para que el navegador no indique los correspondientes errores de
sintaxis. Javascript tiene dos maneras de separar instrucciones. La primera es a través
del carácter punto y coma (;) y la segunda es a través de un salto de línea.

Por esta razón Las sentencias Javascript no necesitan acabar en punto y coma a no ser
que coloquemos dos instrucciones en la misma línea.

Eventos

Se llaman eventos a acciones que ocurren cuando un usuario ejecuta algún tipo de
acción. Los manipuladores de eventos se incorporan en los documentos como atributos
de etiquetas HTML. Por ejemplo:

<INPUT TYPE="button" VALUE="GO" onClick="makeitgo(this.form)">

Esta instrucción invoca la función makeitgo() cuando se pulsa el botón.


La siguiente tabla muestra los nueve manipuladores de eventos de JavaScript.

Manipulador
Evento Se da cuando
de evento
El usuario retira el foco de entrada del elemento
blur onBlur
form
El usuario pulsa el ratón sobre el elemento form o
click onClick
sobre un enlace
El usuario modifica el valor del texto, de un área
change onChange
del texto, o selecciona un elemento
El usuario sitúa el foco de entrada en el elemento
focus onFocus
form
load El usuario carga la página en el Navigator onLoad
El usuario mueve el puntero del ratón sobre un
mouseover onMouseOver
enlace
El usuario selecciona elementos form como campo
select onSelect
de entrada (input)
submit El usuario envia un formulario onSubmit
unload El usuario abandona la página onUnload

• El manipulador de eventos OnClick


El evento click se produce cuando,en un formulario, un objeto susceptible de ser
pulsado es pulsado por el usuario. El manipulador de eventos JavaScript puede
llamar una función, que ha de existir en el documento actual, o ejecutar código
JavaScript presente. Por ejemplo:

<input type="button" name="Pulsame" onClick="alert('Me has pulsado!');">

La instrucción anterior abrirá una ventana de aviso cuando el usuario pulse el


botón.

• El manipulador de eventos onSubmit


Se produce cuando el usuario envia un formulario. El manipulador de eventos
OnSubmit puede llamar una función o ejecutar código JavaScript presente. Por
ejemplo

<form name="miform" action="doit.cgi" onSubmit="confirmSubmission()">

La anterior instrucción llama a a la función confirmSubmission para comprobar


los valores de los campos antes de llamar al URL designado en el atributo
action.

• El manipulador de eventos onChange


Se produce cuando un campo select, text o textarea deja de ser enfocado y se ha
modificado su valor. EL elemento onChange puede llamar a una función o
ejecutar código JavaScript presente. Ejemplo:

<input name="phone" onChange="checkPhone(this.form)">;

Esta instrucción llama a la función checkPhone cuando el usuario deja de


enfocar el campo de entrada (input) de texto y se mueve a otro campo. Esto
permite preprocesar instantáneamente la información y comprobar el valor del
campo con anterioridad al envio del formulario.
• El manipulador de eventos onLoad
Se produce cuando acaba de cargar una ventana o todas las tramas de un
<FRAMESET>.Puede llamar a una función o ejecutar código JavaScript
presente.Ejemplo

<body onLoad="alert('Bienvenido a mi página')">

• El manipulador de eventos onUnload


Se produce cuando el usuario abandona la página. Por ejemplo

<body onUnload="alert('Gracias por tu visita’)”

Mas Información
El World Wide Web Consortium, abreviado W3C, es una organización que produce
estándares para la World Wide Web, en su sitio encontraremos todas las definiciones
originales de cada lenguaje.

Pagina Oficial: http://www.w3.org/


Pagina en español: http://www.w3c.es/

También existe un sitio muy interesante y aconsejable para interiorizarse en estos


estándares, es: http://www.w3schools.com/ aquí encontraran un tutoríal muy completo
y gran cantidad de ejemplos.
UNIDAD 2

Introducción

Un lenguaje de programación es una técnica estándar de comunicación que permite


expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un
conjunto de reglas sintácticas y semánticas que definen un programa informático.

Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si


fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a
los lenguajes de programación y a otros más, como, por ejemplo, el HTML.

Un lenguaje de programación permite a un programador especificar de manera precisa:


sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y
transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo
esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje
humano o natural, tal como sucede con algunos lenguajes.

Un programa escrito en un lenguaje de programación necesita pasar por un proceso de


compilación, es decir, ser traducido al lenguaje de máquina, o ser interpretado para que
pueda ser ejecutado por el ordenador.

Lenguajes de Programación WEB o lenguajes Dinámicos

Ahora vamos a repasar algunos lenguajes y tecnologías web dinámicas que han surgido:

Del lado del servidor:

ASP
PERL
PHP
Cold Fusion
JSP / JavaServlets
Extenciones de FrontPage

Del lado del cliente:

JavaScript / Jscript (lo vimos en la unidad anterior con detenimiento)


Java Applets
VBScript (lo veremos en la siguiente unidad)
ActiveX
XML

Con estos últimos tuvimos alguna practicas ya y en esta ocasión nos vamos a centrar en
los lenguajes del lado del servidor.

Hace unos años surgió una interfaz llamada CGI (Common Gateway Interface), cuya
misión era servir de pasarela entre la WEB y otros lenguajes no preparados para ella,
como C, C++, Pascal y Perl. El mas flexible y utilizado fue Perl, ya que tiene
funcionalidades especiales para realizar un mejor manejo de nuestras aplicaciones en la
web. Pero CGI, con el tiempo, comenzó a perder fuerza ante otros lenguajes de script
como ASP o PHP. La principal diferencia entre un script y un programa ejecutable es
que el primero se interpreta en el momento de ejecutarse, es decir, siempre esta el
codigo fuente visible por el servidor y nunca existen los ejecutables compilados (los
clasicos archivos .exe de DOS y Windows).

A nosotros nos interesa el lenguaje de script ASP que es el que vamos a abordar, pero
primero le daremos un repaso muy pequeño a otros lenguajes y tecnologías disponibles,
recuerden que podemos hacer uso de todas las que pudiéramos necesitar en un proyecto.

Perl

Perl (Practical Extraction and Report Language) es un lenguaje de programación


desarrollado por Larry Wall inspirado en otras herramientas de UNIX, para la
administración de tareas propias de este sistema operativo.

No establece ninguna filosofía de programación concreta. No se puede decir que sea


orientado a objetos, modular o estructurado aunque soporta directamente todos estos
paradigmas; su punto fuerte son las labores de procesamiento de textos y archivos.

No es ni un compilador ni un intérprete, está en un punto intermedio, cuando mandamos


a ejecutar un programa en Perl, se compila el código fuente a un código intermedio en
memoria que se optimiza como si se fuera a elaborar un programa ejecutable pero es
ejecutado por un motor, como si se tratase de un interprete.

Lenguaje de programación basado en scripts portable a casi cualquier plataforma. Es


muy utilizado para escribir CGIs. Uno de sus elementos más potentes son las
expresiones regulares, que a partir de su versión en Perl han sido adoptadas por otros
lenguajes y plataformas como .NET o Javascript.

Lenguaje optimizado para el escaneo de texto arbitrario de ficheros. Es también un buen


lenguaje para tareas de administración de sistemas. Es un lenguaje con intención de ser
práctico en lugar de bonito

PHP

El lenguaje PHP es un lenguaje de programación de estilo clásico, con esto quiero decir
que es un lenguaje de programación con variables, sentencias condicionales, bucles,
funciones.... No es un lenguaje de marcas como podría ser HTML, XML o WML.

PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el
servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado
en el servidor y el resultado enviado al navegador. El resultado es normalmente una
página HTML pero igualmente podría ser una pagina WML.

Su interpretación y ejecución se da en el servidor, en el cual se encuentra almacenado el


script, y el cliente sólo recibe el resultado de la ejecución. Cuando el cliente hace una
petición al servidor para que le envíe una página web, generada por un script PHP, el
servidor ejecuta el intérprete de PHP, el cual procesa el script solicitado que generará el
contenido de manera dinámica, pudiendo modificar el contenido a enviar, y regresa el
resultado al servidor, el cual se encarga de regresárselo al cliente.

Permite la conexión a diferentes tipos de servidores de bases de datos tales como


MySQL, Postgres, Oracle, ODBC, IBM DB2, Microsoft SQL Server y SQLite; lo cual
permite la creación de Aplicaciones web muy robustas.

PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas


operativos tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS X, y
puede interactuar con los servidores de web más populares ya que existe en versión
CGI, módulo para Apache, e ISAPI.

El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que utiliza
ASP.NET/C#/VB.NET, a ColdFusion de la compañía Macromedia, a JSP/Java de Sun
Microsystems, y al famoso CGI/Perl. Aunque su creación y desarrollo se da en el
ámbito de los sistemas libres, bajo la licencia GNU, existe además un compilador
comercial llamado Zend Optimizer.

Cold Fusion

ColdFusion fue desarrollado por Allaire Corporation para ser una alternativa poderosa y
simple de usar a Perl y otras tecnologías CGI.

ColdFusion, según Macromedia, combina un lenguaje intuitivo, basado en tags, rico,


con herramientas visuales y un servidor de aplicaciones web probadamente confiable,
para entregar la manera más rápida de desarrollar poderosas aplicaciones web.

ColdFusion es una herramienta que corre en forma concurrente con la mayoría de los
servidores web de Windows, Linux y Solaris (también en servidores web personales en
Windows 98 y puede ser usado para intranets). El servidor de aplicaciones web de
ColdFusion trabaja con el servidor HTTP para procesar peticiones de páginas web.
Cada vez que se solicita una página de ColdFusion, el servidor de aplicaciones
ColdFusion ejecuta el script o programa contenido en la página.

ColdFusion es un lenguaje de programación, puede crear y modificar variables igual


que en otros lenguajes de programación que nos son familiares.

Interactúa de manera simple con bases de datos (Sybase, Oracle, MySQL,SQL, o


Access). Usando SQL estándar, las páginas y aplicaciones web pueden fácilmente
recuperar, guardar, formatear y presentar información dinámicamente.

JSP / JavaServlets

JavaServer Pages (JSP) es la tecnología para generar páginas web de forma dinámica en
el servidor, desarrollado por Sun Microsystems, basado en scripts que utilizan una
variante del lenguaje java.

La tecnología JSP, o de JavaServer Pages, es una tecnología Java que permite a los
programadores generar dinámicamente HTML, XML o algún otro tipo de página web.
Esta tecnología permite al código Java y a algunas acciones predefinidas ser embebidas
en el contenido estático. En las jsp, se escribe el texto que va a ser devuelto en la salida
(normalmente código HTML) incluyendo código java dentro de él para poder modificar
o generar contenido dinámicamente. El código java se incluye dentro de las marcas de
etiqueta <% y %>.

En una posterior especificación, se incluyeron taglib; esto es, la posibilidad de definir


etiquetas nuevas que ejecuten código de clases java. La asociación de las etiquetas con
las clases java se declaran en archivos de configuración en XML.

La principal ventaja de JSP frente a otros lenguajes es que permite integrarse con clases
Java (.class) lo que permite separar en niveles las aplicaciones web, almacenando en
clases java las partes que consumen más recursos así como las que requieren más
seguridad, y dejando la parte encargada de formatear el documento html en el archivo
jsp.

Además Java se caracteriza por ser un lenguaje que puede ejecutarse en cualquier
sistema, lo que sumado a jsp le da mucha versatilidad.

Sin embargo JSP no se puede considerar un script al 100% ya que antes de ejecutarse el
servidor web compila el script y genera un servlet, por lo tanto se puede decir que
aunque este proceso sea transparente para el programador no deja de ser una aplicación
compilada. La ventaja de esto es algo más de rapidez y disponer del API de Java en su
totalidad.

Debido a esto la tecnología JSP, así como Java está teniendo mucho peso en el
desarrollo web profesional (sobre todo en intranets).

Extenciones de FrontPage

Las extensiones de Frontpage son pequeñas funcionalidades añadidas por dicho


programa a las páginas web básicas. Frontpage las pone a disposición del diseñador de
páginas para que las incluya en su sitio web, si así lo desea.

Las extensiones de Frontpage son, por ejemplo, contadores, formularios que realizan
pequeñas tareas automáticamente o ayudas para la publicación de la web. En definitiva,
son pequeños scripts de servidor para hacernos la vida más sencilla o ampliar las
funcionalidades de nuestras páginas.

Las tareas de publicación de la web se refiere a una manera muy cómoda de trabajar
directamente con el servidor de alojamiento por la que a medida que vamos
construyendo la página esta se va actualizando directamente en el servidor web, de
modo que no tendremos que realizar acción alguna para publicar nuestro trabajo una vez
realizado sino que ya estará publicado en Internet y accesible a todos los usuarios.

Java Applets

Una Java applet es una applet escrita en el lenguaje de programación Java. Los applets
de Java pueden correr en un navegador web utilizando la Java virtual machine (JVM), o
en el AppletViewer de Sun.
Entre sus características podemos mencionar un esquema de seguridad que permite que
los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no
pueden escribir archivos), a excepción de que uno mismo le dé los permisos necesarios
en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa
para el usuario común, lo cual juega en contra de uno de los objetivos del mismo:
entregar una forma fácil de ejecutar aplicaciones ricas desde el navegador web.

ActiveX

Es una tecnología que esta basada en el Modelo de Componentes de Objetos (COM) de


Microsoft. Los componentes ActiveX abarcan una amplia variedad de elementos, desde
los vistosos controles deslizantes y giratorios hasta componentes no visuales que
permiten acceder a datos o proporcionar funciones de correo electronico.

Los ActiveX se añaden a las paginas Web utilizando la etiqueta <OBJECT> que
permite que el navegador identifique el componente. Dentro de esta etiqueta se pueden
ingresar todas las propiedades y caracteristicas necesarias para el funcionamiento del
control.

XML

XML es la sigla del inglés eXtensible Markup Language (lenguaje de marcado


ampliable o extensible) desarrollado por el World Wide Web Consortium (W3C).

Es una versión simple de SGML. Su objetivo principal es conseguir una página web
más semántica. Aunque una de las principales funciones con las que nace sería suceder
al HTML, separando la estructura del contenido y permitiendo el desarrollo de
vocabularios modulares, compatibles con cierta unidad y simplicidad del lenguaje
(objetivo que se viene desarrollando a través de la especificación XHTML), tiene otras
aplicaciones entre las que destaca su uso como estándar para el intercambio de datos
entre diversas aplicaciones o software con lenguajes privados como en el caso del
SOAP.

Al igual que el HTML, se basa en documentos de texto plano en los que se utilizan
etiquetas para delimitar los elementos de un documento. Sin embargo, XML define
estas etiquetas en función del tipo de datos que está describiendo y no de la apariencia
final que tendrán en pantalla o en la copia impresa, además de permitir definir nuevas
etiquetas y ampliar las existentes.

ASP

Active Server Pages (ASP) es una tecnología del lado servidor de Microsoft para
páginas web generadas dinámicamente, que ha sido comercializada como un anexo a
Internet Information Server (IIS).

ASP ha pasado por cuatro iteraciones mayores, ASP 1.0 (distribuido con IIS 3.0), ASP
2.0 (distribuido con IIS 4.0), ASP 3.0 (distribuido con IIS 5.0) y ASP.NET (parte de la
plataforma .NET de Microsoft). Las versiones pre-.NET se denominan actualmente
(desde 2002) como ASP clásico.
En el último ASP clásico, ASP 3.0, hay seis objetos integrados disponibles para el
programador, Application, ASPError, Request, Response, Server y Session. Cada objeto
corresponde a un grupo de funcionalidades frecuentemente usadas y útiles para crear
páginas web dinámicas.

Las páginas pueden ser generadas mezclando código de scripts del lado del servidor
(incluyendo acceso a base de datos) con HTML y código del lado del servidor.
UNIDAD 3

Formularios

Hasta ahora hemos visto la forma en la que el HTML gestiona y muestra la


información, esencialmente mediante texto, imágenes y enlaces. Nos queda por ver de
qué forma podemos intercambiar información con nuestro visitante. Desde luego, este
nuevo aspecto resulta primordial para gran cantidad de acciones que se pueden llevar a
cabo mediante el Web: Comprar un articulo, rellenar una encuesta, enviar un
comentario al autor...

Hemos visto anteriormente que podíamos, mediante los enlaces, contactar directamente
con un correo electrónico. Sin embargo, esta opción puede resultar en algunos casos
poco versátil si lo que deseamos es que el navegante nos envíe una información bien
precisa. Es por ello que el HTML propone otra solución mucho más amplia: Los
formularios.

Los formularios son esas famosas cajas de texto y botones que podemos encontrar en
muchas páginas web. Son muy utilizados para realizar búsquedas o bien para introducir
datos personales por ejemplo en sitios de comercio electrónico. Los datos que el usuario
introduce en estos campos son enviados al correo electrónico del administrador del
formulario o bien a un programa que se encarga de procesarlo automáticamente.

Ventajas

Las ventajas de un formulario con respecto a una dirección de correo pueden ser:

• Ayudar al visitante a componer el mensaje, y así incentivar su comunicación.


• Forzar a que el visitante introduzca cierta información que te pueda resultar
importante.
• Ofrecer más mecanismos de comunicación, cada uno elegirá el que más le
convenga.

Como funcionan

Los formularios son definidos por medio de las etiquetas <form> y </form>. Entre estas
dos etiquetas colocaremos todos los campos y botones que componen el formulario.
Dentro de esta etiqueta <form> debemos especificar algunos atributos:

action

Define el tipo de acción a llevar a cabo con el formulario. Como ya hemos dicho,
existen dos posibilidades:

• El formulario es enviado a una dirección de correo electrónico


• El formulario es enviado a un programa o script que procesa su contenido
En el primer caso, el contenido del formulario es enviado a la dirección de correo
electrónico especificada por medio de una sintaxis de este tipo:
<form action="mailto:direccion@correo.com" ...>

Si lo que queremos es que el formulario sea procesado por un programa, hemos de


especificar la dirección del archivo que contiene dicho programa. La etiqueta quedaría
en este caso de la siguiente forma:

<form action="dirección del archivo" ...>

method

Este atributo se encarga de especificar la forma en la que el formulario es enviado. Los


dos valores posibles que puede tomar esta atributo son post y get.

GET y POST son dos métodos empleados para enviar los datos de los formularios desde
el navegador al servidor Web, especificados mediante la directiva METHOD. La
principal diferencia entre POST y GET es que el CGI recibirá los datos enviados con
POST leyendo la entrada estándar, mientras que los enviados con GET se recibirán por
líneas de comandos y la variable de entorno QUERY_STRING. Desde un punto de
vista puramente práctico, debido a que muchos sistemas operativos ponen límite a la
longitud de la línea de comandos, suele ser mejor usar POST, reservando GET para
formularios con pocos datos.

enctype

Se utiliza para indicar la forma en la que viajará la información que se mande por el
formulario. En el caso más corriente, enviar el formulario por correo electrónico, el
valor de este atributo debe de ser "text/plain". Así conseguimos que se envíe el
contenido del formulario como texto plano dentro del email.

Si queremos que el formulario se procese automáticamente por un programa,


generalmente no utilizaremos este atributo, de modo que tome su valor por defecto, es
decir, no incluiremos enctype dentro de la etiqueta <form>

Ejemplo de etiqueta <form> completa

Así, para el caso más habitual -el envío del formulario por correo- la etiqueta de
creación del formulario tendrá el siguiente aspecto:
<form action="mailto:direccion@correo.com (o nombre del archivo de proceso)"
method="post" enctype="text/plain">

Entre esta etiqueta y su cierre colocaremos el resto de etiquetas que darán forma a
nuestro formulario, las cuales serán vistas en capítulos siguientes.

Campos

Campos de texto
Se utiliza la etiqueta <INPUT> de esta manera:
<INPUT TYPE="text" NAME="nombre_del_campo" SIZE=10>
El atributo TYPE indica que es un campo de texto. NAME es el nombre del campo,
tiene que describir lo que hay dentro. SIZE te permite ajustar el tamaño del campo.
La etiqueta NO tiene cierre con </INPUT>

Areas de texto

Se utiliza la etiqueta <TEXTAREA> de esta manera:


<TEXTAREA NAME="nombre_del_campo" COLS="20" ROWS="4>
Texto inicial dentrodel textarea< BR></TEXTAREA>
El atributo NAME es el nombre del campo. COLS indica el número de columnas del
área de texto y ROWS en de filas.

Botón de envío

Se utiliza la etiqueta <INPUT> de esta manera:


<INPUT TYPE="submit" VALUE="Envíalo YA!">
El atributo TYPE indica que es un botón submit (de envio). VALUE indica lo que va
escrito dentro del botón.
La etiqueta NO tiene cierre con </INPUT>, NO hace falta darle un nombre con NAME

Listas de selección

Se utiliza la etiqueta <SELECT>, veamos un ejemplo:

<p>Su cantante favorito:</p>


<select name="top5" size=3>
<option> Julio Iglesias </option>
<option> Michael Jackson </option>
<option> Roberto Carlos </option>
</select>
En NAME definimos el nombre del campo, en SIZE su tamaño. Dentro de la etiqueta
<OPTION> encerramos las opciones de la lista.

Botones de opcion (Radio)

Se utiliza la etiqueta <INPUT> pero le definimos otras propiedades, veamos un


ejemplo:
¿Cuál es su método de pago?
<input type=radio name="metodo" value="Mastercard"> Mastercard
<br>
<input type=radio name="metodo" value="Visa"> Visa
<br>
<input type=radio name="metodo" value="AmericanExpress"> American Express

EN TYPE le pusimos RADIO para definer las opciones, en VALUE el valor para cada
opcion. Recuerde que siempre debemos poner un mismo nombre de NAME para que
funcionen como botones de opcion de una misma selección, de lo contrario serán
botones sueltos.

Botones Ocultos

Se utiliza la etiqueta <INPUT> pero le definimos otras propiedades, veamos un


ejemplo:

<input type=hidden name="prueba" value="5">

La unica diferencia con un campo de texto es que definimos TYPE como HIDDEN, este
tipo de campos tiene multiples utilidades.

Tabulando los campos

Field 1: <input type=text size=40 maxlength=40 tabindex=4><br>


Field 2: <input type=text size=40 maxlength=40 tabindex=1><br>
Field 3: <input type=text size=40 maxlength=40 tabindex=3><br>
<input type=button tabindex=2 value="Haz clic"><br>

Mediante la propiedad TABINDEX (ubicandola en cualquier TAG de formulario)


definimos el orden de tabulación de los campos, muy importante para la comodidad del
visitante.

Mezclamos Formularios con JavaScript

Con JavaScript podemos hacer procesamiento de datos, comparar y comprobar


información, etc… pero como hariamos para enviar información de un formulario y
llamar a un script para que realice alguna función? Veamos unos ejemplos:

Agregando JavaScript en el botón

<INPUT type=button value=Clic Aquí OnClick=”javascript:Submit1()”>

Lo que hicimos en este ejemplo fue definir el tipo de boton como BUTTON ya que si
eligieramos la propiedad SUBMIT enviaria el forumario sin pasar por la comprobación
de JavaScript.

Utilizando un evento agregamos una pequeña porción de codigo JavaScript que le


indica al boton que todo el contenido del formulario será comprobado primero por la
función Submit1() y luego se enviara
Agregando JavaScript en la acción del formulario

<FORM name=form1 method=post OnSubmit=”javascript:Submit1()”>

Aquí volvemos a invocar la función Submit1() pero el boton de envio quedaria asi:

<INPUT type=submit value=Clic Aquí>

Agregamos otro evento en la etiqueta FORM y le decimos que una vez que se envie el
formulario pase por la función de JavaScript para ser comprobado.

Con ambas formas logramos lo mismo, pero son dos buenos ejemplos de cómo existen
varias formas de trabajar.

Concejos en el armado de Formularios

1. Procura reducir al máximo el numero de campos.


2. Evita los combos.
3. Es mejor si la información no se fragmenta demasiado.

1. Reduce al máximo el numero de campos en los formularios


Si en internet siempre estamos hablando de menos es mas, cuando hablamos de
formularios, menos es mucho... debemos tender a cero.

A. Procura reutilizar campos:

Por ejemplo:
Correo electronico = nombre de usuario.
DNI = password.

B. Evita formalidades
Ejemplos de campos que no son realmente necesarios:
Tratamiento (Don, Sr., Sra.,)
Tipo de Via (Calle, Camino, ...)
Fecha de nacimiento (es esto realmente necesario?, si lo es, indica para que lo
estas pidiendo)

2. Evita el uso de los combos en los formularios.


1. Es mas rápido escribir que seleccionar la opción en el combo.
2. La pagina pesa menos. El usuario se la baja mas rápido y acaba antes el proceso.

En la mayoria de los casos es mas rapido escribir el texto que buscarlo en un combo.
Escribir la palabra "España" puede llevar entre 1 y 2 segundos mas o menos, elegirla en
un combo donde podemos encontar todos los paises del mundo puede llevar un
promedio de 4 y 6 segundos. Si usamos el truco de preseleccionar el pais en el combo,
tambien podemos pre-escribir la palabra en el campo de texto.
El unico caso en el que el uso de combos esta justificado es en aquellos en los que la
respuesta esta predefinida tipo rangos, valoraciones subjetivas, marcas, etc... pero no lo
uses para paises, provincias, números, etc...

3. Evitar fragmentar la información.


El caso mas típico es el de la dirección donde por lo general se ve así:
Tipo de via:, Dirección:, Numero:, Codigo postal:...
Este caso a su vez suele estar alimentado con varios combos, con lo que el usuario debe
leer cada campo, entender lo que le están pidiendo y rellenarlo...
Podemos simplificarlo usando una única línea donde el usuario escriba toda la
dirección, como si se tratase de una carta.
Dirección completa: Calle Martinez Izquierdo N23, 7h.
Código postal: 12002.
De esta forma solo tenemos una línea para el campo "dirección", y luego 3 mas para
indicar código postal, población y provincia.
El usuario se sentirá mas cómodo si puede poner lo que quiera y no le obligamos a
rellenar cosas prefijadas que a lo mejor no entiende o no se ajusta a su caso particular.

Luego quizás quede destacar el caso de algunos bancos donde el campo "profesión"
obliga al usuario a elegir una opción de la lista que el banco dispone, haciendo uso de
un buscador, códigos de profesión, etc, etc... Realmente no es recomendable. El
beneficio que pueda dar esta información frente al fastidio que produce al usuario no
tiene equivalencia.
UNIDAD 4

ASP

ASP son las siglas de Active Server Pages y es un entorno creado por Microsoft
pensado para ejecutar aplicaciones dinámicas en servidores web.

¿Como trabaja en el servidor?

Un ejemplo muy comun de aplicación dinamica en el acceso de una BD y mostrar los


resultados de forma dinámica.

1. Desde un cliente (navegador) se llama al archivo .asp que se encuentra alojado


en el servidor.
2. El servidor analiza la pagina ASP y genera una nueva pagina de codigo HTML
cuyo contenido dependera de la información que se solicite y las funciones que
se ejecuten en el servidor.
3. El servidor devuelve al cliente la pagina ya procesada en formato HTML .

¿Cómo se ecribe un ASP?

El lenguaje se escribe intercalándolo con el lenguaje HTML dentro de las paginas, la


ejecución es lineal por lo que cada vez que se llama a una pagina el servidor la lee de
arriba hacia abajo encontrando HTML, scripts del lado del cliente, estilos, ASP, etc y
una vez que termino la lectura y la ejecución de los scripts muestra el resultado en
HTML puro.

La forma de indicarle al servidor las instrucciones de ASP es colocándolas entre los


símbolos <% %>, a esta forma de escribir codigo se la llama “embeber codigo” ya que
estamos incrustando codigo ASP dentro de una pagina HTML, veamos un pequeño
ejemplo

<HTML> En este caso tenemos dos lineas de codigo


<HEAD> entre los simbolos <% %> que pertenecen
</HEAD> a ASP. Utilizan el objeto Response para
imprimir información en pantalla y la
<BODY> funcion now() de VBScript para mostrar la
fecha y hora exacta del momento en que se
Aquí hay un script: cargo en memoria el script, noten que
<% usamos el objeto Response nuevamente.
Response.Write (“soy un script”)
Response.Write (now()) Si probamos este script veremos el texto y
%> a su lado la fecha y hora.

</BODY>
</HTML>

Intercalando Scripts

Dentro de una pagina ASP se puede intercalar porciones de codigo sin problemas,
recuerden que se ejecutara en forma lineal. Veamos el ejemplo anterior pero de forma
intercalada.

<HTML> Ahora modificamos el ejemplo separando


<HEAD> dos porciones de codigo y agregando la
</HEAD> etiqueta de HTML <br> para espaciar el
resultado de la ejecución.
<BODY>

Aquí hay un script:<br>


<%
Response.Write (“soy un script”)
%>
<br>
Fecha y Hora:<br>
<%
Response.Write (now())
%>

</BODY>
</HTML>

Fundamentos de VBScript

En unos de los ejemplos anteriores dijimos que estabamos utilizando una funcion de
VBScript, este es uno de los lenguajes mas difundidos en el ambiente WEB junto con
JavaScript y al igual que este se puede utilizar tanto para crear scripts del lado del
servidor como del lado del cliente, en unidades anteriores habiamos aprendido que para
los scripts del lado del cliente usaríamos JavaScript ya que tiene mayor soporte en la
mayoria de los navegadores.

Ahora vamos a trabajar con scripts del lado del servidor y nuestras prácticas en ASP las
vamos a realizar utilizando VBScript.

¿Qué es?

VBScript es un subconjunto de Visual Basic, esto quiere decir que comparte una gran
cantidad de funciones con este lenguaje y su lógica es casi idéntica, pero hay algunas
diferencias:

- VBScript soporta explícitamente un solo tipo de datos: Variant


- VBScript es un lenguaje interpretado
- Hay ciertas diferencias sintacticas en el uso de algunas funciones internas
- No se pueden crear controles Actives con VBScript
- VBScript no posee entorno grafico de programación

Variables

Como ya vimos, VBSCript solo soporta un tipo de variable, el Variant, que es un tipo de
dato especial y representa a todos y cada uno de los tipos de datos conocidos. De esta
forma, podemos usar Variant para representar una cadena, enteros, objetos, etc.

Aunque solo existe un tipo de datos, podemos hacer distinciones mas precisas acerca de
la naturaleza de la información a travez de los subtipos incluidos en el tipo Variant,
ademas vbscript nos provee de funciones para convertir los tipos de datos de un tipo a
otro.

Subtipo Descripción
Empty Variable sin inicializar
Null Variable intencionadamente vacia
Boolean Dos valores posibles: True o False
Byte Entero entre 0 y 255
Integer Entero entre -32.768 y 32.768
Currency Numero entre -922.337.203.685.477,5808
y 922.337.203.685.477,5807
Long Numero entre -2.147.483.648 y
2.147.483.647
Single Numero de precision simple
Double Numero de precision doble
Date Fecha
String Cadena de longitud variable
Object Contiene un objeto
Error Contiene un numero de error

Creación de una variable


Existen dos formas de creación de variables, la declaración implícita y la declaración
explicita, veamos ejemplos:

Declaración implícita: Declaración explicita:

<% <%
v=1 Dim v
%> %>

Aquí creamos una variable y le dimos un Aquí definimos una variable, luego le
valor. deberíamos asignar algun valor.

Para asignarle valor a una variable se utiliza el signo igual (=), por ejemplo:

Dim v
v = 1 (aqui declaramos un numero)
V = ”hola, soy una cadena” (aquí declaramos una cadena de texto)

Conversión de Tipos

Todas las funciones tienen la misma sintaxis:

Funcion(expresión), siendo expresión el dato que se desea convertir

Cbool Convierte la expresion a un tipo booleano


Cbyte Convierte la expresion a un tipo byte
CInt Convierte la expresion a un tipo Integer
Clng Convierte la expresion a un tipo Long
Csng Convierte la expresion a un tipo Single
Cdbl Convierte la expresion a un tipo Double
Ccur Convierte la expresion a un tipo Currency
Cdate Convierte la expresion a un tipo Date
Cstr Convierte la expresion a un tipo String

Entonces podriamos trasnformar una variable a Integer de esta forma:

Var = 1
Cint(Var)

Concatenacion de cadenas

Podemos unir cadenas y agregar variables a estas utilizando el operador de


concatenación de cadenas, el símbolo &:

text = “Esto es ” & “una cadena”

Podriamos pegar el texto de la variable i anterior, de este modo:

text = “Mire: ” & i


Veriamos: Mire hola, soy una cadena

Comentarios

VBScript acepta comentarios marcados con apostrofe. Estos se eliminan al procesarse la


secuencia de comandos y no se envia al explorador.

<%
‘ Esto es un comentario.
i=i+1
%>

Sentencias Condicionales

Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones


dependiendo del resultado de evaluar una condición. Las más frecuentes son la
instrucción if y la instrucción select.

Sentencia if ... else

Cuando queremos que el programa, llegado a un cierto punto, tome un camino


determinado en determinados casos y otro diferente si las condiciones de ejecución
difieren, nos servimos del conjunto de instrucciones If, Then y Else. La estructura de
base de este tipo de instrucciones es la siguiente:

IF condición THEN
Instrucción 1
Instrucción 2
...
ELSE
Instrucción A
Instrucción B
...
END IF

Llegados a este punto, el programa verificará el cumplimiento o no de la condición. Si


la condición es cierta las instrucciones 1 y 2 serán ejecutadas. De lo contrario (Else), las
instrucciones A y B serán llevadas a cabo.

Una vez finalizada la estructura, deberemos cerrar con un End If.

Esta estructura de base puede complicarse un poco más si tenemos cuenta que no
necesariamente todo es blanco o negro y que muchas posibilidades pueden darse. Es por
ello que otras condiciones pueden plantearse dentro de la condición principal. Hablamos
por lo tanto de condiciones anidadas que tendrían una estructura del siguiente tipo:

IF condición THEN
Instrucción 1
Instrucción 2
...
ELSE
IF condición2 THEN
Instrucción A
Instrucción B
...
ELSE
Instrucción X
...
END IF
END IF

De este modo podríamos introducir tantas condiciones como queramos dentro de una
condición principal. En este tipo de estructuras es importante cerrar correctamente cada
uno de los IF con sus END IF correspondientes. De gran ayuda es la instrucción ELSE
IF que permite en una sola línea y sin necesidad de añadir un END IF introducir una
condición anidada.

Un ejemplo:

<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<%
Dim a,b
a=8
b=3
if a < b then
Response.Write("a es menor que b")
else
Response.Write("a no es menor que b")
end if
%>
</body>
</html>

En este ejemplo la condición no es verdadera por lo que se ejecuta la parte de código


correspondiente al else.

Sentencia select ... case

Con la sentencia select case podemos ejecutar unas u otras instrucciones dependiendo
del valor de una variable, en el ejemplo anterior, dependiendo del valor de la variable
posicion se ejecuta el bloque 1 cuando el valor es "arriba", el bloque 2 cuando el valor
es "abajo" y el bloque 3 si no es ninguno de los valores anteriores.

<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<%
Dim posicion
posicion = "arriba"

select case posicion


case "arriba" ' Bloque 1
Response.Write("La variable contiene")
Response.Write(" el valor arriba")
case "abajo" ' Bloque 2
Response.Write("La variable contiene")
Response.Write(" el valor abajo")
case else ' Bloque 3
Response.Write("La variable contiene otro valor")
Response.Write(" distinto de arriba y abajo")
end select
%>
</body>
</html>

Bucles

Podemos usar los siguientes:

For…Next

En muchas ocasiones resulta necesario el ejecutar un conjunto de instrucciones un


número definido de veces. Esto puede ser llevado a cabo a partir de la instrucción
FOR/NEXT.

La estructura clásica:

FOR contador=número inicial TO número final STEP incremento


Instrucción 1
Instrucción 2
...
NEXT

A partir de este tipo de estructuras ejecutamos las instrucciones contenidas entre el FOR
y el NEXT un cierto número de veces definido por el número inicial, final y el
incremento. El incremento resulta de 1 por defecto.

<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
Inicio<BR>
<%
Dim i
for i=0 to 9
Response.Write("El valor de i es " & i & "<br>")
next
%>
Final<BR>
</body>
</html>

While…Wend

Estos bucles son un vestigio de los primeros tiempos de BASIC. Hoy día han sido
sustituidos por los bucles DO WHILE ... LOOP, cuyo funcionamiento es idéntico. Sin
embargo, los intérpretes actuales todavía los soportan como complemento, por aquellos
programadores acostumbrados al modelo antiguo. Su estructura general es la siguiente:

WHILE (condición)
BLOQUE DE SENTENCIAS
WEND

<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
Inicio<BR>
<%
Dim i
i=0
while i<10
Response.Write("El valor de i es " & i & "<br>")
i=i+1
wend
%>
Final<BR>
</body>
</html>

Do While…Loop

Otra forma de realizar este tipo de secuencias bucle es a partir de la instrucción DO


WHILE. En este caso lo que especificamos para fijar la extensión del bucle no es el
número de vueltas sino el que se cumpla o no una condición. La estructura de este tipo
de bucles es análoga a la de los bucles FOR/NEXT:

DO WHILE condición
Instrucción 1
Instrucción 2
...
LOOP

El bucle se dará mientras la condición propuesta siga siendo válida.

Como se verá en ejemplos posteriores, este tipo de bucles resulta muy práctico para la
lectura de bases de datos.

Todo este tipo de controladores de flujo (condiciones y bucles) pueden ser matizados y
optimizados a partir del uso de operadores lógicos. Así, podemos exigir que sean dos las
condiciones que se den para llevar a cabo un conjunto de instrucciones:

IF condición 1 AND condición 2 THEN ...

También podemos requerir que sea una de las dos:

IF condición 1 OR condición 2 THEN...

Del mismo modo, es posible exigir que la condición de un bucle DO sea la inversa a la
enunciada:

DO WHILE NOT condición

He aquí, en conclusión, un conjunto de recursos básicos para controlar el desarrollo de


programas. Su utilidad resultará más que patente y su uso irá haciéndose intuitivo a
medida que nos familiaricemos con el lenguaje.

<HTML>
<HEAD>
<TITLE>Prueba de DO WHILE ... LOOP</TITLE>
</HEAD>
<BODY>
<%
i = 0
DO WHILE i = 5
' Ejecuta mientras i no sea igual a 5
Response.Write i
i = i + 1
LOOP
%>
</BODY>
</HTML>

Do Until…Loop

Este bucle funciona de manera muy similar al anterior, con la salvedad de que el
BLOQUE DE INSTRUCCIONES se ejecuta hasta que (UNTIL) se cumple la
condición. Cuando se cumple la condición deja de ejecutarse el bucle. La estructura
general es la siguiente:

DO UNTIL (condición)
BLOQUE DE INSTRUCCIONES
LOOP
Como siempre, la mejor manera de entender el funcionamiento es con un ejemplo.

<HTML>
<HEAD>
<TITLE>Prueba de DO UNTIL ... LOOP</TITLE>
</HEAD>
<BODY>
<%
i = 0
DO UNTIL i = 5
' Ejecuta hasta que i sea igual a 5
Response.Write i
i = i + 1
LOOP
%>
</BODY>
</HTML>

Rompiendo Bucles

En ocasiones es necesario interrumpir de manera forzada la ejecución de un bucle, por


ejemplo si se produce una situación que aconseje la continuación del programa
ignorando el resto del proceso del bucle. Para ello se emplea la instrucción EXIT. Esta
instrucción presenta tres formatos distintos, según el tipo de bucle en que se
implemente. Si queremos causar la ruptura de un bucle FOR... NEXT, utilizaremos
EXIT FOR. Para romper un bucle DO WHILE ... LOOP o un bucle DO UNTIL ...
LOOP utilizaremos la instrucción EXIT DO. Si lo que queremos es romper un bucle
WHILE ... WEND usaremos EXIT WHILE.

Objetos

El ASP es un lenguaje diseñado para la creación de aplicaciones en internet. Esto quiere


decir que existen toda una serie de tareas bastante corrientes a las cuales debe dar un
tratamiento fácil y eficaz. Nos referimos por ejemplo al envío de e-mails, acceso a
archivos, gestión de variables del cliente o servidor como pueden ser su IP o la lengua
aceptada...

El lenguaje VB propiamente dicho no da una solución fácil y directa a estas tareas sino
que invoca a los denominados objetos que no son más que unos módulos incorporados
al lenguaje que permiten el desarrollo de tareas específicas. Estos objetos realizan de
una manera sencilla toda una serie de acciones de una complejidad relevante. A partir
de una llamada al objeto este realizará la tarea requerida. En cierta forma, estos objetos
nos ahorran el tener que hacer largos programas para operaciones sencillas y habituales.

Algunos de estos objetos están incorporados en el propio ASP, otros deben de ser
incorporados como si se tratase de componentes accesorios. Por supuesto, no podríamos
ejecutar correctamente un script en el cual tuviésemos que llamar a un objeto que no
estuviese integrado en el servidor. Este tipo de "plug-in" son generalmente comprados
por el servidor a empresas que los desarrollan.

Como todo objeto del mundo real, los objetos del mundo informático tienen sus
propiedades que los definen, realizan un cierto numero de funciones o métodos y son
capaces de responder de una forma definible ante ciertos eventos.
Dado el nivel de esta obra, la descripción de la totalidad de objetos con sus métodos y
propiedades resulta ciertamente fuera de lugar. Nos contentaremos pues con ir
describiendo los más frecuentemente utilizados y ejemplificarlos de la manera más
práctica dejando la enumeración exhaustiva en forma de apéndice.

Objeto REQUEST

Este objeto encapsula la información que el cliente envia a un servidor dentro del
ambito de un intercambio a travez de Internet. Si bien el objeto REQUEST es propio de
IIS y ASP, la información que el navegador envia al servidor no lo es. El formato de
esta información existe desde hace tiempo y responde a lo determinado por el W3C bajo
la especificación CGI (lo vimos anteriormente).

El objeto Request nos devuelve informaciones del usuario que han sido enviadas por
medio de formularios, por URL o a partir de cookies. También nos informa sobre el
estado de ciertas variables del sistema como pueden ser la lengua utilizada por el
navegador, el número IP del cliente...

Transferir variables por URL Las dos páginas serían así:

Para pasar las variables de una página a <HTML>


otra lo podemos hacer introduciendo <HEAD>
<TITLE>Página origen.asp</TITLE>
dicha variable en la dirección URL de
</HEAD>
la página destino dentro del enlace
hipertexto. La sintaxis sería la <BODY>
siguiente:
<a href="destino.asp?saludo=hola&texto=Esto
<a es una variable texto">Paso variables saludo y
href="destino.asp?variable1=valor1&v texto a la página destino.asp</a>
ariable2=valor2&..."></a>
</BODY>
</HTML>
Para recoger la variable en la página
destino lo hacemos por medio del
objeto Request con el método <HTML>
Querystring: <HEAD>
<TITLE>destino.asp</TITLE>
Request.querystring("variable1") </HEAD>
Request.querystring("variable2")
<BODY>

Variable saludo: <%Response.Write


Request.Querystring("saludo")%><br>

Variable texto: <%Response.Write


Request.Querystring("texto")%><br>

</BODY>
</HTML>

Transferir variables por formulario


El proceso es similar al explicado para las URLs. Primeramente, presentamos una
primera página con el formulario a rellenar y las variables son recogidas en una segunda
página que las procesa:

<HTML>
<HEAD>
<TITLE>formulario.asp</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="destino2.asp">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Apellidos<br>
<INPUT TYPE="TEXT" NAME="apellidos"><br>
<INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>

<HTML>
<HEAD>
<TITLE>destino2.asp</TITLE>
</HEAD>
<BODY>
Variable nombre: <%=Request.Form("nombre")%><br>
Variable apellidos: <%=Request.Form("apellidos")%>
</BODY>
</HTML>

Notemos que cambiando la propiedad del objeto obtenenos datos de diferentes formas.
Vimos que con REQUEST.QueryString obtenemos datos de una URL y con
REQUEST.Form de un formulario, pero podriamos utilizar el objeto sin propiedad y de
ese modo tomaria los datos de la forma que vengan.

Propiedades, métodos y colecciones del objeto REQUEST

Nombre Elemento Descripción


TotalBytes Propiedad Informa sobre el numero de bytes enviados
por el cliente en el cuerpo del mensaje.
BinaryRead Metodo Lee el cuerpo de un mensaje http byte por
byte.
ClientCertificate Colección Contiene información de seguridad
Cookies Colección Contiene información de cookies
Form Colección Contiene información enviada a travez de
un formulario.
QueryString Colección Contiene los pares nombre=valor en una
cadena de consulta http.
ServerVariables Colección Contiene el conjunto de variables de un
entorno de servidor.

Uso de ServerVariables

La coleccion ServerVariables nos da acceso a variables de entorno del servidor y del


cliente.

Esta colección contiene una gran cantidad de datos, algunos de ellos tan
interesantes como la dirección IP del visitante, del servidor, el nombre del servidor,
etc
ServerVariables forma parte del objeto Request, por lo cual para consultar estas
variables recurriremos a el.

Un ejemplo:

<%
Response.Write (Request.ServerVariables(“REMOTE_ADDR”))
%>

Con estas lineas imprimimos el IP del cliente que esta visitando la pagina.

Ejecutando el siguiente codigo obtendremos un listado de todos los valores de la


colección.

servervar.asp
<html><body>
<table border=1>
<%for each name in request.servervariables%>
<tr><td>
<%=name%>
</td><td>
<%=request.servervariables(name)%>
</td></tr>
<%next%>
</table></body></html>

Objeto RESPONSE

Este objeto encapsula la informacion que el script envia al navegador. En la siguiente


tabla vemos todas las propiedades, metodos y colecciones disponibles para este objeto.

Nombre Elemento Descripción


Buffer Propiedad Le asignamos el valor TRUE si queremos
que el servidor procese todo el script antes
de enviar la información al cliente
CacheControl Propiedad Se usa para trabajar con servidores Proxy.
Charset Propiedad Permite saber al cliente que tipo de
alfabeto usa el servidor.
ContentType Propiedad Permite saber el tipo/subtipo http de la
información que le envia el servidor.
Expires Propiedad Es la cantidad de tiempo, en minutos, que
un cliente puede mantener una pagina en
su cache.
ExpiresAbsolute Propiedad Es la fecha y la hora de expiracion de una
pagina en la cache.
IsClientConnected Propiedad Es TRUE, si el cliente aun esta conectado
con el servidor.
PICS Propiedad Es una cadena que indica el valor PICS.
Status Propiedad Devuelve el numero de codigo de estado
http.
AddHeader Metodo Agrega una variable al encabezado http.
AppendLog Metodo Envia información al registro del servidor
web.
BinaryWrite Metodo Envia bytes al cliente, en vez de caracteres.
Clear Metodo Vacia el buffer
End Metodo Termina el procesamiento del script
Flush Metodo Envia la salida del script inmediatamente,
en vez de mantenerla en el buffer
Redirect Metodo Envia la salida a otro sitio web
Write Metodo Envia una cadena a la salida del navegador
Cookies Colección Lee o escribe información en cookies en el
cliente.

Como podemos ver, el objeto RESPONSE tiene muchas propiedades y metodos, no


vamos a hacer una descripción de todos y nos abocaremos a los mas importantes.

Uso del metodo WRITE

Este es el metodo mas utilizado del objeto RESPONSE, mediante este metodo enviamos
cadenas al cliente que se imprimiran en la pantalla. Por ejemplo:

<%
Response.Write (“Hola, estoy imprimiendo en pantalla”)
%>

Tambien podemos enviar dentro de la cadena codigo HTML y sera representando por el
navegador, por ejemplo:

<%
Response.Write (“<b>Hola, estoy imprimiendo en pantalla</b>”)
%>

Con lo cual estamos mostrando el texto en negrita.

Si vamos a imprimir solo una linea tenemos la posibilidad de usar un truquito para no
tener que escribir el objeto y su propiedad completa, de este modo:

<%= (“<b>Hola, estoy imprimiendo en pantalla</b>”)%>

El signo “=” reemplaza a RESPONSE.Write, solo cuando se trata de una sola linea de
codigo.

Imprimiendo valores de funciones de VBScript

Podemos usar valores devueltos por una funcion como parámetro de salida del metodo
Write del objeto RESPONSE. Por ejemplo, para devolver la hora actual, podemos
utilizar la funcion Time() de VBScript de este modo:

<%
Response.Write Time()
%>

Veremos la hora actual en la pantalla.


Uso del metodo REDIRECT

El método Redirect permite al explorador que se conecte con una dirección URL
diferente. (Nota: debemos usar este método antes de enviar cualquier resultado al
navegador cliente, en caso contrario produce un error).

Ejemplo:

<%response.redirect "http://www.cervantes.edu.ar"%>

El navegador se dirigirá a la URL especificada.

Objeto Session

Este objeto permite almacenar la información necesaria para una sesion de usuario en
nuestro sistema. Las variables almacenadas con este objeto no se pierden mientras el
usuario se mantenga en el sitio y el servidor no vacie la varible pasado el tiempo
definido para las varibles de session.

Sintaxis:

Session(“nombre_variable”) = valor

Ejemplo:

<%
Session(“usuario”) = “Nombre”
Response.Write Session(“usuario”)
%>

Si en algun momento deseamos vaciar la variable de session deberiamos utilizar el


metodo Abandon, de este modo:

<%
Session.Abandon
%>

Acceso a Datos

Uno de los aspectos mas poderosos de ASP es la capacidad de trabajar con información
almacenada en bases de datos, para ello los servidores que ejecutan ASP utilizan una
tecnología llamada ADO (ActiveX Data Objects). Esta nos hace muy sencillo el acceso
a datos y nos permite trabajar con muchas diferentes bases de datos.

ADO

ADO es una colección de objetos que permite a las aplicaciones comunicarse con las
bases de datos de una forma consistente. Cada objeto en el modelo ADO representa un
elemento en particular que se usa cuando un programa trabaja con datos.
Objeto Connection: representa el vinculo con la base de datos que estamos utilizando.

Objeto RecordSet: representa los datos que recuperamos de la base de datos.

Objeto Command: representa instrucciones que podemos utilizar para interactuar con la
base de datos.

Cada objeto tiene sus propiedades y metodos.

Uso de ADO, ODBC y OLE DB

Antes de meternos en la programación, necesitamos entender la relacion que une a ADO


y OLE DB. Entender OLE DB es importante porque cuando configuremos el objeto
Connection para enlazarnos a una base de datos tendremos que declarar un proveedor
del cual obtener la información

OLE DB es una tecnología que mejora ODBC (Open Database Connectivity) la cual
permite que las bases de datos de diferentes fabricantes trabajen juntas. Es un interprete
que hace que todas las bases de datos parezcan iguales entre si y nos permite trabajar en
cada programa del mismo modo sin reparar en el funcionamiento interno de cada una.

En el siguiente cuadro lo podemos ver gráficamente:

La ventaja de trabajar con


ODBC es que solo
necesitamos aprender una
metodología para trabajar
con muchas bases de datos.
Prácticamente todos los Oracle MS Access DB2
fabricantes de bases de datos
proveen lo que se llaman
“Drivers” que permiten
instalarse para utilizar las
bases con ODBC Hago la consulta
la BD ODBC

Uso del administrador de origenes de datos ODBC de Windows

Para crear este vínculo, nos servimos de los conectores ODBC (Open DataBase
Connectivity) los cuales establecen el enlace con la base de datos.
El primer paso para crear esta conexión es ir al panel de configuración y abrir el icono
ODBC 32bits. Dentro de él, deberemos crear un DSN (Data Source Name) de tipo
sistema o usuario. Para ello nos colocamos en la solapa correspondiente (DSN sistema o
DSN usuario) y seleccionamos "Añadir". A continuación se nos pedirá seleccionar los
controladores de la aplicación que hemos utilizado para crear la base de datos, el
nombre que le queremos asignar (aquel que empleemos en nuestros scripts) y el camino
para encontrarla en el disco duro.

Esta DSN permite en realidad definir la base de datos que será interrogada sin necesidad
de pasar por la aplicación que hayamos utilizado para construirla, es decir, con simples
llamadas y órdenes desde nuestros archivos ASP podremos obtener los datos que
buscamos sin necesidad de ejecutar el Access o el MySQL los cuales, evidentemente,
no tendrán por qué encontrarse en el servidor donde trabajemos.

Uso de proveedores OLE DB

OLE DB interactua con los datos a travez de una capa de software llamada proveedor
OLE DB. Este se parece a un controlador ODBC, ya que provee un mecanismo para
traducir estructuras de datos a algun estandar comun, ampliamente soportado. Los
fabricantes de bases de datos publican proveedores OLE DB, asi como controladores
ODBC. Veamos una lista de los mas comunes.

Base de Datos Cadena del proveedor


ODBC Provider=MSDASQL
Microsoft Index Server Provider=MSIDXS
Microsoft Active Directory Provider=ADSDSOObject
Microsoft Access Provider=Microsoft.Jet.OLEDB.4.0
Microsoft SQL Server Provider=SQLOLEDB
Oracle Provider=MSDAORA

Cadenas de conexion

Para obtener un objeto debemos usar el metodo Open y asignarle un valor de cadena de
conexión valido.
Las cadenas de conexión proveen a un objeto Connection la información que
necesitamos para vincularnos con una base de datos. Esta compuesta por una seria de
pares Nombre=Valor, cada uno de estos pares esta separado por un punto y coma. Por
ejemplo:

Str = “Provider=MSDASQL; Data Source=Prueba; User ID=;Password=”

En esta cadena definimos el proveedor de base de datos con PROVIDER, la base de


datos en DATA SOURCE (en este caso lo hacemos con un DSN llamado Prueba), el
usuario de la base de datos y contraseña.

Cadenas de Conexión DSN-Less

Existe un tipo de conexión a bases de datos llamado DSN-Less, este tipo de conexión
es más óptimo que las conexiones a través de DSN ya que conectan la capa OLE DB
directamente con el Provider propio de la base de datos, y generalmente mejoran la
concurrencia a las bases de datos (conexión simultánea de varios usuarios).

Puede utilizar todas las conexiones DSN-Less que desee desde sus scripts ASP.
Además, de esta manera podrá probar y poner on-line sus aplicaciones más
rápidamente, ya que no tendrá que pedirnos que configuremos los DSNs en los
servidores.

En el siguiente ejemplo vemos una cadena de conexión DSN-Less para la base de datos
Access.

Str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User


Id=admin;Password=;"

Con esta cadena podemos conectarnos directamente a la base de datos sin necesidad de
crear un DSN en el servidor. Por lo tanto es muy práctico para quienes dispongan de sun
servicio de Hosting compartido.

Uso de CreateObject() para crear objetos de ADO

Mediante CreateObject() creamos una instancia de un componente ActiveX en el


servidor, su sintaxis seria:

Server.CreateObject (IdProg)

Donde IdProg es el identificativo del tipo de componente que queremos crear, nos
viene suministrado por el fabricante del componente. Por ejemplo:

<% Set Mitabla = CreateObject("ADODB.Recordset") %>

Uso del objeto Connection

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.

Ejemplo:

Dim oConn
Dim StrCon

oConn = CreateObject(“ADODB.Connection”)

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &


Server.MapPath("db/prueba.mdb")

Aquí creamos un un objeto de connexion llamado oConn y lo abrimos con la función


Open utilizando una cadena de conexión DSN-Less para bases de datos acces. Notemos
que usamos Server.MapPath, esta sentencia le indica la posición física actual del
archivo asp que estamos creando, de este modo podemos mover el sitio a cualquier
carpeta sin tener que modificar la cadena de conexión.

Uso del Objeto RecordSet

Ya sabemos como crear una conexión y abrirla, ahora vamos a utilizar el objeto
RecordSet para comenzar a trabajar con la base de datos propiamente dicha.

Un objeto RecordSet es una colección de registros provenientes de una base de datos, la


forma de solicitar datos es ejecutando una sentencia SQL (VER ANEXO 1) la cual nos
devolvera información para completar el recordset.

Ejemplo:

Set RS = CreateObject("ADODB.RecordSet")

ConSQL = "SELECT * FROM prueba"

RS.Open SQL, oConn

Aqui abrimos un recordset que recupera informacion de la tabla prueba que pertenece a
la base de datos Prueba.mdb que habiamos abierto anteriormente con la conección
oConn, por eso le indicamos al recordset RS mediante la sentencia Open que ejecute la
consulta SQL que tipeamos en la variable ConSQL.

Acceso a los datos de un recordset

La información en un objeto RecordSet esta organizada en campos. Para acceder a un


determinado campo en un registro dentro del recordset, se usa la siguiente sintaxis:
RS(“NombreDelCampo”)

RS es el nombre del objeto RecordSet y NombreDelCampo es el campo dentro de la


base de datos que queremos mostrar.

Si quisieramos acceder al campo “ID” de objeto RS y guardarlo en la variable Str


escribiríamos:

Str = RS(“ID”)

Trabajando con las tablas

En el siguiente ejemplo veremos una síntesis de lo que hemos aprendido hasta el


momento, abrimos una conexión, luego ejecutamos una consulta SQL en un recordset y
finalmente mostramos los datos usando el bucle DO… LOOP.

<%
Dim oConn
Dim StrCon
Dim RS
Dim ConSQL

oConn = CreateObject(“ADODB.Connection”)

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &


Server.MapPath("db/prueba.mdb")

Set RS = CreateObject("ADODB.RecordSet")
ConSQL = "SELECT * FROM prueba"
RS.Open SQL, oConn

Do While Not RS.EOF

Response.Write RS ("nombre")

RS.MoveNext
Loop
%>

En el ejemplo recorremos el objeto RS e imprimimos el campo “nombre” hasta el final


del RecordSet (EOF – Final de Archivo) y utilizamos en metodo MoveNext para mover
la pocision del registro actual al próximo.

Uso del Objeto Command

Para agragar datos a una base de datos se puede utilizar el objeto Command de ADO.
Este objeto representan las instrucciones que queremos ejecutar sobre la base de datos,
podemos agregar, editar o borrar información utilizando consultas SQL.
El igual que con los objetos anteriores creamos el objeto Command utilizando
Server.CreateObject, de la siguiente manera:

Server.CreateObject(“ADODB.Command”)

Para ingresar a datos a la base de datos utilizaríamos la cláusula INSERT de SQL, en el


siguiente ejemplo podemos verlo:

<%
Set cmd = CreateObject(“ADODB.Command”)
SQL = “INSERT INTO prueba (nombre, apellido) VALUES (‘pedro’, ‘gomez’)”
cmd.ActiveConnection = oConn
cmd.Execute
%>

Lo que hicimos fue crear nuestro objeto Command, luego llenamos una variable
llamada SQL con la instruccion SQL para agregar datos en la tabla prueba. Utilizamos
dos metodos del objeto Command.
Con cmd.ActiveConnection definimos la conexión a base de datos existente,
previemante deberiamos abrir la base de datos con el objeto Connection, y con
cmd.Execute ejecutamos la consulta SQL y cargamos los datos.

Editando y Borrando

En el ejemplo anterior utilizamos el objeto Command para agregar datos en nuestra base
de datos, ahora veremos dos ejemplos para editar y borrar datos.

<%
Set cmd = CreateObject(“ADODB.Command”)
SQL = “UPDATE prueba SET nombre = ‘pedro’, apellido = ‘gomez’”
cmd.ActiveConnection = oConn
cmd.Execute
%>

<%
Set cmd = CreateObject(“ADODB.Command”)
SQL = “DELETE * FROM prueba WHERE nombre = ‘pedro’”
cmd.ActiveConnection = oConn
cmd.Execute
%>

Como notaran solo cambiamos la consulta SQL para realizar diferentes tareas, por eso
es muy importante conocer bien este lenguaje de consultas.

Ejecutando consultas sin usar el objeto Command

Anteriormente veiamos como el objeto Command nos permitia ejecutar consultas y


realizar cambios en la base de datos. Pero existe una forma de hacer esta misma tarea
sin crear un objeto Command y utilizando el objeto Connection que tengamos abierto,
es totalmente identico usar ambas formas. Por ejemplo, veamos la direferencia de la
carga de datos ejecutando una consulta SQL con el objeto Command y sin el, notemos
que nuestro objeto Connetion se llama oConn y ya esta abierto con anterioridad.

<% <%
Set cmd = SQL = “INSERT INTO prueba (nombre,
CreateObject(“ADODB.Command”) apellido) VALUES (‘pedro’, ‘gomez’)”
SQL = “INSERT INTO prueba oConn.Execute (SQL)
(nombre, apellido) VALUES (‘pedro’, %>
‘gomez’)”
cmd.ActiveConnection = oConn
cmd.Execute
%>

La diferencia es bastante clara, no nesecitamos crear ningun objeto y podemos usar el


metodo Execute directamente con el objeto Connection para ejecutar la consulta, es una
forma de ahorrar tiempo.

También podría gustarte