Monografias.com > Computación > Software
Descargar Imprimir Comentar Ver trabajos relacionados

Manual de ASP (Active Server Pages)




Enviado por ppadron



    Crear una página ASP

    Un archivo de
    páginas Active Server (ASP) es un
    archivo de
    texto con la
    extensión .asp que contiene
    cualquier combinación de lo siguiente:

    • Texto
    • Etiquetas HTML
    • Secuencias de comandos del
      servidor

    Un método
    rápido para crear un archivo .asp consiste en cambiar la
    extensión de los archivos HTML (.html o
    .htm) por la extensión .asp. Si el archivo no contiene
    funciones ASP,
    el servidor
    prescinde del proceso de
    secuencias de comandos ASP y
    envía el archivo al cliente. Como
    desarrollador Web, esta
    opción proporciona una gran flexibilidad, ya que puede
    asignar a los archivos la
    extensión .asp incluso si no piensa agregar funciones ASP
    hasta más adelante.

    Para publicar el archivo .asp en Web, guarde el
    nuevo archivo en un directorio virtual de su sitio Web
    (asegúrese de que el directorio tenga los permisos
    Secuencia de comandos o Ejecución). A continuación,
    escriba en el explorador la dirección URL del archivo para pedirlo.
    (Recuerde, las páginas ASP debe enviarlas el servidor, por
    lo que no puede pedirlas mediante su ruta física.) Cuando el
    archivo se cargue en el explorador, observará que el
    servidor envió una página HTML. Al principio puede
    parecer extraño, pero recuerde que el servidor analiza y
    ejecuta todas las secuencias de comandos ASP del servidor antes
    de enviar el archivo. El usuario siempre recibe código
    HTML estándar.

    Para crear archivos .asp, se puede utilizar cualquier
    editor de textos. A medida que avance, puede que encuentre
    más productivo utilizar un editor más orientado a
    ASP, como Microsoft(r)
    Visual InterDev™. (Para obtener más información, visite el sitio Web de
    Microsoft
    Visual InterDev en la dirección http://msdn.microsoft.com/vinterdev/.)

    Agregar secuencias de comandos del
    servidor

    Una secuencia de comandos del servidor es una serie de
    instrucciones que se utiliza para enviar al servidor Web comandos
    de forma secuencial. (Si ya desarrolló antes sitios Web,
    probablemente conozca las secuencias de comandos del cliente, que se
    ejecutan en el explorador Web.) En los archivos .asp, las
    secuencias de comandos se separan del texto y de las
    etiquetas HTML mediante delimitadores. Un delimitador es
    un carácter o una secuencia de caracteres que marca el
    principio o el final de una unidad. En el caso de HTML, dichos
    delimitadores son los símbolos menor que (<) y mayor
    que (>), que enmarcan las etiquetas HTML.

    ASP utiliza los delimitadores <% y %> para
    enmarcar los comandos. Dentro de los delimitadores puede incluir
    cualquier comando válido dentro del lenguaje de
    secuencia de comandos que esté utilizando. El ejemplo
    siguiente muestra una
    página HTML sencilla que contiene un comando de secuencia
    de comandos:

    <HTML>

    <BODY>

    Esta página se actualizó por última
    vez el <%= Now ()%>.

    </BODY>

    </HTML>

    La función Now() de VBScript
    devuelve la fecha y la hora actuales. Cuando el servidor Web
    procesa esta página, reemplaza <%= Now ()%> con la
    fecha y la hora actuales, y devuelve la página al
    explorador con el siguiente resultado:

    Esta página se actualizó el 1/29/99
    2:20:00 p.m.

    A los comandos enmarcados por delimitadores se les llama
    comandos principales de secuencias de comandos, que se
    procesan mediante el lenguaje
    principal de secuencia de comandos. Todos los comandos utilizados
    dentro de los delimitadores de secuencias de comandos deben ser
    válidos en el lenguaje
    principal de secuencia de comandos. De forma predeterminada, el
    lenguaje
    principal de secuencia de comandos es VBScript, pero
    también puede establecer un lenguaje diferente. Consulte
    Trabajar con lenguajes de secuencias de comandos.

    Si ya conoce las secuencias de comandos del cliente, ya
    sabrá que la etiqueta HTML <SCRIPT> se utiliza para
    delimitar las secuencias de comandos y las expresiones.
    También puede utilizar la etiqueta <SCRIPT> para las
    secuencias de comandos del cliente, siempre que necesite definir
    procedimientos
    en múltiples lenguajes en un archivo .asp. Para obtener
    más información, consulte Trabajar con
    lenguajes de secuencias de comandos.

    Combinar HTML y comandos de secuencias de
    comandos

    Dentro de los delimitadores de ASP puede incluir
    cualquier instrucción, expresión, procedimiento u
    operador que sea válido en el lenguaje principal para
    secuencia de comandos. Una instrucción, en
    VBScript y en otros lenguajes, es una unidad
    sintácticamente completa que expresa un tipo de
    acción, declaración o definición. La
    instrucción condicional If…Then…Else
    que aparece a continuación es una instrucción de
    VBScript muy común:

    <%

    Dim dtmHour

    dtmHour = Hour(Now())

    If dtmHour < 12 Then

    Saludos = "Buenos días"

    Else

    strGreeting = "Hola"

    End If

    %>

    <%= strGreeting %>

    Según la hora, la secuencia de comandos asigna el
    valor "Buenos
    días" o el valor "Hola" a
    la variable de cadena strGreeting. La instrucción <%=
    strGreeting %> envía al explorador el valor actual de
    la variable.

    De esta forma, los usuarios que vean esta secuencia de
    comandos antes de las 12:00 de la mañana (según la
    zona horaria del servidor Web) verían la siguiente
    línea de texto:

    Buenos días

    Los usuarios que vean esta secuencia de comandos
    después de las 12:00 de la mañana verían la
    siguiente línea de texto:

    Hola

    Puede incluir texto HTML entre las secciones de una
    instrucción. Por ejemplo, la secuencia de comandos
    siguiente, que combina HTML dentro de una instrucción
    If…Then…Else, produce el mismo resultado que
    la del ejemplo anterior:

    <%

    Dim dtmHour

    dtmHour = Hour(Now())

    If dtmHour < 12 Then

    %>

    Buenos días

    <% Else %>

    Hola

    <%End If %>

    Si la condición es verdadera, es decir, si es
    antes del mediodía, el servidor Web envía al
    explorador el código HTML que sigue a la condición
    ("Buenos días"); de lo contrario, envía el
    código HTML que sigue a Else ("Hola").
    Esta forma de combinar HTML y comandos de secuencia de comandos
    es cómoda para
    continuar la instrucción If…Then…Else
    en varias líneas de texto HTML. El ejemplo anterior es
    más útil si desea presentar un saludo en varias
    partes de una página
    Web. Puede asignar el valor de la variable una única
    vez y después presentarla varias veces.

    En lugar de mezclar texto HTML con comandos de secuencia
    de comandos, puede devolver texto HTML al explorador desde dentro
    de los comandos de secuencia de comandos. Para devolver texto al
    explorador, utilice el objeto integrado Response
    de ASP. El ejemplo siguiente produce el mismo resultado que las
    secuencias de comandos anteriores:

    <%

    Dim dtmHour

    dtmHour = Hour(Now())

    If dtmHour < 12 Then

    Response.Write "Buenos días"

    Else

    Response.Write "Hola"

    End If

    %>

    Response.Write envía al
    explorador el texto que le sigue. Utilice
    Response.Write desde una instrucción
    cuando desee generar de forma dinámica el texto devuelto al explorador.
    Por ejemplo, puede generar una cadena de texto que contenga
    los valores de
    varias variables.
    Aprenderá más acerca del objeto
    Response, y de los objetos en general, en
    Utilizar componentes y objetos y Enviar contenido al explorador.
    Por ahora, observe simplemente que dispone de varias maneras de
    insertar comandos de secuencias de comandos en las páginas
    HTML.

    Puede incluir procedimientos
    escritos en su lenguaje predeterminado de secuencias de comandos
    dentro de delimitadores ASP. Para obtener más
    información, consulte Trabajar con lenguajes de secuencias
    de comandos.

    Si va a trabajar con comandos JScript, puede insertar
    las llaves que indican un bloque de instrucciones directamente en
    sus comandos ASP, incluso aunque estén entremezclados con
    etiquetas y texto HTML. Por ejemplo:

    <%

    if (screenresolution == "low")

    {

    %>

    Ésta es la versión de texto de la
    página.

    <%

    }

    else

    {

    %>

    Ésta es la versión multimedia de la
    página.

    <%

    }

    %>

    -O bien-

    <%

    if (screenresolution == "low")

    {

    Response.Write("Ésta es la versión de
    texto de la página.")

    }

    else

    {

    Response.Write("Ésta es la versión
    multimedia de
    la página.")

    }

    %>

    Utilizar directivas ASP

    ASP proporciona directivas que no forman parte de los
    lenguajes de secuencias de comandos: Dichas directivas son la
    directiva de resultado y la directiva de proceso.

    La directiva de resultado de ASP <%=
    expresión %> presenta el valor de una
    expresión. Dicha directiva es equivalente al uso de
    Response.Write para presentar
    información. Por ejemplo, la expresión <%=
    ciudad %> envía al explorador la palabra Barcelona (el
    valor actual de la variable).

    La directiva de proceso de ASP <%@
    palabra clave %> ofrece a ASP la información
    que necesita para procesar un archivo .asp. Por ejemplo, la
    siguiente directiva establece VBScript como lenguaje principal de
    secuencia de comandos de la página:

    <%@ LANGUAGE=VBScript %>

    Las directivas de proceso deben estar en la primera
    línea de los archivos .asp. Para agregar más de una
    directiva a una página, deben incluirse en el mismo
    delimitador. No ponga las directivas de proceso en los archivos
    incluidos con la instrucción #include.
    Debe incluir un espacio en blanco entre el signo @ y la palabra
    clave. La directiva de proceso tiene las siguientes palabras
    clave:

    • La palabra clave LANGUAGE establece el lenguaje
      principal de secuencia de comandos de la
      página.
    • La palabra clave ENABLESESSIONSTATE especifica si un
      archivo ASP utiliza el estado de
      la sesión. Consulte Administrar sesiones.
    • La palabra clave CODEPAGE establece la página
      de códigos (la codificación de caracteres) del
      archivo .asp.
    • La palabra clave LCID establece el identificador de
      configuración regional del archivo.
    • La palabra clave TRANSACTION especifica que el
      archivo .asp se ejecutará dentro del contexto de una
      transacción. Consulte Descripción de las
      transacciones

    Importante   Puede
    incluir más de una palabra clave en una única
    directiva. Los pares de palabra clave y valor deben estar
    separados por un espacio. No ponga espacios ni antes ni
    después del signo igual (=).

    El ejemplo siguiente establece el lenguaje de secuencia
    de comandos y la página de códigos:

    <%@ LANGUAGE="Jscript" CODEPAGE="932"
    %>

    Espacio en blanco en las secuencias de
    comandos

    Si su lenguaje principal de secuencias de comandos es
    VBScript o JScript, ASP quita el espacio en blanco de los
    comandos. En otros lenguajes, ASP conserva el espacio en blanco
    para que los lenguajes que interpreten la posición o la
    sangría puedan interpretarlo correctamente. El espacio en
    blanco incluye espacios, tabuladores, retornos y saltos de
    línea.

    En VBScript y JScript puede utilizar el espacio en
    blanco que sigue al delimitador de apertura y que precede al de
    cierre para facilitar la lectura de
    los comandos. Todas las instrucciones siguientes son
    válidas:

    <% Color = "Green"
    %>

    <%Color="Green"%>

    <%

    Color = "Green"

    %>

    ASP quita el espacio en blanco que se encuentre entre
    los delimitadores de cierre de las instrucciones y los
    delimitadores de apertura de las instrucciones siguientes. Sin
    embargo, se recomienda utilizar espacios para mejorar la
    legibilidad. Si tiene que conservar el espacio en blanco entre
    dos instrucciones, como cuando vaya a presentar los valores de las
    variables en
    una frase, utilice el carácter de espacio de no
    separación de HTML (&nbsp;). Por ejemplo:

    <%

    'Define dos variables con valores de
    cadena.

    strFirstName = "Juan"

    strLastName = "García"

    %>

    <P>Esta página Web
    está personalizada para "<%= strFirstName
    %>&nbsp;<%= strLastName %>." </P>

    Utilizar variables y constantes

    Una variable es una ubicación de
    almacenamiento
    con nombre dentro de la memoria del
    equipo que contiene datos, como un
    número o una cadena de texto. A los datos contenidos
    en una variable se les llama valor de la variable. Las
    variables ofrecen una manera de almacenar, recuperar y manipular
    valores mediante nombres que ayuden a entender lo que hace la
    secuencia de comandos.

    Declarar y asignar nombre a variables

    Siga las reglas y recomendaciones de su lenguaje de
    secuencias de comandos a la hora de declarar variables y
    asignarles nombres. Incluso aunque no necesita declarar una
    variable para poder
    utilizarla, es conveniente hacerlo porque ayuda a prevenir
    errores. Declarar una variable significa indicar al
    motor de
    secuencias de comandos que existe una variable con un nombre
    concreto, de
    forma que pueda hacer referencia a la variable a lo largo de una
    secuencia de comandos.

    VBScript

    VBScript no necesita declaraciones de variables, pero es
    conveniente declarar todas las variables antes de utilizarlas.
    Para declarar una variable en VBScript, utilice la
    instrucción Dim, Public
    o Private. Por ejemplo:

    <% Dim NombreUsuario %>

    Puede utilizar la instrucción Option
    Explicit
    de VBScript en los archivos .asp para hacer
    obligatoria la declaración de variables con las
    instrucciones Dim, Private,
    Public y ReDim. La
    instrucción Option Explicit debe aparecer
    después de las directivas ASP y antes del texto HTML o de
    los comandos de la secuencia de comandos. Esta instrucción
    sólo afecta a los comandos ASP escritos en VBScript; no
    afecta a los comandos escritos en JScript.

    <% Option Explicit %>

    <HTML>

    <%

    Dim strNombreUsuario

    Public lngNumeroCuenta

    %>

    Alcance de las variables

    El alcance, o vida, de una variable determina
    qué comandos de secuencia de comandos pueden tener acceso
    a dicha variable. Una variable declarada dentro de un procedimiento
    tiene alcance local; la variable se crea y se destruye
    cada vez que se ejecuta el procedimiento. No se puede tener
    acceso a ella desde fuera del procedimiento. Una variable
    declarada fuera de un procedimiento tiene alcance
    global
    ; su valor es accesible y modificable desde cualquier
    comando de secuencia de comandos de una página
    ASP.

    Nota   Al limitar el
    alcance de la variable a un procedimiento mejorará el
    rendimiento.

    Si declara variables, una variable local y una variable
    global pueden tener el mismo nombre. La modificación del
    valor de una de ellas no afecta al valor de la otra. Sin embargo,
    si no declara las variables, podría modificar
    inadvertidamente el valor de una variable global. Por ejemplo,
    los siguientes comandos de secuencia de comandos devuelven el
    valor 1 incluso aunque haya dos variables llamadas Y:

    <%

    Option Explicit

    Dim Y

    Y = 1

    SetLocalVariable

    Response.Write Y

    Sub SetLocalVariable

    Dim Y

    Y = 2

    End Sub

    %>

    Por el contrario, los comandos siguientes devuelven el
    valor 2 porque las variables no se han declarado de forma
    explícita. Cuando la llamada al procedimiento asigna a Y
    el valor 2, el motor de
    secuencias de comandos da por supuesto que el procedimiento
    pretende modificar la variable global:

    <%

    Option Explicit

    Dim Y = 1

    SetLocalVariable

    Response.Write Y

    Sub SetLocalVariable

    Y = 2

    End Sub

    %>

    Para evitar problemas,
    adquiera el hábito de declarar explícitamente todas
    las variables. Lo cual es especialmente importante si utiliza la
    instrucción #include para incluir
    archivos en su archivo ASP. La secuencia de comandos incluida
    está contenida en un archivo aparte, pero se trata como si
    formara parte del archivo contenedor. Es muy fácil
    olvidarse de que hay que utilizar nombres de variables diferentes
    en la secuencia de comandos principal y en la secuencia de
    comandos incluida, a menos que declare las variables.

    Asignar a las variables alcance de sesión o de
    aplicación

    Las variables globales sólo son accesibles en un
    mismo archivo ASP. Para hacer que una variable sea accesible en
    varias páginas, asigne a la variable alcance de
    sesión o de aplicación. Las variables con alcance
    de sesión están disponibles en todas las
    páginas de una aplicación ASP que pida un mismo
    usuario. Las variables con alcance de aplicación
    están disponibles en todas las páginas de una
    aplicación ASP que pida cualquier usuario. Las variables
    de sesión son una buena manera de almacenar
    información para un único usuario, como sus
    preferencias o el nombre o la identificación del usuario.
    Las variables de aplicación son una buena manera de
    almacenar información para todos los usuarios de una
    determinada aplicación, como los saludos
    específicos o los valores
    generales necesarios en la aplicación.

    ASP proporciona dos objetos integrados en los que puede
    almacenar variables: el objeto Session y el
    objeto Application.

    También puede crear instancias de objetos con
    alcance de sesión o de aplicación. Para obtener
    más información, consulte Establecer el alcance de
    los objetos.

    Alcance de sesión

    Para asignar alcance de sesión a una variable,
    almacénela en el objeto Session asignando
    un valor a una entrada con nombre del objeto. Por ejemplo, los
    siguientes comandos almacenan dos nuevas variables en el objeto
    Session:

    <%

    Session("Nombre") = "Juan"

    Session("Apellido") = "Soto"

    %>

    Para recuperar la información del objeto
    Session, tenga acceso a la entrada con nombre
    mediante la directiva de resultado (<%=) o
    Response.Write. En el ejemplo siguiente se
    utiliza la directiva de resultado para presentar el valor actual
    de Session("Nombre"):

    Reciba nuestra bienvenida,<%= Session("Nombre")
    %>

    Puede almacenar las preferencias del usuario en el
    objeto Session y después tener acceso a
    dichas preferencias para determinar qué página hay
    que devolver al usuario. Por ejemplo, puede permitir que los
    usuarios especifiquen la versión en texto del contenido de
    la primera página de la aplicación y aplicar esta
    opción a las siguientes páginas de la
    aplicación que el usuario visite.

    <%

    strScreenResolution =
    Session("ScreenResolution")

    If strScreenResolution = "Low" Then

    %>

    Ésta es la versión de texto de la
    página.

    <% Else %>

    Ésta es la versión multimedia de la
    página.

    <%End If %>

    Nota   Si hace
    referencia a una variable con alcance de sesión más
    de una vez en una secuencia de comandos, piense en asignarle una
    variable local, como en el ejemplo anterior, para mejorar el
    rendimiento.

    Alcance de aplicación

    Para asignar alcance de aplicación a una
    variable, almacénela en el objeto
    Application asignando un valor a una entrada con
    nombre del objeto. Por ejemplo, el comando siguiente almacena en
    el objeto Application un saludo
    específico de una aplicación:

    <% Application("Saludo") = "¡Reciba nuestra
    bienvenida al Departamento de ventas!"
    %>

    Para recuperar la información del objeto
    Application, utilice la directiva de resultado
    de ASP (<%=) o Response.Write para tener
    acceso a la entrada con nombre desde cualquier página
    posterior de la aplicación. En el ejemplo siguiente se
    utiliza la directiva de resultado para presentar el valor de
    Application("Saludo"):

    <%= Application("Saludo") %>

    De nuevo, si hace referencia a una variable con alcance
    de aplicación en su secuencia de comandos repetidamente,
    debe de asignarle una variable local para mejorar el
    rendimiento.

    Utilizar constantes

    Una constante es un nombre que representa un
    número o una cadena. Algunos de los componentes de base
    que se proporcionan con ASP, como ActiveX Data Objects (ADO),
    definen constantes que se pueden utilizar en las secuencias de
    comandos. Un componente puede declarar constantes en la
    biblioteca de tipos del componente, un archivo que
    contiene información acerca de los objetos y los tipos
    aceptados por un componente COM. Después de haber
    declarado una biblioteca de
    tipos en su archivo .asp puede usar las constantes definidas en
    cualquier secuencia de comandos en el mismo archivo .asp.
    Igualmente, puede declarar una biblioteca de
    tipos en el archivo Global.asa para usar las constantes definidas
    en cualquier archivo .asp de la aplicación.

    Para declarar una biblioteca de tipos, utilice la
    etiqueta <METADATA> en su archivo .asp o Global.asa. Por
    ejemplo, para declarar la biblioteca de tipos de ADO, utilice las
    siguientes instrucciones:

    <!–METADATA NAME="Microsoft ActiveX Data Objects 2.5
    Library" TYPE="TypeLib"
    UUID="{00000205-0000-0010-8000-00AA006D2EA4}"–>

    O bien, en lugar de hacer referencia al identificador
    único universal (UUID) de la biblioteca de tipos, puede
    hacer referencia a la biblioteca de tipos mediante la ruta del
    archivo:

    <!– METADATA TYPE="typelib" FILE="c:program
    filescommon filessystemadomsado15.dll"–>

    Entonces puede usar las constantes ADO en el archivo
    .asp donde declaró la biblioteca de tipos o en un archivo
    que reside en una aplicación que contiene un archivo
    Global.asa con la declaración de biblioteca de tipos ADO.
    En el ejemplo siguiente, adOpenKeyset y adLockOptimistic son
    constantes ADO:

    <%

    'Crea y abre el objeto Recordset.

    Set rsCustomersList =
    Server.CreateObject("ADODB.Recordset")

    rstCustomerList.ActiveConnection = cnnPubs

    rstCustomerList.CursorType = adOpenKeyset

    rstCustomerList.LockType = adLockOptimistic

    %>

    En la siguiente tabla se enumeran las bibliotecas de
    tipos y los identificadores UUID que se utilizan con más
    frecuencia:

    Biblioteca de tipos

    UUID

    Biblioteca de Microsoft ActiveX Data Objects
    2.5

    {00000205-0000-0010-8000-00AA006D2EA4}

    Biblioteca de Microsoft CDO 1.2 para Windows
    2000 Server

    {0E064ADD-9D99-11D0-ABE5-00AA0064D470}

    Biblioteca MSWC de objetos Advertisement
    Rotator

    {090ACFA1-1580-11D1-8AC0-00C0F00910F9}

    Biblioteca MSWC de objetos de registro de
    IIS

    {B758F2F9-A3D6-11D1-8B9C-080009DCC2FA}

    Interactuar con secuencias de comandos del
    cliente

    Es posible aumentar la eficacia de ASP
    si se utiliza para generar o manipular secuencias de comandos del
    cliente. Por ejemplo, puede escribir secuencias de comandos del
    servidor que construyan secuencias de comandos del cliente
    basadas en variables específicas del servidor, el tipo del
    explorador o los parámetros de la petición HTTP.

    Si intercala instrucciones de secuencias de comandos del
    servidor en las secuencias de comandos del cliente (delimitadas
    mediante etiquetas HTML <SCRIPT>), como se muestra en la
    plantilla del ejemplo siguiente, puede inicializar de forma
    dinámica y alterar las secuencias de
    comandos del cliente en el momento de realizar la
    petición:

    <SCRIPT LANGUAGE="VBScript">

    <!–

    variable = <%=valor definido por el
    servidor
    %>

    .

    .

    .

    secuencia de comandos del cliente

    <% secuencia de comandos del servidor que se
    utiliza para generar una instrucción del cliente

    %>

    secuencia de comandos del cliente

    .

    .

    .

    –>

    </SCRIPT>

    Al incorporar estas funciones es posible crear algunas
    aplicaciones útiles e interesantes. Por ejemplo,
    ésta es una sencilla secuencia de comandos del servidor
    (escrita en VBScript) que manipula una secuencia de comandos del
    cliente (escrita en JScript):

    <%

    Dim dtmTime, strServerName, strServerSoftware,
    intGreeting

    dtmTime = Time()

    strServerName =
    Request.ServerVariables("SERVER_NAME")

    strServerSoftware =
    Request.ServerVariables("SERVER_SOFTWARE")

    'Genera un número aleatorio.

    Randomize

    GreetCondition = int(rnd * 3)

    %>

    <SCRIPT LANGUAGE="JScript">

    <!–

    //Llama a la función para mostrar el
    saludo

    showIntroMsg()

    function showIntroMsg()

    {

    switch(<%= intGreeting %>)

    {

    case 0:

    msg = "Este es el servidor Web <%= strServerName%>
    con <%= strServerSoftware %>."

    break

    case 1:

    msg = "Reciba nuestra bienvenida al servidor Web <%=
    strServerName%>. La hora local es <%= dtmTime
    %>."

    break

    case 2:

    msg = "Este servidor utiliza <%= strServerSoftware
    %>."

    break

    }

    document.write(msg)

    }

    –>

    </SCRIPT>

    Escribir procedimientos

    Un procedimiento es un grupo de
    comandos de secuencia de comandos que realizan una tarea
    específica y puede devolver un valor. Puede definir sus
    propios procedimientos e invocarlos repetidamente desde sus
    secuencias de comandos.

    Puede poner las definiciones de los procedimientos en el
    mismo archivo .asp que llama a los procedimientos o bien puede
    poner los procedimientos utilizados con más frecuencia en
    un archivo .asp compartido y utilizar la directiva #include para
    incluirlo en otros archivos .asp que llamen a los procedimientos.
    Como alternativa, puede encapsular dicha funcionalidad en un
    componente COM.

    Definir procedimientos

    Las definiciones de los procedimientos pueden
    encontrarse dentro de etiquetas <SCRIPT> y </SCRIPT>
    y deben seguir las reglas del lenguaje de secuencias de comandos.
    Utilice el elemento <SCRIPT> para los procedimientos
    escritos en lenguajes distintos del lenguaje principal para
    secuencias de comandos. Sin embargo, utilice los delimitadores de
    las secuencias de comandos (<% y %>) en los procedimientos
    escritos en el lenguaje principal de secuencias de
    comandos.

    Cuando utilice la etiqueta HTML <SCRIPT>, debe
    emplear dos atributos para asegurar el proceso de la secuencia de
    comandos por parte del servidor. La sintaxis de la etiqueta
    <SCRIPT> es la siguiente:

    <SCRIPT LANGUAGE=JScript RUNAT=SERVER>

    definición del procedimiento

    </SCRIPT>

    El atributo RUNAT=SERVER indica al servidor Web que
    procese la secuencia de comandos en el servidor. Si no establece
    este atributo, la secuencia de comandos la procesará el
    explorador del cliente. El atributo LANGUAGE determina el
    lenguaje de secuencia de comandos utilizado en este bloque. Puede
    especificar cualquier lenguaje para el que haya instalado un
    motor de secuencias de comandos en el servidor. Para especificar
    VBScript, use el valor VBScript. Para especificar JScript, use el
    valor JScript. Si no asigna el atributo LANGUAGE, el bloque de la
    secuencia de comandos se interpretará en el lenguaje
    principal de secuencia de comandos.

    Los comandos del bloque de la secuencia de comandos
    deben componer uno o varios procedimientos completos en el
    lenguaje de secuencia de comandos elegido. Por ejemplo, los
    comandos siguientes definen el procedimiento JScript
    MiFuncion.

    <HTML>

    <SCRIPT LANGUAGE=JScript RUNAT=SERVER >

    function MiFuncion()

    {

    Response.Write("Llamó a MiFuncion().")

    }

    </SCRIPT>

    Importante  No incluya en las
    etiquetas <SCRIPT> del servidor comandos de secuencias de
    comandos que no formen parte de procedimientos completos. Los
    comandos que no formen parte de un procedimiento pueden provocar
    resultados impredecibles puesto que deben ejecutarse en un orden
    determinado. Además, no puede utilizar la directiva de
    resultado de ASP <%=%> dentro de los procedimientos. En su
    lugar, utilice Response.Write para enviar
    contenido al explorador.

    Llamar a procedimientos

    Para llamar a procedimientos, incluya el nombre de los
    procedimientos en un comando. Si va a llamar a procedimientos
    JScript desde VBScript, debe utilizar paréntesis
    después del nombre del procedimiento; si el procedimiento
    no tiene argumentos, utilice paréntesis vacíos. Si
    va a llamar a procedimientos VBScript o JScript desde JScript,
    utilice siempre paréntesis después del nombre del
    procedimiento.

    En VBScript también puede utilizar la palabra
    clave Call para llamar a un procedimiento. Sin
    embargo, si el procedimiento al que llama requiere argumentos, la
    lista de argumentos debe aparecer entre paréntesis. Si
    omite la palabra clave Call, también debe
    omitir los paréntesis en los que se incluye la lista de
    argumentos. Si utiliza la sintaxis Call para
    llamar a una función integrada o definida por el usuario,
    se descartará el valor devuelto por la
    función.

    El ejemplo siguiente ilustra la creación y la
    llamada a procedimientos en dos lenguajes para secuencias de
    comandos diferentes (VBScript y JScript).

    <%@ LANGUAGE=VBScript %>

    <HTML>

    <BODY>

    <% Echo %>

    <BR>

    <% printDate() %>

    </BODY>

    </HTML>

    <%

    Sub Echo

    Response.Write "<TABLE>" & _

    "Response.Write
    "<TR><TH>Nombre</TH><TH>Valor</TH></TR>"

    Set objQueryString = Request.QueryString

    For Each strSelection In objQueryString

    Response.Write "<TR><TD>" & p &
    "</TD><TD>" & _

    FormValues(strSelection) &
    "</TD></TR>"

    Next

    Response.Write "</TABLE>"

    End Sub

    %>

    <SCRIPT LANGUAGE=JScript RUNAT=SERVER>

    function PrintDate()

    {

    var x

    x = new Date()

    Response.Write(x.toString())

    }

    </SCRIPT>

    Nota   Las llamadas de
    VBScript a las funciones JScript no distinguen entre
    mayúsculas y minúsculas.

    Pasar matrices a
    procedimientos

    Para pasar una matriz entera
    a un procedimiento en VBScript, utilice el nombre de la matriz seguido
    de paréntesis vacíos; en JScript, utilice corchetes
    vacíos.

    Procesar los datos proporcionados por el
    usuario

    Mediante el objeto Request de ASP puede
    crear sencillas y eficaces secuencias de comandos para recopilar
    y procesar datos obtenidos de formularios HTML.
    En este tema no sólo aprenderá a crear secuencias
    de comandos básicas para procesar formularios, sino
    que también conocerá técnicas útiles
    para validar los datos de los formularios, tanto en su servidor
    Web como en el explorador de Web del usuario.

    Acerca de los formularios HTML

    Los formularios HTML, el método
    más común para recopilar información desde
    el Web, consiste en un conjunto de etiquetas HTML especiales que
    presentan elementos de interfaz de usuario en una página
    Web. Los cuadros de texto, los botones y las casillas de
    verificación son ejemplos de elementos que permiten que
    los usuarios intercalen con una página Web y envíen
    información a un servidor Web.

    Por ejemplo, las siguientes etiquetas HTML generan un
    formulario en el que un usuario puede escribir su nombre,
    apellido y edad, e incluye un botón para enviar la
    información a un servidor Web. El formulario
    también contiene una etiqueta de entrada oculta (no
    presentada por el explorador Web) que puede utilizar para pasar
    información adicional al servidor Web.

    <FORM METHOD="Post"
    ACTION="Profile.asp">

    <INPUT TYPE="text" NAME="Nombre">

    <INPUT TYPE="text" NAME="Apellido">

    <INPUT TYPE="text" NAME="Edad">

    <INPUT TYPE="Hidden" NAME="EstadoUsuario"
    VALUE="Nuevo">

    <INPUT TYPE="Submit" VALUE="Entrar">

    </FORM>

    Presentar con detalle el conjunto completo de etiquetas
    HTML para formularios se sale del ámbito de este tema, sin
    embargo, hay numerosas fuentes de
    información que puede utilizar para aprender a crear y
    utilizar formularios HTML. Por ejemplo, puede utilizar la
    posibilidad que ofrece su explorador para ver el código
    fuente con el fin de examinar cómo se crean los
    formularios HTML en otros sitios Web. También puede
    visitar el sitio Web de MSDN de Microsoft en la dirección
    http://msdn.microsoft.com/ para conocer las técnicas
    más recientes para utilizar los formularios HTML con otras
    tecnologías de Internet.

    Procesar datos de formularios con ASP

    Después de crear el formulario HTML tendrá
    que procesar los datos proporcionados por el usuario, lo que
    implica enviar la información a un archivo .asp para que
    la analice y manipule. De nuevo, examine el código HTML
    del ejemplo anterior. Observe que el atributo ACTION de la
    etiqueta <FORM> hace referencia a un archivo llamado
    Profile.asp. Cuando el usuario envía información
    HMTL, el explorador utiliza el método POST para enviarla a
    un archivo .asp del servidor, en este caso Profile.asp. Este
    archivo .asp puede contener archivos de comandos que procesen la
    información e interactúen con otras secuencias de
    comandos, componentes COM o recursos, como
    una base de
    datos.

    Existen tres formas básicas de recopilar
    información de un formulario HTML mediante ASP:

    • Un archivo .htm estático puede contener un
      formulario que envíe sus valores a un archivo
      .asp.
    • Un archivo .asp puede crear un formulario que
      envíe información a otro archivo
      .asp.
    • Un archivo .asp puede crear un formulario que se
      envíe información a sí mismo; es decir, al
      archivo .asp que contiene el formulario.

    Los dos primeros métodos
    funcionan igual que los formularios que interactúan con
    otros programas de
    servidor Web, con la única diferencia de que con ASP se
    simplifica mucho la tarea de recuperar y procesar la
    información. El tercer método es especialmente
    útil y se muestra en la sección Validar los datos
    de los formularios.

    Obtener datos de los formularios

    El objeto Request de ASP proporciona
    dos colecciones que facilitan la tarea de recuperar
    información de los formularios enviados con las peticiones
    URL.

    La colección QueryString

    La colección QueryString recupera
    los valores del formulario pasados al servidor Web como texto a
    continuación del signo de interrogación de la
    dirección URL de la petición. Los valores del
    formulario se pueden anexar a la dirección URL de la
    petición mediante el método GET de HTTP o,
    manualmente, si se agregan los valores del formulario a la
    dirección URL.

    Si el ejemplo del formulario anterior utilizara el
    método GET (METHOD = "GET") y el usuario escribiera
    Juan, Soto y 30, se enviaría la
    siguiente petición URL al servidor:

    http://Workshop1/Painting/Profile.asp?Nombre=Juan&Apellido=Soto&Edad=30&EstadoUsuario=Nuevo

    El archivo Profile.asp podría contener la
    siguiente secuencia de comandos para procesar
    formularios:

    Hola, <%= Request.QueryString("nombre") %> <%=
    Request.QueryString("apellido") %>.

    Tiene <%= Request.QueryString("edad") %>
    años.

    <%

    If Request.QueryString("EstadoUsuario") = "Nuevo"
    Then

    Response.Write"Ésta es su primera visita a este
    sitio Web"

    End if

    %>

    En este caso, el servidor Web devolvería el texto
    siguiente al explorador Web del usuario:

    Hola Juan Soto. Tiene 30 años. Ésta es su
    primera visita a este sitio Web

    La colección QueryString
    también tiene un parámetro opcional que puede
    utilizar para tener acceso a uno de los múltiples valores
    que se encuentran en el cuerpo de la petición URL (con el
    método GET). También puede utilizar la propiedad
    Count para contar el número de veces que
    aparece un determinado tipo de valor.

    Por ejemplo, un formulario que contenga un cuadro de
    lista con varios elementos puede generar la siguiente
    petición:

    http://OrganicFoods/list.asp?Comida=Manzanas&Comida=Aceitunas&Comida=Pan

    Podría utilizar el siguiente comando para contar
    los diferentes valores:

    Request.QueryString("Comida").Count

    Para presentar los tipos de valores, Lista.asp
    podría contener la secuencia de comandos
    siguiente:

    <%

    lngTotal =
    Request.QueryString("Comida").Count

    For i = 1 To lngTotal

    Response.Write Request.QueryString("Comida")(i) &
    "<BR>"

    Next

    %>

    La secuencia de comandos anterior
    mostraría:

    Manzanas

    Aceitunas

    Pan

    También puede mostrar la lista completa de
    valores como una cadena delimitada por comas, del modo
    siguiente:

    <% Response.Write Request.QueryString("Item")
    %>

    Aparecería la cadena siguiente:

    Manzanas, Aceitunas, Pan

    Colección Form

    Cuando utiliza el método GET de HTTP para pasar a
    un servidor Web valores de un formulario grande y complejo, corre
    el riesgo de perder
    información. Algunos servidores Web
    tienden a restringir el tamaño de la cadena de
    petición de URL, por lo que los valores de los formularios
    grandes pasados con el método GET podrían quedar
    truncados. Si necesita enviar una gran cantidad de
    información desde un formulario a un servidor Web, debe
    utilizar el método POST de HTTP. El método POST,
    que envía los datos de los formularios en el cuerpo de la
    petición HTTP, puede enviar un número casi
    ilimitado de caracteres a un servidor. Puede utilizar la
    colección Form del objeto
    Request
    de ASP para recuperar los valores enviados mediante el
    método POST.

    La colección Form almacena
    valores de manera similar a la colección
    QueryString. Por ejemplo, si un usuario completa
    un formulario escribiendo una larga lista de nombres, se
    podrían leer los nombres con la secuencia de comandos
    siguiente:

    <%

    lngTotal = Request.Form("Comida").Count

    For i = 1 To lngTotal

    Response.Write Request.Form("Comida")(i) &
    "<BR>"

    Next

    %>

    Validar los datos de los formularios

    Un formulario Web bien diseñado suele incluir una
    secuencia de comandos del cliente que valida los datos
    proporcionados por el usuario antes de enviar la
    información al servidor. Las secuencias de comandos de
    validación
    pueden comprobar si el usuario
    escribió un número válido o si un cuadro de
    texto está en blanco. Imagine que su sitio Web incluye un
    formulario que permite calcular la tasa de retorno de una
    inversión. Probablemente querrá
    comprobar si un usuario realmente escribió texto o
    números en los campos apropiados del formulario, antes de
    enviar al servidor información que podría no ser
    válida.

    En general, lo mejor es realizar en el cliente tantas
    comprobaciones como sea posible. Además, de poder
    preguntar antes al usuario por los errores, la validación
    en el cliente mejora el tiempo de
    respuesta, reduce la carga del servidor y libera ancho de banda
    para otras aplicaciones.

    La siguiente secuencia de comandos del cliente valida
    los datos escritos por el usuario (en este caso, la secuencia de
    comandos determina si el número de cuenta que
    escribió el usuario es realmente un número) antes
    de enviarlos al servidor:

    <SCRIPT LANGUAGE="JScript">

    function ComprobarNumero()

    {

    if
    (isNumeric(document.UserForm.AcctNo.value))

    return true

    else

    {

    alert("Escriba un número de cuenta
    válido.")

    return false

    }

    }

    //Función para determinar si el valor del
    formulario es un número.

    //Nota: El método isNaN JScript es un
    método más elegante para determinar
    si

    //un valor no es un número. Sin embargo,
    algunos exploradores no admiten este
    método.

    function isNumeric(str)

    {

    for (var i=0; i < str.length; i++)

    {

    var ch = str.substring(i, i+1)

    if( ch < "0" || ch>"9" || str.length ==
    null)

    {

    return false

    }

    }

    return true

    }

    </SCRIPT>

    <FORM METHOD="Get" ACTION="balance.asp"
    NAME="FormularioUsuario" ONSUBMIT="return
    CheckNumber()">

    <INPUT TYPE="Text" NAME="NumCuen">

    <INPUT TYPE="Submit" VALUE="Enviar">

    </FORM>

    Sin embargo, si la validación de un formulario
    requiere el acceso a una base de datos
    debe considerar la utilización de la validación del
    formulario en el servidor. Una forma muy útil de realizar
    la validación en el servidor es crear formularios que se
    envíen la información a sí mismos. Es decir,
    el archivo .asp contiene en realidad el formulario HTML que
    recibe los datos del usuario. (Recuerde, puede utilizar ASP para
    interactuar con secuencias de comandos del cliente y
    código HTML. Para obtener más información,
    consulte Interactuar con secuencias de comandos del cliente.) Los
    datos escritos vuelven al mismo archivo, que se encarga de
    validar la información y avisa al usuario si éstos
    no son correctos.

    Mediante este método se pueden mejorar las
    características de uso y la respuesta de
    los formularios basados en Web. Por ejemplo, si se incluye
    información del error junto al campo del formulario en el
    que se escribió la información incorrecta,
    será más fácil para el usuario descubrir el
    origen del error. (Normalmente, los formularios basados en Web
    reenvían las peticiones a una página Web
    independiente que contiene información del error. Los
    usuarios que no comprendan esta información podrían
    sentirse frustrados.)

    Por ejemplo, la secuencia de comandos siguiente
    determina si un usuario escribió un número de
    cuenta válido, para lo que se envía la
    información a sí misma (Verify.asp) y llama a una
    función definida por el usuario que realiza una consulta a
    una base de datos:

    <%

    strAcct = Request.Form("Cuenta")

    If Not AccountValid(strAcct) Then

    ErrMsg = "<FONT COLOR=Red>El número de
    cuenta que ha escrito no es
    válido.</FONT>"

    Else

    Procesa los datos del usuario

    .

    .

    .

    Server.Transfer("Complete.asp")

    End If

    Function AccountValid(strAcct)

    Aquí se incluirá una secuencia de
    comandos o una llamada a un método de un componente de
    conexión con una base de datos.

    End Function

    %>

    <FORM METHOD="Post"
    ACTION="Verify.asp">

    Número de cuenta: <INPUT TYPE="Text"
    NAME="Cuenta"> <%= ErrMsg
    %> <BR>

    <INPUT TYPE="Submit">

    </FORM>

    En este ejemplo, la secuencia de comandos se encuentra
    en un archivo llamado Verify.asp, el mismo archivo que contiene
    el formulario HTML y, para enviarse la información a
    sí mismo, especifica Verify.asp en el atributo
    ACTION.

    Importante   Si
    utiliza JScript para la validación en el servidor,
    asegúrese de colocar un par de paréntesis
    vacíos detrás del elemento de la colección
    Request (QueryString o
    Form) al asignar la colección a una
    variable local. Sin el paréntesis la colección
    devolverá un objeto en lugar de una cadena. La secuencia
    de comandos siguiente muestra el método correcto para
    asignar variables con JScript:

    <%

    var Nombre = Request.Form("Nombre")();

    var Contraseña =
    Request.Form("Contraseña")();

    if(Nombre > "")

    {

    if(Nombre == Contraseña)

    Response.Write("El nombre y la contraseña son
    iguales".)

    else

    Response.Write("El nombre y la contraseña son
    diferentes".);

    }

    %>

    VBScript presenta el mismo comportamiento
    si la colección contiene varios valores separados por
    comas o con los que se pueda crear un índice. Esto
    significa que tanto para VBScript como para JScript,
    además de colocar un par de paréntesis
    detrás del elemento de la colección
    Request, necesitará especificar el
    índice del valor deseado. Por ejemplo, la siguiente
    línea en JScript devuelve sólo el primero de los
    varios valores de un elemento de un formulario:

    var Nombre = Request.Form("Nombre")(1);

    Acceso al origen de datos

    ActiveX Data Objects (ADO) es una tecnología ampliable
    y de fácil uso para agregar a sus páginas
    Web acceso a bases de datos.
    Puede utilizar ADO para escribir secuencias de comandos compactas
    y escalables que le permitan conectarse a orígenes de
    datos compatibles con OLE DB, como bases de datos,
    hojas de cálculo,
    archivos de datos secuenciales o directorios de correo
    electrónico. OLE DB es una interfaz de programación de nivel de sistema que
    proporciona un conjunto estándar de interfaces COM para
    que permitan exponer las funciones del sistema de
    administración de bases de datos. Con el
    modelo de
    objetos ADO es fácil tener acceso a estas interfaces
    (mediante lenguajes de secuencias de comandos, como VBScript o
    JScript) para agregar funciones de bases de datos a las
    aplicaciones Web. Además, también puede utilizar
    ADO para tener acceso a bases de datos compatibles con la
    Conectividad abierta de bases de datos (ODBC, Open Database
    Connectivity).

    Si no tiene mucha experiencia en conectividad con bases
    de datos, encontrará que la sintaxis de ADO es sencilla y
    fácil de utilizar. Si es un programador experimentado,
    agradecerá el acceso escalable de alto rendimiento que
    proporciona ADO para una gran variedad de orígenes de
    datos.

    Crear una cadena de conexión

    El primer paso en la creación de una
    aplicación de datos en Web consiste en proporcionar un
    método para que ADO encuentre e identifique el origen de
    datos. Para ello se utiliza una cadena de
    conexión
    , una serie de argumentos separados mediante
    un punto y coma que definen parámetros como el proveedor
    del origen de datos y la ubicación del mismo. ADO utiliza
    la cadena de conexión para identificar el
    proveedor OLE DB y para dirigir al proveedor al origen
    de datos. El proveedor es un componente que representa el origen
    de datos y que expone la información en la
    aplicación en forma de conjuntos de
    filas.

    En la tabla siguiente se enumeran las cadenas de
    conexión de OLE DB para varios orígenes de datos
    habituales:

    Origen de datos

    Cadena de conexión OLE
    DB

    Microsoft(r) Access

    Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=ruta física de acceso al archivo
    .mdb

    Microsoft SQL
    Server

    Provider=SQLOLEDB.1;Data Source=ruta de acceso
    a la base de datos del servidor

    Oracle

    Provider=MSDAORA.1;Data Source=ruta de acceso
    a la base de datos del servidor

    Microsoft Indexing Service

    Provider=MSIDXS.1;Data Source=ruta de acceso
    al archivo

    Para proporcionar compatibilidad con versiones
    anteriores, el proveedor OLE DB para ODBC admite la sintaxis de
    las cadenas de conexión ODBC. En la tabla siguiente se
    enumeran las cadenas de conexión ODBC que se utilizan
    habitualmente:

    Controlador del origen de
    datos

    Cadena de conexión
    ODBC

    Microsoft Access

    Driver={Microsoft
    Access Driver (*.mdb)};DBQ=ruta física de
    acceso al archivo .mdb

    SQL Server

    DRIVER={SQL
    Server};SERVER=ruta de acceso al
    servidor

    Oracle

    DRIVER={Microsoft ODBC for Oracle};SERVER=ruta de acceso al
    servidor

    Microsoft Excel

    Driver={Microsoft
    Excel Driver (*.xls)};DBQ=ruta física de
    acceso al archivo .xls
    ; DriverID=278

    Microsoft Excel
    97

    Driver={Microsoft
    Excel Driver (*.xls)};DBQ=ruta física de
    acceso al archivo .xls
    ;DriverID=790

    Paradox

    Driver={Microsoft Paradox Driver
    (*.db)};DBQ=ruta física de acceso al archivo
    .db
    ;DriverID=26

    Texto

    Driver={Microsoft Text Driver
    (*.txt;*.csv)};DefaultDir=ruta física de acceso
    al archivo .txt

    Microsoft Visual
    FoxPro(r) (con un contenedor de bases de
    datos)

    Driver={Microsoft Visual FoxPro
    Driver};SourceType=DBC;SourceDb=ruta física de
    acceso al archivo .dbc

    Microsoft Visual
    FoxPro (sin un contenedor de bases de datos)

    Driver={Microsoft Visual FoxPro
    Driver};SourceType=DBF;SourceDb=ruta física de
    acceso al archivo .dbf

    Conectarse al origen de datos

    ADO proporciona el objeto Connection
    para establecer y administrar las conexiones entre las
    aplicaciones y los orígenes de datos compatibles con OLE
    DB o las bases de datos compatibles con ODBC. El objeto
    Connection incorpora propiedades y métodos
    que se pueden utilizar para abrir y cerrar conexiones con bases
    de datos, y para enviar consultas de actualización de la
    información.

    Para establecer una conexión con una base de
    datos, cree primero una instancia del objeto
    Connection. Por ejemplo, la secuencia de
    comandos siguiente crea una instancia del objeto
    Connection y procede a abrir una
    conexión:

    <%

    'Crea un objeto Connection.

    Set cn =
    Server.CreateObject("ADODB.Connection")

    'Abre una conexión mediante la cadena de
    conexión OLE DB.

    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=C:DatosMercadoVentasPrevistas.mdb"

    %>

    Nota    La cadena de
    conexión no contiene espacios en blanco ni antes ni
    después del signo igual (=).

    En este caso, el método Open del
    objeto Connection se refiere a la cadena de
    conexión.

    Ejecutar consultas SQL con el
    objeto Connection

    Con el método Execute del objeto
    Connection puede emitir comandos al origen de
    datos, como consultas de SQL (Lenguaje de consulta estructurado).
    (SQL, lenguaje estándar para comunicarse con bases de
    datos, define comandos para recuperar y actualizar
    información.) El método Execute
    acepta parámetros que especifiquen el comando (o la
    consulta), el número de registros de
    datos a los que afecta y el tipo de comando que se
    utiliza.

    La siguiente secuencia de comandos utiliza el
    método Execute para enviar una consulta con un
    comando INSERT de SQL, que inserta datos en una tabla concreta de
    la base de datos. En este caso, el bloque de la secuencia de
    comandos inserta el nombre
    José
    Lugo
    en una tabla de la base de datos
    llamada

    Customers.

    <%

    'Define la cadena de conexión OLE
    DB.

    strConnectionString =
    "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=C:DatosEmpleados.mdb"

    'Crea la instancia del objeto Connection y abre una
    conexión con la base de datos.

    Set cn =
    Server.CreateObject("ADODB.Connection")

    cnn.Open strConnectionString

    'Define la instrucción SELECT de
    SQL.

    strSQL = "INSERT INTO Customers (FirstName, LastName)
    VALUES ('José','Lugo')"

    'Utiliza el método Execute para enviar una
    consulta SQL a la base de datos.

    cnn.Execute strSQL,,adCmdText +
    adExecuteNoRecords

    %>

    Observe que se especifican dos parámetros en la
    instrucción que se utiliza para ejecutar la consulta:
    adCmdText y adExecuteNoRecords.
    El parámetro opcional adCmdText
    especifica el tipo de comando e indica que el proveedor debe
    evaluar la instrucción de consulta (en este caso, una
    consulta SQL) como una definición textual de un comando.
    El parámetro adExecuteNoRecords indica a
    ADO que no debe crear un conjunto de registros de
    datos si no se devuelven resultados a la aplicación. Este
    parámetro sólo funciona con los tipos de comandos
    definidos como texto, como las consultas SQL, o con
    procedimientos almacenados de bases de datos. Aunque los
    parámetros adCmdText y
    adExecuteNoRecords son opcionales, debe
    especificarlos al utilizar el método
    Execute para mejorar así el rendimiento
    de la aplicación de datos.

    Importante   Los
    parámetros ADO, como adCmdText, deben
    estar definidos para poder utilizarlos en una secuencia de
    comandos. Un método cómodo para definir los
    parámetros consiste en utilizar una biblioteca de
    tipos de componentes
    , que es un archivo que contiene
    definiciones para todos los parámetros ADO. Para
    implementar una biblioteca de tipos de componentes debe
    declararla antes. Agregue la etiqueta siguiente <METADATA>
    al archivo .asp o a Global.asa para declarar la biblioteca de
    tipos ADO:

    <!–METADATA NAME="Microsoft ActiveX Data Objects 2.5
    Library" TYPE="TypeLib"
    UUID="{00000205-0000-0010-8000-00AA006D2EA4}"–>

    Si desea obtener más detalles acerca de
    cómo implementar las bibliotecas de
    tipos de componentes, consulte la sección Utilizar
    constantes del tema Utilizar variables y constantes.

    Además del comando INSERT de
    SQL, puede utilizar los comandos UPDATE y
    DELETE de SQL para modificar y quitar
    información de la base de datos.

    Con el comando UPDATE de SQL puede
    modificar los valores de los elementos de una tabla de la base de
    datos. La siguiente secuencia de comandos usa el comando
    UPDATE para cambiar todos los campos FirstName
    de la tabla Customers a Juan en todas las filas cuyo campo
    LastName contenga el apellido Soto.

    <%

    Set cn =
    Server.CreateObject("ADODB.Connection")

    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=C:DatosEmpleados.mdb"

    cn.Execute "UPDATE Customers SET FirstName = 'Juan'
    WHERE LastName = 'Soto' ",,adCmdText +
    adExecuteNoRecords

    %>

    Para quitar determinados registros de una tabla de la
    base de datos, utilice el comando DELETE de SQL.
    La siguiente secuencia de comandos quita todas las filas de la
    tabla Customers cuyo apellido sea Soto:

    <%

    Set cn =
    Server.CreateObject("ADODB.Connection")

    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=C:DatosEmpleados.mdb"

    cn.Execute "DELETE FROM Customers WHERE LastName =
    'Soto'",,adCmdText + adExecuteNoRecords

    %>

    Nota    Debe tener mucho
    cuidado al utilizar el comando DELETE de SQL. Un
    comando DELETE que no vaya acompañado de
    una cláusula WHERE eliminará todas
    las filas de la tabla. Asegúrese de incluir la
    cláusula WHERE de SQL, que especifica las
    filas exactas que se van a eliminar.

    Utilizar el objeto Recordset para manipular los
    resultados

    Para recuperar datos, examinar resultados y modificar su
    base de datos, ADO proporciona el objeto
    Recordset. El objeto Recordset
    tiene las funciones necesarias para, dependiendo de las
    restricciones de las consultas, recuperar y presentar un conjunto
    de filas, o registros, de una base de datos. El objeto
    Recordset mantiene la posición de cada
    registro
    devuelto por la consulta, lo que permite recorrer los resultados
    de uno en uno.

    Recuperar un conjunto de registros

    Las buenas aplicaciones de datos Web emplean el objeto
    Connection para establecer un vínculo, y
    el objeto Recordset para manipular los datos
    devueltos. Al combinar las funciones especializadas de ambos
    objetos puede desarrollar aplicaciones de bases de datos que
    realicen casi cualquier tarea de tratamiento de datos. Por
    ejemplo, la siguiente secuencia de comandos del servidor utiliza
    el objeto Recordset para ejecutar un comando
    SELECT de SQL. El comando
    SELECT recupera un conjunto específico de
    información basándose en las restricciones de la
    consulta. La consulta también contiene una cláusula
    WHERE de SQL, que se utiliza para establecer el
    criterio de selección de la consulta. En este ejemplo, la
    cláusula WHERE limita la consulta a todos
    los registros que contengan el apellido Soto en la tabla
    Customers de la base de datos.

    <%

    'Establece una conexión con un origen de
    datos.

    strConnectionString =
    "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=C:DatosEmpleados.mdb"

    Set cn =
    Server.CreateObject("ADODB.Connection")

    cnn.Open strConnectionString

    'Crea una instancia de un objeto
    Recordset.

    Set rsCustomers =
    Server.CreateObject("ADODB.Recordset")

    'Abre un objeto Recordset con el método
    Open

    'y utiliza la conexión establecida por el
    objeto Connection.

    strSQL = "SELECT FirstName, LastName FROM Customers
    WHERE LastName = 'Soto' "

    rstCustomers.Open strSQL, cnn

    'Recorre el conjunto de los registros y presenta los
    resultados

    'e incrementa la posición del registro con el
    método MoveNext.

    Set objFirstName = rstCustomers("Nombre")

    Set objLastName = rstCustomers("Apellido")

    Do Until rstCustomers.EOF

    Response.Write objFirstName & " " & objLastName
    & "<BR>"

    rstCustomers.MoveNext

    Loop

    %>

    Observe que en el ejemplo anterior, el objeto
    Connection estableció la conexión
    con la base de datos y que el objeto Recordset
    utilizó la misma conexión para recuperar resultados
    de la base de datos. Este método es útil cuando
    tenga que configurar con precisión la forma en que se
    establece el vínculo con la base de datos. Por ejemplo, si
    necesitara especificar el tiempo de espera
    antes de anular un intento de conexión, tendría que
    utilizar el objeto Connection para establecer
    dicha propiedad. Sin
    embargo, si sólo desea establecer una conexión con
    las propiedades de conexión predeterminadas de ADO,
    podría utilizar el método Open del
    objeto Recordset para establecer el
    vínculo:

    <%

    strConnectionString =
    "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=C:DatosEmpleados.mdb"

    strSQL = "SELECT FirstName, LastName FROM Customers
    WHERE LastName = 'Soto' "

    Set rsCustomers =
    Server.CreateObject("ADODB.Recordset")

    'Abre una conexión con el método
    Open

    'y utiliza la conexión establecida por el
    objeto Connection.

    rstCustomers.Open strSQL, strConnectionString

    'Recorre el conjunto de registros, presenta los
    resultados

    'e incrementa la posición del registro con el
    método MoveNext.

    Set objFirstName = rstCustomers("Nombre")

    Set objLastName = rstCustomers("Apellido")

    Do Until rstCustomers.EOF

    Response.Write objFirstName & " " & objLastName
    & "<BR>"

    rstCustomers.MoveNext

    Loop

    %>

    Cuando establece una conexión con el
    método Open del objeto
    Recordset, está utilizando
    implícitamente el objeto Connection para
    proteger el vínculo. Para obtener más
    información, consulte la documentación acerca de
    Microsoft ActiveX Data Objects (ADO), disponible en el sitio Web
    de Microsoft Universal Data Access en la
    dirección http://www.microsoft.com/data/.

    Nota   Para mejorar de
    forma significativa el rendimiento de las aplicaciones ASP de
    base de datos, piense en la posibilidad de cambiar el estado del
    conjunto de registros a Application. Para
    obtener más información, consulte Guardar datos en
    la memoria
    caché.

    A menudo resulta útil contar el número de
    registros que se devuelven en un conjunto de registros. El
    método Open del objeto
    Recordset permite especificar un
    parámetro opcional, cursor, que determina
    cómo recupera y recorre el conjunto de registros el
    proveedor subyacente. Al agregar el parámetro de cursor
    adOpenKeyset a la instrucción que se
    utiliza para ejecutar la consulta, permite que la
    aplicación cliente recorra todo el conjunto de registros.
    Como resultado, la aplicación puede utilizar la propiedad
    RecordCount para calcular con precisión
    el número de registros del conjunto. Vea el siguiente
    ejemplo:

    <%

    Set rsCustomers =
    Server.CreateObject("ADODB.Recordset")

    rs.Open "SELECT * FROM NewOrders",
    "Provider=Microsoft.Jet.OLEDB.3.51;Data
    Source='C:PedidosClientesPedidos.mdb'", adOpenKeyset,
    adLockOptimistic, adCmdText

    'Utiliza la propiedad RecordCount del objeto
    Recordset para realizar la cuenta.

    If rs.RecordCount >= 5 then

    Response.Write "Recibimos estos " & rs.RecordCount
    & " nuevos pedidos<BR>"

    Do Until rs.EOF

    Response.Write rs("NombreCliente") & " " &
    rs("ApellidoCliente") & "<BR>"

    Response.Write rs("NumeroCuenta") &
    "<BR>"

    Response.Write rs("Cantidad") &
    "<BR>"

    Response.Write rs("FechaEntrega") &
    "<BR><BR>"

    rs.MoveNext

    Loop

    Else

    Response.Write "Hay menos de " & rs.RecordCount
    & " nuevos pedidos."

    End If

    rs.Close

    %>

    Combinar formularios HTML y el acceso a bases de
    datos

    Las páginas
    Web que contienen formularios HTML pueden permitir que los
    usuarios consulten de forma remota una base de datos y recuperen
    información concreta. Con ADO puede crear secuencias de
    comandos sorprendentemente sencillas que recopilen
    información del formulario del usuario, creen una consulta
    personalizada para la base de datos y devuelvan
    información al usuario. Mediante el objeto
    Request de ASP puede recuperar la
    información escrita en los formularios HTML e incorporar
    dicha información a sus instrucciones SQL. Por ejemplo, el
    siguiente bloque de secuencia de comandos inserta en una tabla la
    información suministrada por un formulario HTML. La
    secuencia de comandos recopila información del usuario con
    la colección Form del objeto
    Request.

    <%

    'Abre una conexión mediante el objeto
    Connection. El objeto Command

    'no tiene un método Open para establecer la
    conexión.

    strConnectionString =
    "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=D:CatálogoSemillas.mdb"

    Set cn =
    Server.CreateObject("ADODB.Connection")

    cnn.Open strConnectionString

    'Crea una instancia del objeto Command

    'y utiliza la propiedad ActiveConnection para
    adjuntar

    'la conexión al objeto Command.

    Set cm= Server.CreateObject("ADODB.Command")

    Set cmn.ActiveConnection = cnn

    'Define la consulta SQL.

    cmn.CommandText = "INSERT INTO MySeedsTable (Type)
    VALUES (?)"

    'Define la información de configuración
    de los parámetros de la consulta.

    cmn.Parameters.Append
    cmn.CreateParameter("type",adVarChar, ,255)

    'Asigna el valor de la entrada y ejecuta la
    actualización.

    cmn("type") = Request.Form("SeedType")

    cmn.Execute ,,adCmdText + adExecuteNoRecords

    %>

    Para obtener más información acerca de los
    formularios y el uso del objeto Request de ASP,
    consulte Procesar los datos introducidos por el
    usuario.

    Transferencia entre archivos .ASP

    Para utilizar Response.Redirect para
    redirigir un explorador se necesita un viaje de ida y
    vuelta
    , lo que significa que el servidor envía al
    explorador una respuesta HTTP en la que indica la
    ubicación de la nueva dirección URL. El explorador
    abandona automáticamente la cola de la petición del
    servidor y envía una nueva petición HTTP para la
    dirección URL. Después, el servidor agrega esta
    petición a la cola de peticiones, junto con las peticiones
    que mientras tanto llegan desde otros clientes. En un
    sitio Web con mucha carga, este sistema puede desperdiciar ancho
    de banda y reducir el rendimiento del servidor, especialmente si
    se redirige el explorador a un archivo que se encuentre en el
    mismo servidor.

    Puede utilizar el método
    Server.Transfer para realizar la transferencia
    de un archivo .asp a otro que se encuentre en el mismo servidor,
    en lugar del método Response.Redirect.
    Con Server.Transfer puede transferir
    directamente las peticiones de archivos .asp sin necesidad de
    abandonar la cola de peticiones, lo que elimina viajes de ida
    y vuelta.

    Por ejemplo, la secuencia de comandos siguiente muestra
    cómo podría utilizar
    Server.Transfer para saltar entre las
    páginas de una aplicación según la
    información de estado:

    <%

    If Session("blnSaleCompleted") Then

    Server.Transfer("/Pedido/Gracias.asp")

    Else

    Server.Transfer("/Pedido/MasInfo.asp")

    End if

    %>

    Server.Transfer envía peticiones
    desde un archivo .asp en ejecución a otro archivo. Durante
    la transferencia, el archivo .asp que se pidió
    inicialmente finaliza inmediatamente la ejecución sin
    vaciar el búfer de salir (para obtener más
    información, consulte la sección Almacenamiento en
    búfer del contenido). La petición de
    información se pone a disposición del archivo de
    destino cuando éste comienza la ejecución. Durante
    la ejecución, el archivo tiene acceso al mismo conjunto de
    objetos intrínsecos (Request,
    Response, Server,
    Session y Application) que el
    archivo que se pidió inicialmente.

    También se puede utilizar
    Server.Transfer para realizar una transferencia
    entre archivos .asp que se encuentren en diferentes aplicaciones.
    Sin embargo, al hacerlo el archivo se comportará como si
    formara parte de la aplicación que inició la
    transferencia (es decir, el archivo sólo tendrá
    acceso a las variables con alcance en la aplicación
    inicial, no en la aplicación en la que realmente reside el
    archivo). Por ejemplo, si realiza una transferencia desde un
    archivo que se encuentra en la aplicación Ventas a otro
    que se encuentra en Personal, la
    aplicación Ventas tomará prestado el archivo de la
    aplicación Personal y lo
    ejecutará como si fuera parte de ella.

    ASP proporciona también el comando
    Server.Execute que permite transferir un
    archivo, ejecutar el contenido y volver al archivo que
    inició la transferencia. Si tiene conocimientos de
    VBScript, le ayudará pensar en
    Server.Execute como análogo a una llamada
    a un procedimiento, con la diferencia de que en lugar de ejecutar
    un procedimiento se ejecuta un archivo .asp completo.

    Por ejemplo, la secuencia de comandos siguiente muestra
    cómo podría utilizar
    Server.Execute para incluir archivos .asp de
    forma dinámica:

    <%

    .

    .

    If blnUseDHTML Then

    Server.Execute("DHTML.asp")

    Else

    Server.Execute("HTML.asp")

    End If

    .

    .

    %>

    Mientras el archivo de destino pertenezca a una
    aplicación del mismo servidor, la aplicación
    inicial se transferirá a este archivo, ejecutará su
    contenido y continuará con la ejecución del archivo
    que inició la transferencia. Igual que sucede con
    Server.Transfer, al ejecutar un archivo .asp
    éste se comporta como si formara parte de la
    aplicación inicial. Sin embargo, Server.Execute,
    no funciona cuando los servidores son
    distintos. Para obtener más información,
    consulte Server.Execute.

    Enviar contenido al explorador

    A medida que se procesa una secuencia de comandos ASP,
    el texto y los gráficos que no se encuentren entre
    delimitadores ASP o etiquetas <SCRIPT> se devuelve
    directamente al explorador. También puede enviar
    explícitamente contenido al explorador mediante el objeto
    Response.

    Enviar contenido

    Para enviar contenido al explorador desde delimitadores
    ASP o desde un procedimiento, utilice el método
    Write del objeto Response. Por
    ejemplo, la instrucción siguiente envía un saludo
    diferente al usuario dependiendo de si el usuario ha visitado la
    página con anterioridad o no:

    <%

    If blnFirstTime Then

    Response.Write "<H3 ALIGN=CENTER>Reciba nuestra
    bienvenida a la página de
    introducción</H3>"

    Else

    Response.Write "<H3 ALIGN=CENTER>Gracias por
    volver a la página de
    introducción</H3>"

    End If

    %>

    Fuera de un procedimiento, no tiene que utilizar
    Response.Write para devolver contenido al
    usuario. El contenido que no se encuentra dentro de delimitadores
    de secuencia de comandos se envía directamente al
    explorador, que da formato y presenta este contenido. Por
    ejemplo, la secuencia de comandos siguiente produce el mismo
    resultado que la secuencia de comandos anterior:

    <H3 ALIGN=CENTER>

    <% If blnFirstTime Then %>

    Reciba nuestra bienvenida a la página de
    introducción.

    <% Else %>

    Gracias por volver a la página de
    introducción.

    <%End If %>

    </H3>

    Intercale secuencias de comandos y código HTML
    cuando tenga que devolver el resultado una vez o cuando sea
    más cómodo agregar instrucciones a texto HTML
    existente. Utilice Response.Write cuando no
    desee dividir una instrucción con delimitadores o cuando
    desee generar la cadena de texto que vaya a devolver al
    explorador. Por ejemplo, podría generar una cadena de
    texto que creara una fila de una tabla con los valores enviados
    por un formulario HTML:

    Response.Write "<TR><TD>" &
    Request.Form("Nombre") _

    & "</TD><TD>" &
    Request.Form("Apellido") &
    "</TD></TR>"

    Request.Form devuelve los valores
    enviados por un formulario HTML (consulte Procesar los datos
    introducidos por el usuario).

    Nota   El
    carácter & es el carácter de
    continuación de cadenas de VBScript. El carácter de
    subrayado (_) es el carácter de continuación de
    línea de VBScript.

    Secuencias de comandos sencillas

    La siguiente secuencia de comandos ilustra las
    técnicas básicas que se utilizan en las secuencias
    de comandos ASP. Si no tiene experiencia en el desarrollo de
    aplicaciones o nunca ha escrito secuencias de comandos,
    éste es un buen lugar para empezar.

    Elija un ejemplo en la siguiente lista:

    • Variables: Muestra cómo crear y manipular
      variables en una secuencia de comandos ASP.
    • Bucles: Proporciona un ejemplo de las tres
      construcciones más comunes para crear bucles, For …
      Next
      , Do … Loop y While …
      Wend
      .
    • Operadores condicionales: Ilustra el uso de los
      operadores condicionales, como If … Then, en las
      secuencias de comandos ASP.
    • Matrices: Muestra cómo crear, administrar y
      tener acceso a matrices.
    • Archivos de inclusión del servidor: Muestra el
      uso de los archivos de inclusión del
      servidor.
    • Funciones y procedimientos: Muestra cómo crear
      y utilizar funciones y procedimientos en una secuencia de
      comandos ASP.

    Variables

    Introducción

    Todas las aplicaciones escritas a lo largo de la
    historia,
    independientemente del lenguaje de
    programación empleado, han utilizado variables de
    algún tipo y las secuencias de comandos ASP no son una
    excepción. Tanto VBScript como JScript permiten crear y
    administrar variables de forma fácil y
    sencilla.

    Cada lenguaje realiza de forma diferente la
    declaración de variables. JScript y VBScript son bastante
    flexibles en lo que respecta a las variables y su
    declaración. En VBScript, cualquier variable se considera
    automáticamente de tipo Variant si se declara
    inicialmente con la instrucción Dim. A cada
    variable se le asigna un subtipo, como Numeric y
    Array. JScript es parecido; la variable se declara
    inicialmente con la instrucción var. En general,
    ambos lenguajes tienden a realizar automáticamente gran
    parte de la administración de tipos de datos,
    incluida la conversión de tipos. De hecho, ni siquiera es
    necesario emplear las instrucciones Dim o var para
    utilizar una nueva variable; en sus respectivos lenguajes son
    opcionales.

    Paseo por el código

    Este ejemplo declara varios tipos diferentes de
    variables, realiza algunas operaciones
    sencillas en ellas y las muestra al explorador cliente con los
    delimitadores especiales de secuencias de comandos <% =
    …%>. Se asigna un entero a la variable intVariable,
    se suma a sí mismo y se envía el resultado al
    explorador cliente. A la variable StrVariable se le asigna
    el nombre, se agrega a Soto y se envía al explorador
    cliente. Del mismo modo se declaran o crean, inicializan,
    manipulan y muestran los valores booleanos y las
    fechas.

    Observaciones

    El último paso de la demostración de la
    variable de fecha es especialmente interesante. En VBScript,
    primero se asigna la variable a una cadena de fecha literal y
    después se muestra. Después se restablece y se
    asigna el valor devuelto por la función Now de
    VBScript, que devuelve la hora actual del sistema. El ejemplo de
    JScript utiliza la función Date de JScript para
    establecer el literal inicial, para lo que pasa parámetros
    a la función, y establecer después la fecha actual
    del sistema en la variable, sin pasar parámetros a la
    función.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <HTML>

    <HEAD>

    <TITLE>Variable Sample</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" TOPMARGIN="10"
    LEFTMARGIN="10">

    <!– Display header. –>

    <font FACE="ARIAL, HELVETICA">

    <B>Variable
    Sample</B></FONT><BR>

    <HR>

    <H3>Integer Manipulation</H3>

    <%

    'Declare variable.

    Dim intVar

    'Assign the variable an integer
    value.

    intVar = 5

    %>

    <P><%= intVar %> + <%= intVar %> =
    <%= intVar + intVar %></P>

    <HR>

    <H3>String Manipulation</H3>

    <%

    'Declare variable.

    Dim strVar

    'Assign the variable a string
    value.

    strVar = "Jemearl"

    %>

    <P>This example was done by <%= strVar + "
    Smith" %></P>

    <HR>

    <H3>Boolean Manipulation</H3>

    <%

    'Declare variable.

    Dim blnVar

    'Assign the variable a Boolean
    value.

    blnVar = true

    'Output message based on value.

    If (blnVar) Then

    Response.Write "<P>The Boolean value is
    True.</P>"

    Else

    Response.Write "<P>The Boolean value is
    False.</P>"

    End If

    %>

    <HR>

    <H3>Date and Time</H3>

    <%

    'Declare variable.

    Dim dtmVar

    'Assign the variable a value.

    dtmVar = #08 / 27 / 97 5:11:42pm#

    %>

    <P>The date and time is <%= dtmVar
    %>

    <%

    'Set the variable to the web server date and
    time.

    dtmVar = Now()

    %>

    <P>The <STRONG>system</strong> date
    and time is <%= dtmVar %></P>

    </BODY>

    </HTML>

    Bucles

    Introducción

    Los bucles representan uno de los mecanismos más
    importantes de control de flujo
    en un lenguaje de
    programación. Las construcciones en bucle proporcionan
    la base de cualquier aplicación que deba realizar una
    tarea de forma repetitiva, como sumar 1 a una variable, leer un
    archivo de texto o procesar y enviar un mensaje de correo
    electrónico.

    Paseo por el código

    VBScript y JScript proporcionan varios mecanismos para
    realizar bucles. Este ejemplo demuestra las tres instrucciones
    más comunes para realizar bucles, For … Next,
    Do … Loop y While … Wend. Estas tres
    instrucciones son ligeramente diferentes y la situación
    indicará cuál de las tres es la más
    indicada. Sin embargo, para este ejemplo, cada tipo de
    instrucción de bucle se utiliza para realizar la misma
    tarea: imprimir un saludo cinco veces, cada una de ellas con una
    fuente mayor. En cada instrucción de bucle se inicializa
    la variable i y se define la condición de prueba,
    de forma que i nunca sea mayor que 5. La variable se
    incrementa en 1 unidad en cada iteración del
    bucle.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <HTML>

    <HEAD>

    <TITLE>Looping</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" TOPMARGIN="10"
    LEFTMARGIN="10">

    <!– Display header. –>

    <font FACE="ARIAL, HELVETICA">

    <B>Looping with
    ASP</B></FONT><BR>

    <HR SIZE="1" COLOR="#000000">

    <!– Looping with a For loop.
    –>

    <%

    Dim intCounter

    For intCounter = 1 to 5 %>

    <FONT SIZE=<% = intCounter %>>

    Hello World with a For Loop!<BR>

    </FONT>

    <% next %>

    <HR>

    <!– Looping with a While…Wend loop.
    –>

    <%

    intCounter = 1

    While(intCounter < 6) %>

    <FONT SIZE=<% = intCounter %>>

    Hello World with a While Loop!<BR>

    </FONT>

    <% intCounter = intCounter + 1 %>

    <% wend %>

     <HR>

    <!– Looping with a Do…While loop.
    –>

    <%

    intCounter = 1

    Do While(intCounter < 6) %>

    <FONT SIZE=<% =intCounter %>>

    Hello World with a Do…While Loop!<BR>

    </FONT>

    <% intCounter = intCounter+1 %>

    <% loop %>

    </BODY>

    </HTML>

     Operadores condicionales

    Introducción

    Los operadores condicionales, junto con las variables y
    las construcciones de bucle, forman los pilares básicos de
    los lenguajes de
    programación y, por tanto, de las aplicaciones. Las
    aplicaciones basadas en Web que se implementan mediante
    secuencias de comandos ASP pueden aprovechar el control de flujo
    que proporcionan los operadores condicionales, así como la
    interactividad y la sofisticación de HTML.

    Paseo por el código

    Este ejemplo demuestra las instrucciones If …
    Then
    o if … else en VBScript y JScript, así
    como las instrucciones Select … Case y switch …
    case
    , más complejas. La demostración de cada
    una de estas instrucciones realiza la misma tarea: enviar una
    página al explorador cliente con la fecha y la hora
    actuales y un saludo. El texto del saludo será "Buenos
    días" o "Buenas tardes", dependiendo de si en el reloj del
    sistema aparece a.m. o p.m.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <HTML>

    <HEAD>

    <TITLE>Conditional Operator
    Sample</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" TOPMARGIN="10"
    LEFTMARGIN="10">

    <!– Display header. –>

    <font FACE="ARIAL, HELVETICA">

    <B>Conditional Operator
    Sample</B></FONT><BR>

    <HR SIZE="1" COLOR="#000000">

    <!– If…Then example –>

    <%

    Dim varDate

    varDate = Date()

    %>

    <P>The date is: <%= varDate
    %></P>

    <%

    'Select Case statement to display a message based
    on the day of the month.

    Select Case Day(varDate)

    Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

    Response.Write("<P>It's the beginning of the
    month.</P>")

    Case 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

    Response.Write("<P>It's the middle of the
    month.</P>")

    Case Else

    Response.Write("<P>It's the end of the
    month.</P>")

    End Select

    %>

    <P>The time is: <%= Time
    %></P>

    <%

    'Check for AM/PM, and output appropriate
    message.

    If (Right(Time,2)="AM") Then

    Response.Write("<P>Good
    Morning</P>")

    Else

    Response.Write("<P>Good Evening</P>")
    End If

    %>

    </BODY>

    </HTML>

    Funciones y procedimientos

    Introducción

    Las funciones y los procedimientos proporcionan un
    método para evitar tener que escribir varias veces un
    mismo bloque de código cada vez que desee realizar una
    tarea determinada. Tanto VBScript como JScript permiten llamar a
    una función o a un procedimiento desde cualquier lugar de
    una secuencia de comandos. Este ejemplo demuestra cómo
    puede crear y utilizar estas herramientas
    en secuencias de comandos ASP.

    Si no tiene ninguna función en la página
    ASP, el motor ASP se limita a procesar el archivo completo, de
    principio a fin, cada vez que lo pide un explorador cliente. Sin
    embargo, las funciones y los procedimientos se ejecutan
    sólo cuando se les llama, no con el resto del
    código.

    En VBScript o JScript las funciones y los procedimientos
    se indican mediante la instrucción Function.
    Además, VBScript establece una diferencia entre una
    función que devuelve un valor y otra que no lo hace; la
    primera de ellas se indica con la instrucción Sub,
    que la identifica como una subrutina.

    Paseo por el código

    Este ejemplo define una función,
    PrintOutMsg, que toma como parámetros un mensaje y
    un número que especifica cuántas veces se
    escribirá el mensaje en el explorador cliente mediante el
    método Response.Write. Para este ejemplo, la
    función se limita a devolver al explorador cliente el
    número de veces que se imprimió el
    mensaje.

    Observaciones

    Es importante tener en cuenta el atributo RUNAT de la
    etiqueta <SCRIPT>. SI no se incluye, ASP asumirá que
    se trata de una secuencia de comandos del cliente y
    devolverá el código al explorador para que lo
    procese. Esto haría que ASP no reconociera la llamada a la
    función PrintOutMsg, devolviera un error y anulara
    la ejecución.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <SCRIPT LANGUAGE=VBScript RUNAT=Server>

    'Define Server Side Script Function.

    Function PrintOutMsg(strMsg, intCount)

    Dim i

    'Output Message count times.

    For i = 1 to intCount

    Response.Write(strMsg & "<BR>")

    Next

    'Return number of iterations.

    PrintOutMsg = intCount

    End Function

    </SCRIPT>

    <HTML>

    <HEAD>

    <TITLE>Functions</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" TOPMARGIN="10"
    LEFTMARGIN="10">

    <!– Display header. –>

    <font FACE="ARIAL, HELVETICA">

    <B>Server Side
    Functions</B></FONT><BR>

    <P>

    The function "PrintOutMsg" prints out a specific message
    a set number of times.<P>

    <%

    'Store number of times function printed
    message.

    Dim intTimes

    'Call function.

    intTimes = PrintOutMsg("This is a function test!",
    4)

    'Output the function return value.

    Response.Write("<p>The function printed out the
    message " & intTimes & " times.")

    %>

    </BODY>

    </HTML>

    Datos introducidos por el usuario en un formulario
    con POST

    Introducción

    Probablemente, la forma más básica de
    interactividad Web es el formulario HTML. Es importante tener en
    cuenta que ASP no sustituye a los formularios, sino que los
    mejora y hace que sea más fácil implementarlos y
    administrarlos.

    La etiqueta HTML <FORM> especifica qué
    método utilizará el formulario para comunicar la
    información a la secuencia de comandos que la
    procesará. El atributo del método POST
    indica que la información del formulario pasará a
    través de una conexión HTTP independiente a la
    secuencia de comandos o al programa que la
    procesará. La secuencia de comandos o el programa pueden
    analizar la información y realizar cualquier tarea que sea
    necesaria, y devolver el resultado al explorador
    cliente.

    Paseo por el código

    Este ejemplo muestra cómo implementar un
    formulario sencillo mediante el atributo del método
    POST de HTTP, así como una de las principales
    ventajas de la creación de formularios mediante ASP: la
    posibilidad de combinar el formulario y el código de
    proceso real en un mismo archivo. Este ejemplo crea un
    pequeño formulario con dos cuadros de entrada de texto,
    uno para el nombre del usuario (fname) y otro para el
    apellido (lname). Para obtener el valor de las variables
    fname y lname en la petición se tiene acceso
    a la colección Request.Forms y después se
    muestran los resultados en la parte inferior de la
    página.

    La primera vez que se ejecuta la secuencia de comandos
    no aparece ningún texto debajo de la línea
    horizontal. Esto se debe a que no había información
    disponible para pasarla a la secuencia de comandos cuando se
    inició y ASP pasa por alto las búsquedas de
    Request.Forms si no existe información. Sin
    embargo, si hace clic en el botón Enviar, se
    cargará de nuevo la página y la secuencia de
    comandos ya dispondrá de la información que
    escribió en los cuadros de texto.

    <%@ Language = VBScript %>

    <% Option Explicit %>

    <HTML>

    <HEAD>

    <TITLE>Form Posting</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" TOPMARGIN="10"
    LEFTMARGIN="10">

    <!– Display header. –>

    <font FACE="ARIAL, HELVETICA">

    <B>Form
    Posting</B></FONT><BR>

    <HR>

    <P>This page will take the information entered
    in the form fields, and use the POST method to send the data to
    an ASP page.

    <FORM NAME=Form1 METHOD=Post
    ACTION="Form_VBScript.asp">

    First Name: <INPUT TYPE=Text
    NAME=fname><P>

    Last Name: <INPUT TYPE=Text
    NAME=lname><P>

    <INPUT TYPE=Submit VALUE="Submit">

    </FORM>

    <HR>

    <% Response.Write Request.form("fname")%>
    <BR>

    <% Response.Write Request.form("lname")%>
    <BR>

    </BODY>

    </HTML>

    Llenar los campos

    Introducción

    Puede utilizar formularios para recopilar datos de los
    usuarios, pero también puede utilizarlos para mostrar
    información. Por ejemplo, si un explorador cliente tiene
    acceso al motor de búsqueda de su directorio de
    teléfonos, querrá mostrar los resultados de la
    búsqueda. La secuencia de comandos de búsqueda (que
    también puede implementar mediante ASP) acepta los datos
    introducidos por el usuario, tiene acceso a la base de datos y
    envía el resultado al formulario de presentación en
    una cadena de consulta. Este ejemplo es una demostración
    sencilla de cuál sería la apariencia del
    formulario.

    Paseo por el código

    Para este ejemplo, los datos se incluyen en el
    código de la secuencia de comandos pero, obviamente, la
    información podría provenir de un formulario
    interactivo, de una base de datos o de un archivo de texto. Al
    iniciarse el ejemplo se inicializan las variables.
    Después, crea un formulario con las etiquetas HTML
    <FORM> y define cuatro cuadros de texto. Por último,
    con los delimitadores de secuencias de comandos del servidor
    <%= … %>, la secuencia de comandos llena los cuadros de
    texto con los valores establecidos en la
    inicialización.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <%

    'Create and set variables that will be used in
    populating 'the form. In a typical application, these values
    would come from a database or text file.

    Dim strFirstName

    Dim strLastName

    Dim strAddress1

    Dim strAddress2

    Dim blnInfo

    strFirstName = "John"

    strLastName = "Doe"

    strAddress1 = "1 Main Street"

    strAddress2 = "Nowhere ZA, 12345"

    %>

    <HTML>

    <HEAD>

    <TITLE>PopulateForm
    Sample</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" TOPMARGIN="10"
    LEFTMARGIN="10">

    <!– Display header. –>

    <font FACE="ARIAL, HELVETICA">

    <B>PopulateForm
    Sample</B></FONT><BR>

    <HR SIZE="1" COLOR="#000000">

    <FORM ACTION="">

    <!– Use ASP variables to fill out the form.
    –>

    <P>First Name: <INPUT TYPE="TEXT" NAME="FNAME"
    VALUE="<%= strFirstName %>"></P>

    <P>Last Name: <INPUT TYPE="TEXT" NAME="LNAME"
    VALUE="<%= strLastName %>"></P>

    <P>Street: <INPUT TYPE="TEXT" NAME="STREET"
    VALUE="<%= strAddress1%>"></P>

    <P>City State, Zip: <INPUT TYPE="TEXT"
    NAME="FNAME" VALUE="<%= strAddress2
    %>"></P>

    </BODY>

    </HTML>

    Conectividad con bases de datos

    Si va a crear una aplicación basada en Web, lo
    más probable es que tenga formularios. Posiblemente,
    también tendrá que conectarla de alguna forma con
    una base de datos. ActiveX® Data Objects (ADO)
    proporciona un conjunto de eficaces herramientas
    que le permitirán tener acceso a orígenes de datos
    y manipularlos.

    Los ejemplos de esta sección ilustran las
    técnicas necesarias para utilizar ADO de forma efectiva y
    cómo puede utilizar mejor estas funciones en una
    aplicación basada en Web.

    • Consulta sencilla: Muestra cómo utilizar ADO y
      ASP para realizar consultas sencillas en una base de
      datos.
    • Limitar los resultados de una consulta: Muestra
      cómo es posible utilizar ASP y ADO en las secuencias de
      comandos para limitar el número de filas devueltas en un
      conjunto de registros.
    • Consulta desplazable: Muestra cómo realizar
      con ADO una consulta desplazable multidireccional.
    • Agregar o eliminar registros: Presenta las
      técnicas necesarias para agregar y eliminar registros de
      un origen de datos mediante ASP y ADO.
    • Actualizar registros: Muestra cómo utilizar
      ADO en una aplicación para actualizar los registros
      existentes.
    • Ejecutar procedimientos almacenados: Muestra
      cómo utilizar ADO con las secuencias de comandos ASP
      para ejecutar procedimientos almacenados de la base de
      datos.

    Para obtener más información acerca de ADO
    y de las herramientas de acceso a datos de Microsoft en general,
    consulte la documentación de Microsoft Data
    Access
    .

    Consulta sencilla

    Introducción

    Aunque una base de datos puede ser un sistema muy
    complicado y las herramientas de acceso a datos deben ser
    eficaces y sensibles, es igualmente importante que las tareas
    sencillas de acceso a bases de datos sean fáciles de
    realizar. Este ejemplo demuestra cómo ADO proporciona un
    método sencillo para realizar este tipo de
    tareas.

    Paseo por el código

    El objetivo de
    esta aplicación de ejemplo es obtener un pequeño
    conjunto de registros de una base de datos de
    Microsoft® Access e imprimir
    el resultado. El primer paso consiste en crear una instancia del
    objeto Connection mediante el método
    Server.CreateObject. El ejemplo utiliza la instancia del
    objeto Connection para abrir el proveedor de datos OLE DB
    y, después, para ejecutar un comando SELECT de SQL
    y así obtener todos los registros de la tabla Autores.
    Para terminar, la secuencia de comandos recorre la
    colección del conjunto de registros obtenido y muestra los
    resultados. Después se cierran el conjunto de registros y
    la conexión con el origen de datos OLE DB.

    Importante   OLE DB debe estar
    correctamente configurado en el servidor para que este ejemplo
    funcione correctamente.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <HTML>

    <HEAD>

    <TITLE>Simple ADO Query</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" topmargin="10"
    leftmargin="10">

    <!– Display Header –>

    <font face="Arial, Helvetica">

    <b>Simple ADO Query with
    ASP</b></font><br>

    <hr size="1" color="#000000">

    Contacts within the Authors
    Database:<br><br>

    <%

    Dim oConn

    Dim oRs

    Dim filePath

    Dim Index

    ' Map authors database to physical
    path

    filePath = Server.MapPath("authors.mdb")

    ' Create ADO Connection Component to
    connect

    ' with sample database

    Set oConn =
    Server.CreateObject("ADODB.Connection")

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

    ' Execute a SQL query and store the
    results

    ' within recordset

    Set oRs = oConn.Execute("SELECT * From
    Authors")

    %>

      <TABLE border = 1>

    <%

    Do while (Not oRs.eof) %>

    <tr>

    <% For Index=0 to (oRs.fields.count-1)
    %>

    <TD VAlign=top><% =
    oRs(Index)%></TD>

    <% Next %>

    </tr>

    <% oRs.MoveNext

    Loop

    %>

    </TABLE>

    <%

    oRs.close

    oConn.close

    %>

    </BODY>

    </HTML>

    Agregar o eliminar registros

    Introducción

    Este ejemplo muestra las técnicas que necesita
    conocer para utilizar ASP y ADO con el fin de agregar y eliminar
    registros de una base de datos.

    Paseo por el código

    Primero se utiliza CreateObject para crear una
    instancia del objeto Connection, que a su vez se utiliza
    para abrir una conexión con el proveedor de datos OLE DB.
    Se utiliza de nuevo CreateObject para crear un objeto
    Recordset vacío. Se configura la propiedad
    ActiveConnection para hacer referencia al nuevo objeto
    Connection.

    Aunque el objeto Recordset de ADO proporciona el
    método AddNew para agregar nuevos registros a una
    base de datos, puede que la escalabilidad mejore si envía
    comandos INSERT de SQL directamente al motor de base de datos.
    Este ejemplo utiliza el comando Recordset.Execute, junto
    con la cadena de comandos apropiada de SQL, para insertar
    información acerca de un nuevo autor.

    En este momento se crea otra instancia del objeto
    Recordset y se abre con otro comando SQL. Se selecciona el
    registro recién agregado y se elimina, para lo cual se
    pasa el comando DELETE de SQL directamente al motor de base de
    datos. Por último, finaliza la secuencia de
    comandos.

    Importante   OLE DB debe estar
    correctamente configurado en el servidor para que este ejemplo
    funcione correctamente.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <% Response.Expires= -1 %>

    <!–METADATA TYPE="typelib"

    uuid="00000205-0000-0010-8000-00AA006D2EA4"
    –>

    <HTML>

    <HEAD>

    <TITLE>Add/Delete Database
    Sample</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" topmargin="10"
    leftmargin="10">

    <!– Display Header –>

    <font face="Arial, Helvetica">

    <b>Add/Delete Database
    Sample</b></font><br>

    <hr size="1" color="#000000">

    <%

    Dim oConn

    Dim oRs

    Dim filePath

    ' Map authors database to physical
    path

    filePath = Server.MapPath("authors.mdb")

    ' Create ADO Connection Component to connect with
    sample database

    Set oConn =
    Server.CreateObject("ADODB.Connection")

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

    ' To add, delete and update recordset, it is
    recommended to use

    ' direct SQL statement instead of ADO
    methods.

    oConn.Execute "insert into authors (author, YearBorn)
    values ('Paul Enfield', 1967)"

    ' Output Result

    Set oRs = oConn.Execute (" select * from authors where
    Author= 'Paul Enfield' and YearBorn =1967 " )

    Response.Write("<p>Inserted Author: " &
    oRs("Author") & "," & oRs("YearBorn"))

    ' Close Recordset

    oRs.Close

    Set oRs= Nothing

    ' Delete the inserted record

    oConn.Execute "Delete From authors where author='Paul
    Enfield' and YearBorn = 1967 "

    ' Output Status Result

    Response.Write("<p>Deleted Author: Paul Enfield,
    1967")

    %>

    </BODY>

    </HTML>

    Actualizar registros

    Introducción

    Este ejemplo muestra cómo utilizar ADO en una
    aplicación para actualizar los registros
    existentes.

    Paseo por el código

    Primero se utiliza CreateObject para crear una
    instancia del objeto Connection, que a su vez se utiliza
    para abrir una conexión con el proveedor de datos OLE DB.
    Se utiliza de nuevo CreateObject para crear un objeto
    Recordset vacío. Se configura la propiedad
    ActiveConnection para hacer referencia al nuevo objeto
    Connection.

    Después se configura el nuevo conjunto de
    registros. El método Recordset.Execute utiliza como
    parámetro una cadena de comandos SQL. Este ejemplo utiliza
    una cadena de comandos UPDATE de SQL para realizar la
    actualización en los registros adecuados de la base de
    datos.

    <%@ LANGUAGE = VBScript %>

    <% Option Explicit %>

    <!–METADATA TYPE="typelib"

    uuid="00000205-0000-0010-8000-00AA006D2EA4"
    –>

    <HTML>

    <HEAD>

    <TITLE>Update Database</TITLE>

    </HEAD>

    <BODY BGCOLOR="White" topmargin="10"
    leftmargin="10">

    <!– Display Header –>

    <font face="Arial, Helvetica">

    <b>Update
    Database</b></font><br>

    <hr size="1" color="#000000">

    <%

    Dim oConn ' object for ADODB.Connection
    obj

    Dim oRs ' object for output recordset
    object

    Dim filePath ' Directory of authors.mdb
    file

    ' Map authors database to physical
    path

    filePath = Server.MapPath("authors.mdb")

    ' Create ADO Connection Component to connect with
    sample database

    Set oConn =
    Server.CreateObject("ADODB.Connection")

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

    ' To add, delete and update recordset, it is
    recommended to use

    ' direct SQL statement instead of ADO
    methods.

    oConn.Execute "Update Authors Set Author ='Scott
    Clinton'" _

    & "where Author='Scott Guthrie' "

    Set oRs = oConn.Execute ( "select * from Authors where
    author" _

    & "= 'Scott Clinton'" )

    %>

    Changed Author: <%= oRs("Author") %>, <%=
    oRs("Yearborn") %> <P>

    <%

    oConn.Execute "Update Authors Set Author ='Scott
    Guthrie'" _

    & "where Author='Scott Clinton' "

    Set oRs = oConn.Execute ( "select * from Authors where
    author" _

    & "= 'Scott Guthrie'" )

    %>

    Changed Author: <%= oRs("Author") %>, <%=
    oRs("Yearborn") %>

    </BODY>

    </HTML>

    MapPath

    El método MapPath asigna al directorio
    físico correspondiente del servidor la ruta virtual o
    relativa especificada.

    Sintaxis

    Server.MapPath( Ruta )

    Parámetros

    Ruta

    Especifica la ruta virtual o relativa que se
    asignará a un directorio físico. Si Ruta
    comienza con una barra diagonal (/) o con una barra diagonal
    inversa (), el método MapPath devuelve la ruta
    como si Ruta fuera una ruta virtual completa. Si
    Ruta no comienza con una barra diagonal, el método
    MapPath devuelve una ruta relativa al directorio del
    archivo .asp que se procesa.

    Observaciones

    El método MapPath no comprueba si la ruta
    que devuelve existe en el servidor o si es
    válida.

    Como el método MapPath asigna la ruta
    independientemente de si los directorios especificados existen o
    no, puede utilizarlo para asignar una ruta a una estructura
    física de directorios y, después, pasarla a un
    componente que cree en el servidor el directorio o el archivo
    especificado.

    Puede utilizar la sintaxis de ruta relativa para el
    parámetro Ruta si el valor de la propiedad
    AspEnableParentPaths es TRUE (que es el valor predeterminado). Si
    le preocupa permitir que las secuencias de comandos tengan acceso
    a la estructura
    física de directorios, puede deshabilitar esta característica si asigna el valor FALSE a
    la propiedad AspEnableParentPaths. Para ello puede
    utilizar el complemento Servicios de
    Internet Information Server o una secuencia de
    comandos.

    Ejemplo

    Para los siguientes ejemplos, el archivo data.txt se
    encuentra en el directorio C:InetpubWwwrootScript, al igual
    que el archivo test.asp, que
    contiene las siguientes secuencias de comandos. El directorio
    C:InetpubWwwroot se establece como directorio particular del
    servidor.

    El siguiente ejemplo utiliza la variable de servidor
    PATH_INFO para asignar la ruta física al archivo actual.
    La siguiente secuencia de comandos

    <%=
    server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>

    produce el resultado

    c:inetpubwwwrootscripttest.asp<BR>

    Como los parámetros de la ruta de los siguientes
    ejemplos no empiezan con un carácter de barra diagonal, se
    asignan de forma relativa al directorio actual, en este caso
    C:InetpubWwwrootScript. Las siguientes secuencias de
    comandos

    <%=
    server.mappath("data.txt")%><BR>

    <%=
    server.mappath("script/data.txt")%><BR>

    producen el siguiente resultado

    c:inetpubwwwrootscriptdata.txt<BR>

    c:inetpubwwwrootscriptscriptdata.txt<BR>

    Los dos ejemplos siguientes utilizan el carácter
    de barra diagonal para especificar que la ruta que se obtiene
    debe buscarse como ruta virtual completa del servidor. Las
    siguientes secuencias de comandos

    <%=
    server.mappath("/script/data.txt")%><BR>

    <%=
    server.mappath("script")%><BR>

    producen el siguiente resultado

    c:inetpubwwwrootscriptdata.txt<BR>

    c:inetpubwwwrootscript<BR>

    Los siguientes ejemplos muestran cómo puede
    utilizar una barra diagonal (/) o una barra diagonal inversa ()
    para obtener la ruta física al directorio particular. Las
    siguientes secuencias de comandos

    <%= server.mappath("/")%><BR>

    <%= server.mappath("")%><BR>

    producen el siguiente resultado

    c:inetpubwwwroot<BR>

    c:inetpubwwwroot<BR>

    El siguiente documento es un manual de ASP,
    trata los principales comandos de ASP, desde lo mas sencillo o lo
    intermedio, comandos y utilidades basicas para el desarrollo de
    paginas Web interactivas, haciendo uso del Microsoft Internet Information
    Service.
    Dicho manual fue tomado
    de los principales puntos de la ayuda de Windows 2000
    Professional. P.P/p.p.

     

     

    Autor:

    ppadron[arroba]telcel.net.ve

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter