Introducción al Código ASP y Funciones
Introducción al Código ASP y Funciones
Para identificar las marcas de código ASP se utilizan los tags <% (como marca de inicio del código) y %> (como
marca final del código).
Todas las variables de una páginas ASP son de tipo Variant por lo que no debe especificarse entre Integer, string u
otro tipo de objeto.
Su declaración es opcional aunque su práctica es una buena costumbre ya que evita errores y facilita la lectura del
código. En la declaración se utiliza la palabra reservada "Dim" pudiéndose anidar varias declaraciones mediante
el separador ",".
Para forzar a que se declaren todas las variables de una página debe introducirse el código "Option Explicit"
Option explicit
' declaración de 3 variables
Dim nombre, fecha_nacimiento, edad
'asignación de valores
nombre = "Alex Morales"
fecha_nacimiento = "12/03/69"
edad = 31
%>
Los objetos son programas compilados e instalados en el servidor y que han sido programados para realizar un
conjunto de operaciones fácilmente accesibles por otros programas y que reciben el nombre de Métodos.
Debido a que el resultado de procesar una página ASP es una página HTML, el objeto Response es probablemente
el más utilizado en las páginas ASP ya que permite la comunicación entre el servidor y el cliente.
Veamos ahora el método Write, mediante el cual enviaremos información al navegador. Entre esta información
podremos incluir el valor de las variables y tags html que condicionan el aspecto de la página.
1
Utilización del objeto Response : Sirve para sacar algo en pantalla
<%@ LANGUAGE="VBSCRIPT" %>
<HTML>
<BODY>
<%
Dim nombre
nombre = "Alex Morales"
' Imprime el nombre de la variable
' Concatenar strings utilizando VBSCRIPT
Response.Write("<h1>Mi nombre es: <b>" & nombre & "</b></h1>")
' Imprime la cadena de texto entre comillas.
' El mismo resultado que Response.Write utilizando el signo igual
(="Mi primera página ASP")
%>
</BODY>
</HTML>
Utilización del objeto Response-redirect: Sirve para redireccionar una pagina hacia otra:
Ojo!: Siempre debe utilizarse antes de los tags Html, ya que de otra forma dará error.
<%
Response.Redirect "pagina2.asp"
%>
Utilización del objeto Response.Cookie: Sirve para "plantar" una cookie en la PC del cliente:
<%
Response.Cookies("nombre") "Fabian"
Response.Cookies("edad") "18"
%>
Utilización del objeto Objeto Request.form: Es el encargado de tomar los datos, ya sea de un formulario o de otro
tipo de variables
procesa.asp
<%
' Como vimos anteriormente, declaramos variables
Option Explicit
Dim nombre, apellido
' Recogemos los datos del formulario y los guardamos
nombre=Request.Form("camponombre")
apellido=Request.Form("campoapellido")
%>
<html>
<head></head>
<body>
Datos que ingresaste:<br>
Nombre: <%=nombre%> <br>
Apellido: <%=apellido%> <br>
</body>
</html>
2
Utilización del objeto Objeto Request.QueryString: Este método se utiliza para pasar valores de una página hacia
otra a través de un link:
Pasa_parametros.html:
<HTML>
<HEAD>
</HEAD>
<BODY>
<AHREF="lee_parametros.asp?nombre=jose">click aca! </A>
</BODY>
</HTML>
Lee_parametros.asp:
<%
Response.Write (Request.QueryString("nombre") & "<br>")
%>
Utilización del objeto Objeto Request.Cookies: Con este método podemos recoger los datos almacenados en una
cookie, a la cual cargamos con algunos datos con el objeto Reponse.
Formulario.html:
<html>
<body>
<form action=”poner_cookie.asp” method=”post”>
Introduzca su nombre:<input type=text name=nombre value=””><br>
<input type=”submit” name=”boton” value=”aceptar”>
</form>
</body>
</html>
En otro momento el usuario entrara a la pagina principal por ejemplo, pero eso si ya tendra la cookie en su
disco duro, con lo que podremos reconocerle asi:
Utilización del objeto Objeto Session: Permite almacenar información necesaria para una sesión del usuario.
Las variables almacenadas con el objeto Session no se pierden al cambiar de página, sino que perduran hasta que
sean eliminadas por el servidor, o bien cuando se llame al método Abandon que cierra la sesión.
<%
session("nombre")="Fabian"
%>
De esta forma, almacenaremos dentro de la variable de sesión nombre la palabra Fabian.
También podemos, a partir de una variable de session, guardar la información en otra variable:
<%
nombre= session("nombre")
%>
Para destruir una variable session puede ocurrir dos cosas: 1º es que el usuario esté 20 minutos sin actividad
dentro del sitio, y la otra es llamar al método Abandon:
3
<% session.Abandon %>
Utilización del objeto Application: 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.
Lock (Asegura que solo un usuario pueda modificar el objeto Application a la vez).
<%
Application.Lock
%>
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).
<%
Application.UnLock
%>
Ejemplo:
<%
Application.Lock
Application("visitas") = Application("visitas")+1
Application.Unlock
%>
Utilización del objeto filesystemobject: Este objeto se utiliza para facilitar el acceso al sistema de archivos del
servidor.
El siguiente código muestra el uso del componente FSO, en el que destacan las operaciones:
Instanciación del objeto de acceso a archivos
Abrir el archivo deseado en el modo deseado (lectura, escritura)
Manipular/visualizar el contenido del archivo
Cerrar los objetos utilizados
Lectura (1) Escritura (2)
<%
Const fsoLectura = 1
Dim objFSO
'Instanciación del objeto FSO
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile("C:\ejemplo.txt", fsoLectura)
'Visualiza en el navegador el contendido del archivo de texto
Response.Write objTextStream.ReadAll
'Cerrar e inicializar los objetos
objTextStream.Close
Set objTextStream = Nothing
4
Set objFSO = Nothing %>
Antes de abrir el archivo es conveniente asegurarse de que existe, para ello puede utilizar la función FileExists
disponible en el juego de funciones del objeto FSO.
<%
If objFSO.FileExists("c:\ejemplo.txt") then
'El archivo existe --> instrucciones de lectura
else
'El archivo no existe --> Mensaje de error
end if
%>
Para leer el contenido del archivo de texto deberá utilizar uno de los siguientes métodos del objeto TextStream.
Para escribir en un archivo de texto deberá utilizar uno de los siguientes métodos del objeto TextStream.
Write(cadena): escribe la cadena en el archivo de texto
WriteLine(cadena): como Write pero añade un retorno o caracter "fin de linea"
WriteBlankLines(x): escribe x líneas en blanco
<%
'Ejemplo de lectura
Ejemplo de lectura
<%
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Dim objTextStream
If objFSO.FileExists(strNombreArchivo) then
Set objTextStream = objFSO.OpenTextFile(strNombreArchivo, fsoLectura)
Response.Write "El contenido del archivo es:<br>"
Do while not objTextStream.EOF
Response.Write objTextStream.ReadLine
loop
objTextStream.Close
Set objTextStream = Nothing
Else
Response.Write strNombreArchivo & " No se ha encontrado"
End If
Set objFSO = Nothing
%>
5
Utilización del objeto cdonts: (Collaboration Data Objects for NT) es un componente que permite enviar
mensajes de correo electrónico desde las páginas ASP.
Como su nombre indica está disponible en servidores NT y en particular a partir de la versión 4.0. ya que para
versiones anteriores se utilizaba el componente SendMail
Entre algunas de sus características más importantes está la posibilidad de enviar mensajes en formato de texto o
bien HTML. Para utilizar CDO se requiere que esté instalado y operativo un servicio SMTP (Simple Mail
Transfer Protocol) ya sea en la propio servidor o en otro servidor de la red local. SMTP es instalado por defecto
con IIS 4.0 y puede aceder a sus propiedades desde la cónsola de administración de IIS.
Ejemplo
Página de construcción del mensaje
<FORM ACTION="enviar.asp" METHOD="POST">
<TABLE>
<TR>
<TD ALIGN="RIGHT">Para:</TD>
<TD><INPUT TYPE="TEXT" SIZE="30" NAME="destinatario"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT">De:</TD>
<TD><INPUT TYPE="TEXT" SIZE="30" NAME="remitente"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT" NOWRAP>Asunto:</TD>
<TD ALIGN="LEFT"><INPUT TYPE="TEXT" SIZE="67" NAME="asunto"></TD>
</TR>
</TABLE>
<TABLE>
<TR><TD VALIGN="TOP" ALIGN="RIGHT" NOWRAP>Texto del mensaje:</TD>
6
<TD ALIGN="LEFT" NOWRAP>
<TEXTAREA WRAP="OFF" ROWS="7" COLS="50" NAME="cuerpo"></TEXTAREA></TD>
</TR>
</TABLE>
<INPUT TYPE="RESET" NAME="Cancelar" VALUE="Borrar">
<INPUT TYPE="SUBMIT" NAME="Enviar" VALUE="Enviar">
</FORM>
<%
Set mailobj = Server.CreateObject("CDONTS.NewMail")
mailobj.mailFormat = 0
mailobj.bodyFormat = 0
mailobj.from = request.form("remitente")
mailobj.to = request.form("destinatario")
mailobj.subject = request.form("asunto")
mailobj.body = request.form("cuerpo")
mailobj.send
%>
'logoff
Correo.logoff
Set Correo = nothing
%>
7
Objetos para acceder a bases de datos:
Pueden utilizarse dos sistemas de conexión a Base de Datos:
Mediante DSN
Sin DSN
DSN
Este sistema consiste en definir un identificador de la conexión mediante el driver ODBC accesible desde el Panel
de Control. Posteriormente, desde las páginas ASP, se practica el acceso mediante un string de conexión que incluye
el identificador antes mencionado.
Para crear un DSN en Windows, haz clic en el botón Inicio selecciona la opción Panel de Control del menú
Configuración. En la ventana del Panel de Control selecciona Fuentes de Datos ODBC y accede a la pestaña DSN
de Sistema. Selecciona la base de datos que quieres añadir y define un nombre a la conexión y la localización física
de la base de datos.
Sin DSN
Este sistema requiere almacenar directamente el archivo de la BD (habitualmente de Access) en un directorio
del servidor. De este modo, en la conexión se utilizará un String un poco más complejo ya que deben
identificarse tanto el driver como el directorio físico completo de la base de datos.
'Sin DNS
objConn.ConnectionString = "DBQ=C:\mis documentos\program.mdb;DRIVER={MS
Access (*.mdb)}"
'Abrir la conexión
objConn.Open
%>
Acceso a los datos:
A continuación, practicará las instrucciones para que desde la página ASP pueda acceder a la información de la base
de datos y mostrarla en la ventana del navegador del usuario, para realizar esta operación utilizaremos el objeto
ADODB.Recordset.
Instrucciones de acceso a los datos
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=gestion"
Cerrar conexión
<%
'Cerrar el objeto Recordset
objRS.Close
'Eliminar el objeto Recordset
Set objRS = Nothing
'Cerrar el objeto de la conexión
objConn.Close
'Eliminar el objeto de la conexión
Set objConn = Nothing
%>
9
10
11
Recordemos que actualmente un Recordset consiste en un array bidimesional de objetos campo. En el modelo ADO,
estos objetos campo son los que contienen los datos, por tanto cada objeto campo tiene un tipo, un tamaño y un
valor. Es importante estudiar, antes de hacer una base de datos que tipos de campos vamos a necesitar debido a que
este apartado esta muy ligado al resultado del diseño de una Base de Datos.
ADOVBS.INC
ADOVBS.INC es un archivo que se incluye con el servidor Internet Information Server y en el que se definen
todas aquellas constantes utilizadas con objetos del ADO.
La inclusión de archivos es muy aconsejable para realizar código legible y rehutilizable dos características
imprescindibles en páginas de acceso a datos. Para ello se utiliza la instrucción include virtual que pertenece al juego
de instrucciones del protocolo HTTP y cuya sintaxis es la siguiente:
<%
<!-- #include virtual="/adovbs.inc" -->
%>
Contenido del archivo Global.asa:
Evento: Inicio de Aplicación Evento: Fin de Aplicación
Evento: Inicio de Sesión
Evento Fin de Sesión Session.
<script Language="VBScript" RUNAT=Server>
Sub Application_OnEnd()
End Sub
Sub Application_OnStart()
Application("NumSesion") = 0
Application("NumVisitas") = 0
End Sub
Sub Session_OnEnd() Global.asa
Application("NumSesion") = Application("NumSesion") - 1
End Sub
Sub Session_OnStart()
Application("NumSesion") = Application("NumSesion") + 1
Application("NumVisitas") = Application("NumVisitas") + 1
End Sub
</script>
Página Inicio.asp
<%
Response.write "Eres el visitante número: & Application("NumSesion")
& " de " & Application("NumVisitas")
%>
12
Objeto w3upload
Usando el componente w3upload (tech.dimac.net) construiremos una solución para permitir a sus visitantes realizar
upload de sus archivos sin necesidad de utilizar FTP, ni escribir extensos códigos en ASP.
El componente W3 Upload, nos permite controlar que tipos de archivos pueden subirse, de que tamaño, en que
carpeta guardarlos y opciones más avanzadas como guardar archivos en bases de datos.
Desarrollaremos un ejemplo con dos páginas, un formulario para seleccionar el archivo, formulario.htm y una
página asp que realizará el proceso de upload, upload.asp
Formulario.htm
<form method="POST" action="upload.asp" enctype="multipart/form-data">
Carpeta : <input type="text" name="carpeta" size="20"><p>
Mensaje : <textarea rows="3" name="mensaje" cols="34"></textarea><p>
Archivo : <input type="file" name="archivo"><p>
<input type="submit" value="Enviar" name="Btnsubmit">
</form>
Por un lado, hay que indicar el tipo de codificación del formulario como "multipart/form_data", lo que habilitará
el envío de un archivo. En segundo lugar, aparece un campo de formulario de tipo "file", el cual mostrará un cuadro
de texto y un botón "examinar".
Upload.asp
En el server deberemos tener una carpeta con los permisos correspondientes. Por ejemplo c:\uploads. Dentro de esa
carpeta, los usuarios podrán crear sus subcarpetas de trabajo. El archivo adjunto y el mensaje enviado por el usuario
se guardaran allí. Comenzaremos creando una instancia del objeto:
<%
Set upload = Server.CreateObject("W3.Upload")
%>
De ahora en adelante, cuando hagamos referencia a los campos de formulario, lo haremos con el objeto upload y no
con response. Esto es muy importante ya que de lo contrario perderemos el archivo enviado.
Verificaremos si existe la carpeta de trabajo, y de no ser así la crearemos. Para esto utilizaremos el objeto
FileSystemObject.
<%
Set fsys = CreateObject("Scripting.FileSystemObject")
%>
"Limpiamos" la cadena ingresada por el usuario:
<%
carpeta=upload.form("carpeta")
carpeta=replace(carpeta,"."," ")
carpeta=replace(carpeta,">"," ")
carpeta=replace(carpeta,"<"," ")
carpeta=replace(carpeta,"/"," ")
carpeta=replace(carpeta,"\"," ")
carpeta=replace(carpeta,":"," ")
carpeta=replace(carpeta,"?"," ")
carpeta=replace(carpeta,"*"," ")
carpeta=replace(carpeta,chr(34)," ")
carpeta=replace(carpeta,"'"," ")
carpeta=trim(carpeta)
%>
13
Con FolderExists comprobamos si existe una carpeta; para crear una nueva usamos CreateFolder
<%
if not fsys.FolderExists("c:\uploads\" & carpeta) then
fs.CreateFolder "c:\uploads\" & carpeta
End if
%>
Ya tenemos la carpeta de trabajo, ahora guardaremos en un archivo de texto el mensaje ingresado por el usuario.
El nombre del archivo será del tipo: mensaje_151100_031108pm.txt (esto es mensaje_fecha_hora)
Guardar el archivo
<%
strmensaje=trim(upload.form("mensaje"))
if strmensaje<>"" then
fecha=replace(date,"/","")
hora=replace(time,":","")
hora=replace(hora,".","")
hora=replace(hora," ","")
archivotexto = "c:\uploads\" & carpeta & "\mensaje_" & fecha & "_"
archivotexto = archivotexto & hora & ".txt"
set a = fsys.CreateTextFile(archivotexto,true)
a.writeline(strmensaje)
a.close
set a=nothing
end if
%>
<%
Set elarchivo = upload.Form("archivo")
if elarchivo.size>4194000 then 'tamaño en bytes
response.write "El archivo es demasiado grande para ser enviado.<p>"
response.write "<a href='javascript:history.back()'>Regresar</a>"
exit sub
end if
if instr(elarchivo.filename,".")<>0 then
extension=mid(elarchivo.filename,instr(elarchivo.filename,"."))
if trim(extension)=".exe" or trim(extension)=".vbs" then
response.write "Imposible enviar ese tipo de archivo.<p>"
response.write "<a href='javascript:history.back()'>Regresar</a>"
exit sub
end if
end if
%>
14
Solo nos resta guardar el archivo en la carpeta de trabajo con el método SaveToFile
<%
if elarchivo.IsFile then
strsave="c:\produccion\" & carpeta & "\" & elarchivo.filename
elarchivo.SaveToFile(strsave)
end if
Mejorando el proceso
Hay varias cosas que Ud. puede hacer para mejorar la solución que construimos:
Combinar upload con el W3 JMail para construir una completa solución de correo con attachments.
Habilitar el envío de múltiples archivos (recorriendo la colección form)
evitar que los archivos se sobreescriban. cuando el cliente envía un archivo con un nombre ya
existente. Solo debe cambiar el método SaveToFile por SaveAsUniqueFile. Así, por ejemplo, se
guardará un archivo como file(1).txt si ya existe file.txt.
Server Variables
Las variables de Servidor (ServerVariables) almacenan información relativa al entorno de ejecución de una
aplicación ASP.
La sintaxis para acceder a estas variables es mediante el objeto Request indicando entre paréntesis el nombre de la
variable a obtener.
Una de las aplicaciones más utilizadas de estas variables es la obtención del identificador de usuario. Esta
información se conoce como el nombre de usuario que se introduce al hacer login en un equipo de un entorno de
red local.
Esta sería la sintaxis:
<%
Response.write Request.ServerVariables("LOGON USER")
%>
AUTH_TYPE: Indica el método de autentificación que utiliza el servidor para validar a un usuario
15
Ejemplo
El siguiente ejemplo utiliza un bucle para recorrer el objeto ServerVariables visualizando el nombre y el contenido
de todas ellas en una tabla de dos columnas
Visualización Server Variables
<TABLE>
<TR>
<TD><B>Server Variable</B></TD>
<TD><B>Value</B></TD>
</TR>
<% For Each name In Request.ServerVariables %>
<TR>
<TD> <%= name %> </TD>
<TD> <%= Request.ServerVariables(name) %> </TD>
</TR>
<% Next %>
</TABLE>
4. Funciones Importantes
Utilización de funciones de Fecha:
Ejemplo:
<%
' Declaramos variables
Option Explicit
Dim fecha, anio, mes, dia
' Guardamos la fecha actual dentro de fecha
fecha=Date()
' A partir de fecha, sacamos el dia, mes y año
anio=year(fecha)
mes=month(fecha)
dia=day(fecha)
%>
Dia: <%=dia%> <br>
Mes: <%=mes%> <br>
Año: <%=anio%> <br>
Resultado:
Dia: 8
Mes: 3
16
Año: 2002
17
FUNCION ABS
La función abs devuelve el valor absoluto de un numero pasado como argumento. Si este numero es 0 o no
existe, la funcion devuelve 0.
Ejemplo:
<%
numero=-123
valor_absoluto=abs(numero)
%>
FUNCION ARRAY
Ejemplo:
<%
nombre1=”Diego”
nombre2=”Mariana”
nombre3=”Oscar”
nombre4=”Toloba”
nombre5=”josema”
Lista_nombres=array(nombre1,nombre2,nombre3,nombre4,nombre5)
%>
Ojo! Recordar que los arrays aqi se empiezan direccionando con el 0
FUNCION ASC
Devuelve un valor entero que representa al carácter que pasas a la función como argumento.
Ojo!! Si se le ponen varios caracteres solo devuelve el primero.
FUNCION CHR
FUNCION CINT
18
Ojo!! Hay una limitacion en cuanto al rango del numero pasado como argumento. Dicho número no puede
ser menor de –32.768 ni mayor de 32.767. Si ese numero esta fuera de este rango, dara un problema de
Overflow. Para eso usar INT
19
FUNCION CREATE
Crea y devuelve una referencia a ActiveX automation object. A esta funcion como argumento le pasaremos
una clase definida.
FUNCION CSTR
FUNCION DATE
Devuelve un entero que contiene una parte especifica de una fecha/hora dadas.
FUNCION DATE
FUNCION
FUNCION
FUNCION
FUNCION
FUNCION IS ARRAY
FUNCION IS
FUNCION IS NUMERIC
FUNCION IS OBJECT
<%
set objeto= server.create.object(“adodb.connection”)
response.write isobject(objeto)
%>
Resultado = true
FUNCION
Devuelve un string creado, uniendo los elementos de varios arrays o de uno con una cadena.
<%
tabla_nombres = Array("Diego", "Oscar", "Josema")
response.write Join(tabla_nombres, "-")
%>
Resultado = Diego-Oscar-Josema
Ojo solo se pueden usar arrays de una dimensión!!!
FUNCION
22
FUNCION
FUNCION LEFT
FUNCION LEN
Devuelve el número de bytes que ocupa una cadena o la longitud de una cadena.
<% response.write len(“JOSEMA”) %>
Resultado = 6
FUNCION LTRIM
FUNCION MID
Devuelve un string, en el que un sbstring especifico ha sido reemplazado por otro substring un numero
determinado de veces.
FUNCION RGB
FUNCION RIGHT
23
<%response.write Right("josema", 4)%>
Resultado = sema.
24
FUNCION
<%
randomize
response.write Rnd
%>
Resultado = un numero aleatorio.
FUNCION
FUNCION RTRIM
FUNCION SPLIT
FUNCION SQR
COMPLETAR!!!!.
<% response.write Sqr(16) %>
Resultado = 4.
FUNCION STRCOMP
FUNCION
26
FUNCION ST
FUNCION TIME
<%
i = 123.45
response.write TypeName(i) & "<br>"
k = "hola"
response.write TypeName(k) & "<br>"
Set con = Server.CreateObject("ADODB.Connection")
response.write TypeName(con)
%>
Resultado = Double
String
Connection
FUNCION
<%
i = Array("lunes","martes","miercoles")
response.write UBound(i)
%>
Resultado = 2
FUNCION UCASE
<%
i = 243.432
response.write varType(i)
%>
Resultado = 5
Ojo, es muy facil.
FUNCION
FUNCION WEEKOFDAYNAME
<%response.write WeekDayName(WeekDay(Date))%>
Resultado = nombre del dia en el que ejecutes este script
Para facilitar la lectura del código en las páginas ASP, obtener rehusabilidad y en definitiva estructurar la aplicación,
ASP permite crear funciones y subrutinas (las primeras se distinguen de las segundas porque retornan un valor).
Si conoces Visual Basic observarás que el sistema es idéntico en las páginas ASP.
Ejemplo de Subrutina
<%
' Declaración de la subrutina Sumar
sub Sumar(valorA, valorB, res)
res = valorA + valorB
end sub
%>
<%
' Declaración de la Función Sumar
function Sumar(valorA, valorB)
Sumar = valorA + valorB
end function
%>
<%
Dim result
'Llamada a la Función Sumar
Response.write "El resultado de: 30 + 40 es " & Sumar (30,40)
28
%>
No existen demasiadas diferencias entre propiedades y metodos desde el punto de vista del
programador. Los metodos pueden tomar argumentos, las propiedades no.
Propiedades
Las propiedades no toman ningun tipo de argumento, y a menudo son usadas para describir el
estado de un objeto. Todas las propiedades devuelven un valor, sin embargo algunas son de solo
lectura, y otras son de lectura/escritura. Aqui tenemos un ejemplo de sintaxis, con VBScript, para
leer una propiedad.
value = object.property
object.property = value
Metodos
Los metodos pueden devolver valores y tomar argumentos. Se usan para iniciar un evento dentro
de un objeto, para inicializar valores o establecerlos (en este ultimo caso se deben pasar los
argumentos a inicializar o establecer)
Si un metodo devuelve un valor pero no toma ningun argumento la sintaxis será
value = object.method()
Los metodos que no devuelven valores no llevarán paréntesis. Un ejemplo de esto es el metodo
close, del objeto conexion:
Conn.Close
Argumentos
Los métodos pueden tomar uno o mas argumentos o no tomar.
Colecciones
Las colecciones son objetos que representan un conjunto de objetos. Todas las colecciones tienen
metodos predefinidos y propiedades. Todo objeto coleccion tiene un metodo item, una propiedad
count y un metodo _NewEnum.
Una coleccion puede tambien crear objetos del tipo coleccion. En otras palabras si un obeto
particular puede agruparse en un conjunto, ese objeto tendra un objeto coleccion que podra crear
una instancia de un objeto dentro del conjunto.
29
ASP Hosting
Once you’re ready with your pages, you’ll need a server to host your site.
Since Active Server Pages may be hosted only on Windows NT servers
(though the scene is fast changing with the advent of Chili!ASP,) ASP hosting
is usually costlier than regular hosting. (Maintaining NT costs more than
Linux-Apache)
But, of course, there are freebies – here is a pick of some of the free ASP
hosts around. They insert their ads on your pages, and that’s how they earn.
DomainDLX
http://www.domaindlx.com/
DomainDeluxe offer the following features to their members:
Microsoft Windows 2000
Internet Information Server 5.0
15 MB of Space
Additional 25 MB Free Server Disk Space Upgrade!
Unlimited Bandwidth
Unlimited 24/7 Account Access via FTP
6MB Free Web Based E-mail
Free Statistical Counter
Free Intranet
SSI (DHTML)
Active Server Pages Support (ASP 3.0)
AspEmail Component
Free Database Connectivity: MS Access databases
Brinkster
http://www.brinkster.com/
They offer two hosting plans, General & Premium.
General
Cost: FREE!
30 MBs of Web Space
ASP Support
ACTIVE SERVER PAGES 3.0
76
MS Access DB Support
Web Based File Manager
ADO & FileSystemObject
No Ads On Your Site
Premium Plan
$10.95/Setup $10.95/Month
All FREE Features PLUS
FTP To Upload Files
Your Own Domain Name
1 POP3 Email Address
2000 MB/Month Data Transfer
15+ 3rd Party Components
SoftCom Technologies
http://www.softcomca.com/
SoftCom offers four plans: Standard, Premium, Gold, and Platinum. The
Standard plan is an excellent start for those hosting a site for the first time. It
30
gives you all of the features you need to get your site up and running.
With one mailing list, 50 MB of disk storage, and 20 e-mail accounts you
have all the features to get your business on-line.
The Standard plan
For the monthly fee of $9.95 you will receive:
Free domain name registration / transfer
Microsoft® FrontPage® 2000 Extensions
50 MB disk space
Microsoft® Active Server Pages
20 e-mail accounts
Microsoft® Visual InterDev Support
Unlimited web traffic
Your own cgi-bin
Unlimited FTP updates and traffic
Audio/Video streaming
Unlimited e-mail forwarding
Account management console
1 mailing list
Monthly billing cycle with no minimum contract
Web site statistics
Access to raw web site log files
E-mail autoresponders
Redundant Internet connections
Dedicated IP address
Daily tape backups
Free scripts
UPS protection
ACTIVE SERVER PAGES 3.0
77
After you begin to build your web presence, you can consider purchasing
advanced services to enhance the functionality of your site. Compare the
standard hosting plan with other plans.
The Premium plan - improve your Web presence.
For $14.95 per month you will receive all the same features of the standard
plan plus an additional mailing list, an ODBC connection for a Microsoft
Access database, a secure web site connection using SoftCom's key, (SSL), 25
MB more storage space and 5 more e-mail accounts.
The Gold plan - as you expand so can your service.
2 mailing lists, 2 ODBC connections to Microsoft Access database, a secure
website connection (SSL), directory password protection (for membership
based services), an additional FTP user with upload capability, twice the
amount of storage space and 10 more e-mail accounts.
The Platinum plan - increase your storage space as your business
grows.
For $44.95 per month you will receive all the features of the standard plan
plus 3 mailing lists, 3 ODBC connections to a Microsoft Access database, a
secure web site (SSL) connection, directory password protection (for
membership based services), two additional FTP users with upload capability,
100 MB more of storage space and 20 more e-mail accounts.
Feature plus services
31
As you begin to build your online presence you can purchase advanced
services to enhance the functionality of your site, as well as gaining more
control of how you conduct business online.
COM Components for use with ASP
AspEmail
http://www.aspemail.com/
AspEmail 4.4 is a free active server component that enables your ASP
application to send email messages via any external SMTP server. The
component supports multiple file attachments, multiple recipients, Cc's,
Bcc’s, and Reply-To.
In addition to basic functionality available for free, AspEmail 4.4 offers a
number of premium features that require a registration key after a 30-day
evaluation period. These features are support for message queuing, embedded
images, Quoted-Printable format and authentication. Regular file attachments
are still free, of course.
ACTIVE SERVER PAGES 3.0
JMail
http://tech.dimac.net/
JMail is another email component, much more powerful than AspEmail and
offers a whole lot of functions including POP3 support, MailMerge with a
simple template, PGP signing, etc.
Nonetheless, JMail is fairly complex to use, and exceeds the needs of most
ASP sites. Highly recommended for large sites, not so useful for small ones.
AspEmail will suffice just the same!
AspUpload
http://www.aspupload.com/
AspUpload is an Active Server component which enables an ASP application
to accept, save and manipulate files uploaded with a browser. The files are
uploaded via an HTML POST form with one or more <INPUT TYPE=FILE>
tags. The <FORM> tag must contain the attribute
ENCTYPE="multipart/form-data".
Its rich set of features include
Uploads to memory.
Directory uploads.
Image size extraction functionality.
Compatibility with IIS 3, IIS 4, IIS 5 (Window 2000), and PWS.
Ability to upload multiple files at once.
Ability to change file attributes.
Ability to save files in the database as blobs.
Ability to export files from the database.
Automatic generation of unique file names to prevent collisions with
existing files.
Ability to put a limit on the size of files being uploaded.
Encryption support.
Directory Listing with sorting.
File copying, moving and deletion.
Directory creation and deletion.
Again, this is not something everybody will need. Evaluate your budget &
requirements before going in for any component.
32
33