asp active server pages victor robles forcada victor robles forcada oscar cubo medina oscar cubo...

105
ASP ASP Active Server Pages Active Server Pages Victor Robles Forcada Victor Robles Forcada <[email protected]> <[email protected]> Oscar Cubo Medina <[email protected]> Oscar Cubo Medina <[email protected]> Santiago González Tortosa Santiago González Tortosa <[email protected]> <[email protected]> Programación Web en Servidor Programación Web en Servidor INEM – 2008 INEM – 2008

Upload: juanita-rodrigo

Post on 13-Feb-2015

9 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ASPASPActive Server PagesActive Server Pages

Victor Robles Forcada <[email protected]>Victor Robles Forcada <[email protected]>Oscar Cubo Medina <[email protected]>Oscar Cubo Medina <[email protected]>

Santiago González Tortosa Santiago González Tortosa <[email protected]><[email protected]>

Programación Web en ServidorProgramación Web en ServidorINEM – 2008INEM – 2008

Page 2: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ContenidosContenidos IntroducciónIntroducción

Estáticas VS DinámicasEstáticas VS Dinámicas Arquitectura de Arquitectura de

AplicacionesAplicaciones CGICGI

Lenguaje ASPLenguaje ASP FuncionamientoFuncionamiento RequisitosRequisitos Ventajas e InconvenientesVentajas e Inconvenientes ConfiguraciónConfiguración

Programación con Programación con VBScriptVBScript Constantes y VariablesConstantes y Variables OperadoresOperadores

Estructuras de ControlEstructuras de Control BuclesBucles Funciones y Funciones y

ProcedimientosProcedimientos Modelo de ObjetosModelo de Objetos

Application, Session, Application, Session, Request, Response, …Request, Response, …

Acceso a FicherosAcceso a Ficheros Objeto Objeto FileSystemObjectFileSystemObject Operaciones sobre Operaciones sobre

FicherosFicheros Acceso a Bases de DatosAcceso a Bases de Datos

Introducción a BBDDIntroducción a BBDD Objetos para Acceso a Objetos para Acceso a

BBDDBBDD ReferenciasReferencias

Page 3: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

IntroducciónIntroducción

ASPASP

Page 4: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

IntroducciónIntroducción

Paginas Estáticas VS Páginas Paginas Estáticas VS Páginas DinámicasDinámicas

Arquitectura de AplicacionesArquitectura de Aplicaciones Modelo 3 capasModelo 3 capas Cliente VS ServidorCliente VS Servidor Scripts y CGIScripts y CGI

Page 5: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Páginas estáticasPáginas estáticas

Servidor Web dewww.fi.upm.es

http://www.fi.upm.es

<HTML>…<IMG src=“logo.gif”>…</HTML>

GET “www.fi.upm.es”

GET “www.fi.upm.es/logo.gif”

Logo.gif

Index.html

Page 6: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Páginas dinámicasPáginas dinámicas

Servidor Web dewww.fi.upm.es

http://search.unisys.com/search/default.asp?section=allsections&q1=http&Submit=

Go

GET “…&Submit=Go”

BDSdfgdfg dfg

Dsf gsdfg sdfgDsfg dsfg sdfg

Dfg Sdfgdfg dfg

Dsf gsdfg sdfgDsfg dsfg sdfg

Dfg Sdfgdfg dfg

Dsf gsdfg sdfgDsfg dsfg sdfg

Dfg

+Plantillas

Lógica de negocio

Respuesta dinámica

Page 7: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Arquitectura de Arquitectura de AplicacionesAplicaciones

Servicios de usuario

Interfaz de usuario

Servicios de trabajo Servicios de datos

Lógicade

negocio

Datos

Page 8: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de 3 capasModelo de 3 capas

Navegador

Servidor Web

Presentación

Lógica de negocio

Acceso a datos

Page 9: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Aplicaciones WebAplicaciones WebCliente

Browser

ClienteBrowser HTTP

Máquina ServidoraClienteNo

Browser

ClienteNo

Browser

ServiciosSoportados

DBMS

Lógica denegocio

ServidorWeb

DBMS

Protocolo deobjetos

Aplicacionesexistentes

Page 10: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

El mundo del ClienteEl mundo del Cliente

HTML / DHTML / CSSHTML / DHTML / CSS Lenguajes de script: JavaScript / Lenguajes de script: JavaScript /

VBScriptVBScript Applet Java / Active XApplet Java / Active X

Page 11: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

El mundo del ServidorEl mundo del Servidor HTML / DHTML / XMLHTML / DHTML / XML ASP / JSP / PHPASP / JSP / PHP CGICGI VBScript / JavaScriptVBScript / JavaScript Servlets / ScriptletsServlets / Scriptlets COM / DCOM / COM+ / EJBCOM / DCOM / COM+ / EJB ODBC / JDBC / OLE DB / ADOODBC / JDBC / OLE DB / ADO

Page 12: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Lenguajes de script en Lenguajes de script en cliente: JavaScript y VBScriptcliente: JavaScript y VBScript

VBScript sólo para Internet VBScript sólo para Internet ExplorerExplorer

JavaScript ampliamente utilizadoJavaScript ampliamente utilizado Cada navegador tiene sus propias Cada navegador tiene sus propias

extensionesextensiones Muy usados para realización de Muy usados para realización de

cálculos y validación de cálculos y validación de formulariosformularios

Page 13: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

CGICGI

Common Gateway InterfaceCommon Gateway Interface Se pueden desarrollar con Se pueden desarrollar con

cualquier lenguaje cualquier lenguaje Por aspectos de seguridad se Por aspectos de seguridad se

almacenan en directorios almacenan en directorios específicos del servidorespecíficos del servidor

Page 14: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

CGICGI

VentajasVentajas Cualquier lenguaje de programaciónCualquier lenguaje de programación Altamente extendidosAltamente extendidos Todas las plataformasTodas las plataformas

InconvenientesInconvenientes Ojo con el uso de ejecutables en Ojo con el uso de ejecutables en

servidorservidor Van lentos en IISVan lentos en IIS

Page 15: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Lenguaje ASPLenguaje ASP

ASPASP

Page 16: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ASPASP

¿Qué es?¿Qué es? FuncionamientoFuncionamiento RequisitosRequisitos Ventajas e InconvenientesVentajas e Inconvenientes Configuración del SistemaConfiguración del Sistema

Page 17: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ASPASP

¿Qué es?¿Qué es? Active Server Pages – Paginas Activas Active Server Pages – Paginas Activas

en Servidoren Servidor Es un lenguaje de programaciónEs un lenguaje de programación

Generación de páginas dinámicasGeneración de páginas dinámicas Servidor WindowsServidor Windows Anexo a IIS (Internet Information Anexo a IIS (Internet Information

Server)Server)

Page 18: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

FuncionamientoFuncionamiento

IIS

<HTML><HTML><TITLE>Ejemplo</TITLE><TITLE>Ejemplo</TITLE><BODY><BODY><H1>Un ejemplo de ASP</H1><H1>Un ejemplo de ASP</H1><% <% response.write "<HR>"response.write "<HR>" response.write "Hola!"response.write "Hola!" response.write "<HR>” response.write "<HR>” %>%></BODY></BODY></HTML></HTML>

ejemplo.asp

4) El Browser muestra el

HTML

Browser 2) El servidor Web lee HTML y

ejecuta script

3) HTML resultante es enviado al

browser a través de HTTP

<HTML><HTML><TITLE>Ejemplo</TITLE><TITLE>Ejemplo</TITLE><BODY><BODY><H1>Un ejemplo de ASP</H1><H1>Un ejemplo de ASP</H1><HR><HR>Hola!Hola!<HR> <HR> </BODY></BODY></HTML></HTML>

1) Petición de URL a través de HTTP

Page 19: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Ejemplo de ASPEjemplo de ASP

<% For i=3 to 7 %><FONT SIZE="<% =i %>">Hola Mundo</FONT><BR>

<% Next %>

<FONT SIZE="3">Hola Mundo</FONT><BR><FONT SIZE="4">Hola Mundo</FONT><BR><FONT SIZE="5">Hola Mundo</FONT><BR><FONT SIZE="6">Hola Mundo</FONT><BR><FONT SIZE="7">Hola Mundo</FONT><BR>

Ejecución del código

Page 20: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Requisitos para ejecutar Requisitos para ejecutar ASPASP

Servidor Web: Servidor Web: IIS (Internet Information Server)IIS (Internet Information Server) PWS (Personal Web Server)PWS (Personal Web Server)

DriversDrivers ODBC de acceso a Bases ODBC de acceso a Bases de Datosde Datos

Editor de TextoEditor de Texto

Page 21: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

¿Por qué páginas ASP?¿Por qué páginas ASP? VentajasVentajas

Independientes del navegador Independientes del navegador Fácil de crear y usar Fácil de crear y usar Diferentes lenguajes de script válidos Diferentes lenguajes de script válidos No más gastos en Software No más gastos en Software

InconvenientesInconvenientes Muy ligado a Microsoft Muy ligado a Microsoft Mala depuración Mala depuración

Muchísimos WebSites están hechos Muchísimos WebSites están hechos con ASPcon ASP

Page 22: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Configuración del Configuración del sistemasistema

¿Dónde se ponen las páginas ASP? ¿Dónde se ponen las páginas ASP? Directorio Directorio c:\inetpub\wwwrootc:\inetpub\wwwroot

Configuración del directorioConfiguración del directorio El usuario es El usuario es IUSR_IUSR_nombremaqinanombremaqina Necesita acceso de Lectura/EjecuciónNecesita acceso de Lectura/Ejecución En caso de Base de Datos, también En caso de Base de Datos, también

necesita acceso de Escrituranecesita acceso de Escritura Ejercicio 1Ejercicio 1: poner nuestro entorno : poner nuestro entorno

en producción.en producción.

Page 23: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Programación con Programación con VBScriptVBScript

ASPASP

Page 24: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Programación con Programación con VBScriptVBScript

VariablesVariables ConstantesConstantes ComentariosComentarios OperadoresOperadores Estructuras de ControlEstructuras de Control BuclesBucles Funciones y ProcedimientosFunciones y Procedimientos

Page 25: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

VariablesVariables En general:En general:

No hay que declararlas. No hay que declararlas. SueleSuele ser útil declararlas. ser útil declararlas. Option ExplicitOption Explicit (obliga a declararlas) (obliga a declararlas)

<% Dim x %><% Dim x %>

Sólo hay un tipo, el Sólo hay un tipo, el variantvariantx = 36x = 36

x = “Mi texto”x = “Mi texto”

Imprimir valor de variableImprimir valor de variable<% Response.Write (nombre_variable) %><% Response.Write (nombre_variable) %>

<% =nombre_variable %><% =nombre_variable %>

Page 26: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Contantes, Operadores, …Contantes, Operadores, … ConstantesConstantes

Se declaran con Se declaran con ConstConst No cambian Const pi = 3.14159

Comentarios ‘Esto es un comentario

Operadores +, -, *, / \ división entera, ^ exponenciación Concatenar strings & Lógicos: NOT, AND, OR y XOR Comparación: =, <>, <, >, <= y >=

Page 27: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Constantes, Constantes, Operadores…Operadores…

Ejemplo 2:Ejemplo 2: Calcular el precio real de Calcular el precio real de dos ordenadores, que cuestan:dos ordenadores, que cuestan: 1123 euros 1123 euros 1326 euros1326 euros

Ambos sin iva. El programa debe Ambos sin iva. El programa debe devolver un mensaje personalizado.devolver un mensaje personalizado.

Santi, el precio total del ordenador 1 es: XXX Santi, el precio total del ordenador 1 es: XXX euroseuros

Santi, el precio total del ordenador 2 es: YYY Santi, el precio total del ordenador 2 es: YYY euroseuros

Page 28: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Estructuras de controlEstructuras de control

If .. Then ... ElseIfIf .. Then ... ElseIf<%x = 23If x < 0 Then

%><B>Número Negativo</B><%

ElseIf x>0 Then%><B>Número Positivo</B><%

Else%><B>Es cero</B><%

End If%>

If condicióncondición Thensentenciassentencias

Elseif condición2condición2 Thensentencias2sentencias2

Elsesentencias3sentencias3

End If

Page 29: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Estructuras de ControlEstructuras de Control

Ejemplo 3:Ejemplo 3: Ejecutar un programa Ejecutar un programa que escriba una frase distinta que escriba una frase distinta cuando se cumpla una determinada cuando se cumpla una determinada condición, según el siguiente valor:condición, según el siguiente valor: Valor “1”Valor “1” Valor “2”Valor “2” Otro valor (3, 4, 0 …)Otro valor (3, 4, 0 …)

Page 30: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

BuclesBucles

Do while/untilDo while/until Do...loop while/untilDo...loop while/until For…NextFor…Next For Each…NextFor Each…Next WhileWhile

Exit DoExit Do Exit ForExit For

Page 31: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

BuclesBucles

Do While... LoopDo While... Loop

<%x = 10Do While x > 0

%><B><% =X %></B><BR>x = x - 1

Loop%>

Do While condiciónsentencias

Loop

Page 32: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

For ... NextFor ... Next

<% For x = 1 To 5 %><B><% =X %></B><BR>

<% Next %>

For variable = inicio To finsentencias

Next

BuclesBucles

Page 33: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Do while/untilDo while/until

Do WhileDo Whiledo while condicióndo while condición

sentenciassentencias

looploop

EjemploEjemplodo while a <= 10do while a <= 10

a = a + 1a = a + 1

looploop

Do UntilDo Untildo until condicióndo until condición

sentenciassentencias

looploop

EjemploEjemplodo until a > 10do until a > 10

a = a + 1a = a + 1

looploop

Page 34: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Do…loop while/untilDo…loop while/until

Do…loop WhileDo…loop Whiledodo

sentenciassentencias

loop while condiciónloop while condición

EjemploEjemplododo

a = a + 1a = a + 1

loop while a <= 10loop while a <= 10

Do…loop UntilDo…loop Untildodo

sentenciassentencias

loop until condiciónloop until condición

EjemploEjemplododo

a = a + 1a = a + 1

loop until a > 10loop until a > 10

Page 35: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

For (each)…NextFor (each)…Next

For…NextFor…NextFor variable = inicio For variable = inicio

to finto fin

sentenciassentencias

NextNext

EjemploEjemploFor i = 1 to 10For i = 1 to 10

a = a + 1a = a + 1

NextNext

For each…NextFor each…NextFor each variable in seqFor each variable in seq

sentenciassentencias

NextNext

EjemploEjemploFor each persona in For each persona in

colacola

contador = contador contador = contador + 1+ 1

NextNext

Page 36: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

WhileWhile For each…NextFor each…Next

While condiciónWhile condiciónsentenciassentencias

WendWend

EjemploEjemploDim valueDim valueValue = 1Value = 1While value < 10While value < 10

value = value + 1value = value + 1WendWend

Page 37: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

BuclesBucles

Ejercicio 4:Ejercicio 4: Realizar la tabla de Realizar la tabla de multiplicar del 1 hasta el 10, con multiplicar del 1 hasta el 10, con valores del 1 al 10.valores del 1 al 10.

11 22 33

22 44 66

33 66 99

Page 38: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

FuncionesFunciones Devuelve un valorDevuelve un valor

Function gradosCelsius(gradosCent)gradosCelsius = (gradosCent - 32) * 5 / 9

End Function

cent = 35celsius = gradosCelsius(cent)

Mismo nombre que función

Function nombrenombre (parametrosparametros)setenciasnombre = …

End Function

Page 39: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ProcedimientosProcedimientos No devuelven valorNo devuelven valor

<% Sub trata_Cadena (miCadena)%>La cadena inicial: <% =miCadena %><BR>En mayúsculas: <% =UCase(miCadena) %><BR>Número caracteres: <% =Len(miCadena) %><BR>

<% End Sub %>

Sub nombrenombre (parametrosparametros)sentencias

End Sub

Page 40: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ProcedimientosProcedimientos

Llamar a SubLlamar a Sub

Call trata_Cadena("Cuántas letras tengo?")trata_Cadena "Cuántas letras tengo?"

Page 41: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Funciones y Funciones y ProcedimientosProcedimientos

Ejemplo 5a:Ejemplo 5a: Realizar la suma de los Realizar la suma de los 100 primeros números (número 100 primeros números (número triangular) utilizando funciones.triangular) utilizando funciones.

Ejemplo 5b:Ejemplo 5b: Lo mismo que el Lo mismo que el ejercicio anterior pero utilizando ejercicio anterior pero utilizando procedimientos.procedimientos.

Page 42: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Funciones Integradas en Funciones Integradas en ASPASP

Cogen argumentos y devuelven un Cogen argumentos y devuelven un valorvalor

Manipulan strings, fechas y horas y Manipulan strings, fechas y horas y matemáticasmatemáticas

miPalabra = "Patata"x = Len(miPalabra)

Page 43: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Inclusión de ficherosInclusión de ficheros

Suele ponerse extensión Suele ponerse extensión .inc.inc Luego se incluye conLuego se incluye con

<!-- #INCLUDE FILE="cabecera.inc" -->

Page 44: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de ObjetosModelo de Objetos

ASPASP

Page 45: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de ObjetosModelo de Objetos

Estructura de Modelo de ObjetosEstructura de Modelo de Objetos Objeto RequestObjeto Request

Colección QueryString y FormColección QueryString y Form Colección CookiesColección Cookies Colección ServerVariablesColección ServerVariables

Objeto ResponseObjeto Response Objeto ServerObjeto Server Otros ObjetosOtros Objetos

Page 46: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de objetos de Modelo de objetos de ASPASP

Cliente Servidor

ObjetoServerObjetoServer

ObjetoSessionObjetoSession

ObjetoApplication

Objeto Request

Objeto Response

Objeto ObjectContext

Page 47: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Aplicación ASP(Objeto Application)

Session Session ........ Session

ClienteClienteClienteCliente ClienteCliente........

Modelo de objetos de Modelo de objetos de ASPASP

Page 48: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de objetos de ASPModelo de objetos de ASP Objeto Request:Objeto Request:

captura la información que va del cliente al captura la información que va del cliente al servidor.servidor.

Objeto Response Objeto Response manda información del servidor al cliente.manda información del servidor al cliente. tiene métodos y propiedades para modificar y tiene métodos y propiedades para modificar y

crear lo que se envía al cliente. También para crear lo que se envía al cliente. También para redirigir a otra página.redirigir a otra página.

ObjectContext:ObjectContext: se utiliza para finalizar o abortar una transacción se utiliza para finalizar o abortar una transacción

realizada por el MTS (Microsoft Transaction realizada por el MTS (Microsoft Transaction Server) y que ha sido ejecutada por otro Script Server) y que ha sido ejecutada por otro Script ASP. ASP.

Page 49: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de objetos de Modelo de objetos de ASPASP

Objeto Application:Objeto Application: Sirve para almacenar información que Sirve para almacenar información que

será compartida entre todos los clientesserá compartida entre todos los clientes

Application(“Application(“nombrenombre”) = valor”) = valor Si algún cliente quiere modificar alguna Si algún cliente quiere modificar alguna

variable debe realizar un lock y un variable debe realizar un lock y un unlock.unlock.

<% Application.Lock Application("numero") = 15 Application.Unlock %>

Page 50: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de objetos de Modelo de objetos de ASPASP

Objeto Session:Objeto Session: Almacena información válida para Almacena información válida para

todas las páginas mientras dure la todas las páginas mientras dure la sesión del usuario.sesión del usuario.

Cuando el usuario accede por primera Cuando el usuario accede por primera vez se genera un identificador único.vez se genera un identificador único.

Page 51: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Modelo de objetos de Modelo de objetos de ASPASP

Ejemplo 6: Ejemplo 6: Mantenimiento del estado de Mantenimiento del estado de una Sesiónuna Sesión Objetivo: Familiarización con el mantenimiento Objetivo: Familiarización con el mantenimiento

del estado de una sesión de usuario. Tenemos del estado de una sesión de usuario. Tenemos que realizar dos páginas Web. que realizar dos páginas Web.

La primera de ellas contendrá un formulario en La primera de ellas contendrá un formulario en el que se pedirá al cliente su nombre y apellidos. el que se pedirá al cliente su nombre y apellidos.

La segunda página recogerá el valor de los La segunda página recogerá el valor de los campos del formulario y los almacenará como campos del formulario y los almacenará como variables de Sesión. A continuación volverá a variables de Sesión. A continuación volverá a leer esas variables para sacar su valor por leer esas variables para sacar su valor por pantalla. pantalla.

Page 52: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Objeto RequestObjeto Request

Colecciones

•QueryString•Form•ServerVariables•Cookies•ClientCertificate

Propiedades

•TotalBytes

Métodos

•BinaryRead

Page 53: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Colección QueryString y Colección QueryString y FormForm

Cliente (Navegador) FormularioFormulario

Servidor (Aplicación ASP)

METHOD = GET METHOD = POST

Datos enviados en URL

Datos enviados en cabecera

HTTP

Los datos se leen con colección QueryString

Los datos se leen con colección

Form

Page 54: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Colección QueryString y Colección QueryString y FormForm

<FORM NAME="informacionusuario" ACTION="INFORMACION.ASP" METHOD="GET" > <H2>Por favor, introduce tus datos</H2><P> <PRE> Nombre <INPUT TYPE="TEXT" NAME="sNombre" SIZE=20> Correo-e <INPUT TYPE="TEXT" NAME="sCorreo" SIZE=20> Dirección <TEXTAREA SIZE="15,2“ NAME="sDireccion"> </TEXTAREA> </PRE> <CENTER> <INPUT TYPE=CHECKBOX NAME="bPoner" VALUE=True>Añademe a la lista de direcciones<P> <INPUT TYPE=RESET VALUE="Limpiar"> <INPUT TYPE=SUBMIT VALUE="Enviar"> </CENTER></FORM>

Page 55: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Colección QueryString y Colección QueryString y FormForm

Si se utiliza POST es todo lo mismo Si se utiliza POST es todo lo mismo pero utilizando pero utilizando Request.FormRequest.Form

<% For each Objeto in Request.QueryString %>Nombre del Objeto ‘<% Response.Write(Objeto) %>’ tiene Valor ‘<% = Request.QueryString(Objeto) %>’<BR><% Next %><P>

<% Dim nombrenombre = Request.QueryString("sNombre") %>Nombre: <% =nombre %>

Page 56: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Colección QueryString y Colección QueryString y FormForm

Ejercicio 7a: Ejercicio 7a: Formulario de creación de usuarios.Formulario de creación de usuarios. Campos: Campos:

NombreNombre UsuarioUsuario Password y Repetir PasswordPassword y Repetir Password

Método POSTMétodo POST Comprobacion de Passwords iguales y mayores a 7 letras o Comprobacion de Passwords iguales y mayores a 7 letras o

digitos.digitos. Aviso de creación correcta o incorrectaAviso de creación correcta o incorrecta

Ejercicio 7b: Ejercicio 7b: Formulario de creación de usuarios.Formulario de creación de usuarios. Campos: Campos:

NombreNombre UsuarioUsuario Password y Repetir PasswordPassword y Repetir Password

Método GET (ERROR MUY GORDO!)Método GET (ERROR MUY GORDO!) Comprobacion de Passwords iguales y mayores a 7 letras o Comprobacion de Passwords iguales y mayores a 7 letras o

digitos.digitos. Aviso de creación correcta o incorrectaAviso de creación correcta o incorrecta

Page 57: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Colección QueryString y Colección QueryString y FormForm

Más ejercicios:Más ejercicios: Calculo de edad: Realizar un formulario que Calculo de edad: Realizar un formulario que

recoja la fecha de nacimiento de una recoja la fecha de nacimiento de una persona en formato mm/dd/aa y que la envie persona en formato mm/dd/aa y que la envie a otra página que calcule la edad de la a otra página que calcule la edad de la persona.persona.

Las funciones que se deben utilizar son Las funciones que se deben utilizar son datediff que devuelve la diferencia en días datediff que devuelve la diferencia en días de dos fechas dadas e Int que realiza una de dos fechas dadas e Int que realiza una división entera.división entera.

Page 58: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

La colección CookiesLa colección Cookies Satisface la necesidad de almacenamiento Satisface la necesidad de almacenamiento

de información permanente.de información permanente. Es un paquete de información que es Es un paquete de información que es

enviado del cliente al servidor en cada enviado del cliente al servidor en cada respuesta.respuesta.

Con Con RequestRequest leemos, con leemos, con ResponseResponse escribimos.escribimos.

<% Response.cookies("ultimoDiaConexion") = Date %><% For each var in Request.Cookies %>

Cookie: '<% response.write(var) %>' Valor: '<% =Request.Cookies(var) %>' <BR><% Next %>

Page 59: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

La colección CookiesLa colección Cookies Ejercicio 8:Ejercicio 8: Familiarizarnos con el uso Familiarizarnos con el uso

de las cookies en la máquina del de las cookies en la máquina del cliente. Hay que realizar dos páginas cliente. Hay que realizar dos páginas ASP. ASP. La primera sacará en una tabla todas las La primera sacará en una tabla todas las

cookies de la máquina cliente, dando la cookies de la máquina cliente, dando la opción de borrarlas. Además, tendrá un opción de borrarlas. Además, tendrá un formulario que permitirá añadir cookies a formulario que permitirá añadir cookies a través de dos campos, el campo nombre y través de dos campos, el campo nombre y el campo valor. el campo valor.

La segunda página se encargará del La segunda página se encargará del borrado y de la inserción de las cookies. borrado y de la inserción de las cookies.

Page 60: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Colección Colección ServerVariablesServerVariables

Valor = Valor = Request.ServerVariables(“HeaderType”)Request.ServerVariables(“HeaderType”)

HeaderType:HeaderType: REMOTE_ADDRREMOTE_ADDR: Dirección IP de máquina remota: Dirección IP de máquina remota LOGON_USERLOGON_USER: Usuario: Usuario ALL_HTTPALL_HTTP: Toda la cadena HTTP: Toda la cadena HTTP HTTP_USER_AGENTHTTP_USER_AGENT: Cliente utilizado: Cliente utilizado HTTP_COOKIEHTTP_COOKIE: Cookies en la máquina remota: Cookies en la máquina remota HTTP_REFERERHTTP_REFERER: Página de la que procedo: Página de la que procedo HTTP_ACCEPTHTTP_ACCEPT: Tipo de ficheros admitidos: Tipo de ficheros admitidos

Page 61: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

El objeto ResponseEl objeto Response Permite escribir información y Permite escribir información y

cookies en clientecookies en cliente Para realizar redirecciones: Para realizar redirecciones:

Response.Redirect(“Response.Redirect(“nombrenombre”)”) Permite realizar buffering:Permite realizar buffering:

Response.BufferResponse.Buffer Response.ClearResponse.Clear Response.FlushResponse.Flush

Controlar cuando expira una Controlar cuando expira una página: página: Response.Expires(Response.Expires(minmin))

Page 62: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

El objeto ServerEl objeto Server Tiene 4 métodos:Tiene 4 métodos:

CreateObjectCreateObject: Crea una instancia de : Crea una instancia de un objeto en el servidorun objeto en el servidor

HTMLencodeHTMLencode: Aplica codificaciónm : Aplica codificaciónm HTML a una cadenaHTML a una cadena

MappathMappath: Convierte un path virtual : Convierte un path virtual en un path físicoen un path físico

URLencodeURLencode: Aplica codificación URL : Aplica codificación URL a una cadenaa una cadena

Page 63: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

El objeto ServerEl objeto Server

Ejercicio 9: Ejercicio 9: Escribir el textoEscribir el texto<b>texto negrita</b> <i>texto italica</i> <a <b>texto negrita</b> <i>texto italica</i> <a

href=‘http://laurel.datsi.fi.upm.es/’>UPM</a>href=‘http://laurel.datsi.fi.upm.es/’>UPM</a> Usando la funcion HTMLencodeUsando la funcion HTMLencode Sin usarlaSin usarla

Escribir la direccion webEscribir la direccion webhttp://www.fi.upm.es/hola que tal:ñáhttp://www.fi.upm.es/hola que tal:ñá

Usando la función URLencodeUsando la función URLencode Sin usarlaSin usarla

Page 64: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Otros ObjetosOtros Objetos

Objeto Objeto Scripting.DictionaryScripting.Dictionary contiene contiene pares de elementos (clave, valor). pares de elementos (clave, valor). Por ejemplo carrito de compras.Por ejemplo carrito de compras.

Objeto Objeto Scripting.FileSystemObject Scripting.FileSystemObject proporciona acceso al sistema de proporciona acceso al sistema de ficheros del ordenador. ficheros del ordenador.

Page 65: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a FicherosAcceso a Ficheros

ASPASP

Page 66: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Uso de Sistemas de Fichero Uso de Sistemas de Fichero y E/Sy E/S

set fs = Server.CreateObject(“Scripting.FileSystemObject”)set fs = Server.CreateObject(“Scripting.FileSystemObject”)

Acceso a todas las unidades de discos DEL SERVIDOR!! Acceso a todas las unidades de discos DEL SERVIDOR!! (Ejemplo 10)(Ejemplo 10)setset discos = fs.Drivesdiscos = fs.Drivesfor each d in discosfor each d in discos

……nextnext

Propiedades de una unidadPropiedades de una unidad

if (NOT fs.DriveExists(“H”)) then Wscript.Quit

elseset drive = fs.GetDrive(“H”)if (drive.IsReady) then

drive.DriveLetterdrive.DriveType ‘ (Desconocido, Borrable, Duro, Remoto, CD, RAM)drive.VolumeName (ShareName)drive.TotalSizedrive.FreeSpace

end ifend if

Page 67: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Uso de Sistemas de Fichero Uso de Sistemas de Fichero y E/Sy E/S

Acceso a carpetasAcceso a carpetasset carpeta = fs.GetFolder (path)set carpeta = fs.GetFolder (path)set carpetas = carpeta.SubFoldersset carpetas = carpeta.SubFoldersfor each c in carpetasfor each c in carpetas

……c.Namec.Name

NextNext

AcciónAcción SentenciaSentencia

Crear nueva carpetaCrear nueva carpeta Set nc = fs.CreateFolder(path)Set nc = fs.CreateFolder(path)

RenombrarRenombrar c.Rename(nombre)c.Rename(nombre)

Copiar carpetaCopiar carpeta fs.CopyFolder path1 path2fs.CopyFolder path1 path2

Mover carpetaMover carpeta fs.MoveFolder path1 path2fs.MoveFolder path1 path2

Borrar carpetaBorrar carpeta fs.DeleteFolder(path)fs.DeleteFolder(path)

Existencia CarpetaExistencia Carpeta fs.FolderExists(path)fs.FolderExists(path)

Page 68: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Uso de Sistemas de Fichero Uso de Sistemas de Fichero y E/Sy E/S

Acceso a ficherosAcceso a ficheros

set ficheros = carpeta.Filesset ficheros = carpeta.Filesfor each f in ficherosfor each f in ficheros

……f.Namef.Namef.Sizef.Sizef.DateCreatedf.DateCreatedf.DateLastModifiedf.DateLastModified

NextNext

Ejemplo 11:Ejemplo 11: Mostrar el contenido de la carpeta Mostrar el contenido de la carpeta System32System32

Existencia de ficheroExistencia de fichero fs.FileExists(fichero)fs.FileExists(fichero) Copiar ficherosCopiar ficheros fs.CopyFile path1 path2fs.CopyFile path1 path2 Borrar ficherosBorrar ficheros fs.DeleteFile(fichero)fs.DeleteFile(fichero)

Page 69: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Uso de Sistemas de Fichero Uso de Sistemas de Fichero y E/Sy E/S

Ejemplo 12:Ejemplo 12: Sistema Backup Sistema Backup Realizar un sistema backup que copie Realizar un sistema backup que copie

todo el contenido de una carpeta dentro todo el contenido de una carpeta dentro de otra carpeta.de otra carpeta.

Se aconseja utilizar como destino, la Se aconseja utilizar como destino, la carpeta Backup, y dentro de el, una carpeta Backup, y dentro de el, una carpeta de copia, según la fecha de hoy:carpeta de copia, según la fecha de hoy:

path2 & Day(Date) & "-" & Month(Date) & "-" & path2 & Day(Date) & "-" & Month(Date) & "-" & Year(Date)Year(Date)

Page 70: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Uso de Sistemas de Fichero Uso de Sistemas de Fichero y E/Sy E/S

Acceso a un fichero de textoAcceso a un fichero de textoOpenTextFile (nombre [, modo[, crear[, formato]]] )OpenTextFile (nombre [, modo[, crear[, formato]]] )

Modo: Modo: (1) (1) ForReading, (2) ForWriting, (3) ForAppendingForReading, (2) ForWriting, (3) ForAppending Crear: Crear: TrueTrue si se va a crear nuevo. si se va a crear nuevo. FalseFalse en caso contrario en caso contrario Formato: Formato: TristateTrueTristateTrue si es Unicode, si es Unicode, TristateFalseTristateFalse si es ASCII si es ASCII

Lectura de fichero de textoLectura de fichero de texto

set entrada = fs.OpenTextFile(“fichero.txt”)set entrada = fs.OpenTextFile(“fichero.txt”)Do While Not (entrada.atEndOfStream)Do While Not (entrada.atEndOfStream)

Texto = Texto & entrada.ReadLine & “<br>”Texto = Texto & entrada.ReadLine & “<br>”LoopLoop

Escritura (con/sin reemplazo) en ficheroEscritura (con/sin reemplazo) en fichero

set entrada = fs.OpenTextFile(“fichero.txt”)set entrada = fs.OpenTextFile(“fichero.txt”) set salida = fs.OpenTextFile(“fichero2.txt”, 2, True)set salida = fs.OpenTextFile(“fichero2.txt”, 2, True)

Do While Not (entrada.atEndOfStream)Do While Not (entrada.atEndOfStream)texto = entrada.ReadLinetexto = entrada.ReadLinesalida.WriteLine textosalida.WriteLine texto

LoopLoop

Page 71: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Uso de Sistemas de Fichero Uso de Sistemas de Fichero y E/Sy E/S

Ejemplo 13:Ejemplo 13: Copiar el Copiar el contenido de un fichero en otrocontenido de un fichero en otro

Page 72: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a Bases de Acceso a Bases de DatosDatos

ASPASP

Page 73: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a Bases de DatosAcceso a Bases de Datos

Introducción a BBDDIntroducción a BBDD Microsoft AccessMicrosoft Access Acceso a BBDD con ASPAcceso a BBDD con ASP

Page 74: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Introducción a BBDDIntroducción a BBDD Base de datosBase de datos

Conjunto de datos interrelacionadosConjunto de datos interrelacionados Almacenados sistemáticamenteAlmacenados sistemáticamente

Gestor de base de datosGestor de base de datos Programa informáticoPrograma informático Almacena los datos de forma eficienteAlmacena los datos de forma eficiente Permite acceder rápidamente a los datosPermite acceder rápidamente a los datos

SQL – SQL – Structured Query LanguageStructured Query Language Lenguaje estándar de interrogaciónLenguaje estándar de interrogación Es un estándar ANSI/ISOEs un estándar ANSI/ISO Pronunciado ‘Pronunciado ‘esquiuelesquiuel’’

Page 75: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Ejemplo de BBDDEjemplo de BBDD

MatrículMatrículaa

ApellidosApellidos NombreNombre EmailEmail NotNotaa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

Page 76: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SQL: Sentencia USESQL: Sentencia USE

Seleccionar la BBDD a la que se Seleccionar la BBDD a la que se desea accederdesea acceder

Los lenguajes de programación Los lenguajes de programación proporcionan una funciónproporcionan una función

Page 77: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SQL: Sentencia SELECTSQL: Sentencia SELECT

Consulta una BBDDConsulta una BBDD

SELECT DISTINCT [*|SELECT DISTINCT [*|colscols]][[FROM FROM table-listtable-list]][[WHERE WHERE exprexpr]][[GROUP BY GROUP BY expr-listexpr-list]][[HAVING HAVING exprexpr]][[ORDER BY ORDER BY sort-expr-listsort-expr-list]]

Page 78: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SELECT apellidos, email SELECT apellidos, email FROM estudiantesFROM estudiantes

MatrículMatrículaa

ApellidosApellidos NombreNombre EmailEmail NotNotaa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

Page 79: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SELECT apellidos, email SELECT apellidos, email FROM estudiantesFROM estudiantes

MatrículMatrículaa

ApellidosApellidos NombreNombre EmailEmail NotNotaa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

Page 80: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SELECT apellidos FROM SELECT apellidos FROM estudiantes WHERE estudiantes WHERE

nota>=5nota>=5MatrículMatrícul

aaApellidosApellidos NombreNombre EmailEmail NotNot

aa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

Page 81: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SELECT apellidos FROM SELECT apellidos FROM estudiantes WHERE estudiantes WHERE

nota>=5nota>=5MatrículMatrícul

aaApellidosApellidos NombreNombre EmailEmail NotNot

aa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

Page 82: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Operador LIKEOperador LIKE

Busca una subcadenaBusca una subcadena El símbolo % encaja con cualquier cosaEl símbolo % encaja con cualquier cosa EjemplosEjemplos

LIKE ‘ma%’LIKE ‘ma%’ = Empieza por ‘ma’= Empieza por ‘ma’ LIKE ‘%id’LIKE ‘%id’ = Acaba por ‘id’= Acaba por ‘id’ LIKE ‘Ma%id’LIKE ‘Ma%id’ = Empieza por ‘ma y = Empieza por ‘ma y

acaba por acaba por ‘id’‘id’

LIKE ‘%dr%’LIKE ‘%dr%’ = Contiene la cadena = Contiene la cadena ‘dr’‘dr’

Page 83: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SELECT * FROM SELECT * FROM estudiantes WHERE email estudiantes WHERE email

LIKE ‘%ma%’LIKE ‘%ma%’MatrículMatrícul

aaApellidosApellidos NombreNombre EmailEmail NotNot

aa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

Page 84: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SELECT * FROM SELECT * FROM estudiantes WHERE email estudiantes WHERE email

LIKE ‘%ma%’LIKE ‘%ma%’MatrículMatrícul

aaApellidosApellidos NombreNombre EmailEmail NotNot

aa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

Page 85: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SQL: Sentencia INSERTSQL: Sentencia INSERT Añade nuevas entradas a una tablaAñade nuevas entradas a una tabla

INSERT INTO INSERT INTO table-nametable-name[[((column-listcolumn-list))]]VALUES(VALUES(value-listvalue-list))

Ejemplo:Ejemplo:

INSERT INTO INSERT INTO estudiantesestudiantes VALUES (983476, VALUES (983476, ‘Ruiz Santos’, ‘Carmen’, ‘’, 8)‘Ruiz Santos’, ‘Carmen’, ‘’, 8)

Page 86: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Ejemplo: INSERTEjemplo: INSERTMatrículMatrícul

aaApellidosApellidos NombreNombre EmailEmail NotNot

aa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Martín IbarraMartín Ibarra JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

983476983476 Ruiz SantosRuiz Santos CarmenCarmen 88

Page 87: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SQL: Sentencia UPDATESQL: Sentencia UPDATE Modifica datos ya existentes en una BBDDModifica datos ya existentes en una BBDD

UPDATE UPDATE table-nametable-nameSET SET assignmentassignment [[, , assignmentassignment]*]*[[WHERE WHERE exprexpr]]

EjemploEjemplo

UPDATE UPDATE estudiantesestudiantesSET SET apellidos apellidos = ‘Castro Martín’ WHERE = ‘Castro Martín’ WHERE matricula matricula = 960535= 960535

Page 88: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Ejemplo: UPDATEEjemplo: UPDATEMatrículMatrícul

aaApellidosApellidos NombreNombre EmailEmail NotNot

aa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Castro MartínCastro Martín JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

983476983476 Ruiz SantosRuiz Santos CarmenCarmen 88

Page 89: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

SQL: Sentencia DELETESQL: Sentencia DELETE

Elimina entradas de la BBDDElimina entradas de la BBDD

DELETE FROM DELETE FROM table-nametable-name[[WHERE WHERE exprexpr]]

Ejemplo:Ejemplo:

DELETE FROM DELETE FROM estudiantesestudiantesWHERE WHERE notanota < 5 < 5

Page 90: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Ejemplo: DELETEEjemplo: DELETEMatrículMatrícul

aaApellidosApellidos NombreNombre EmailEmail NotNot

aa

920239920239 García NoblejasGarcía Noblejas PedroPedro pgarcí[email protected]í[email protected] 55

930834930834 Marcos SanabriaMarcos Sanabria AnaAna [email protected]@inem.es 77

934587934587 Malik PérezMalik Pérez JuanJuan [email protected]@inem.es 22

960535960535 Castro MartínCastro Martín JoaquínJoaquín [email protected]@inem.es 33

970345970345 Guarner Guarner CalderónCalderón PabloPablo [email protected]@inem.e

ss77

970353970353 Peña MarcosPeña Marcos AliciaAlicia apeñ[email protected]ñ[email protected] 99

980657980657 Soler VeraSoler Vera GuillermGuillermoo

[email protected]@inem.es 88

983476983476 Ruiz SantosRuiz Santos CarmenCarmen 88

Page 91: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Microsoft AccessMicrosoft Access

Ejemplo 14:Ejemplo 14: Crear una base de Crear una base de datos en Access, según lo explicado datos en Access, según lo explicado en clase. Las tablas van a ser:en clase. Las tablas van a ser: Persona: Información sobre una Persona: Información sobre una

personapersona Compra: Que persona compra que Compra: Que persona compra que

producto??producto?? Producto: Información sobre un Producto: Información sobre un

productoproducto

Page 92: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a Base de DatosAcceso a Base de Datos

ADO

OLEDB ODBC

ActiveX Data Objects

BD

Open DataBase Connectivity

OLE DataBase

Page 93: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Objetos para acceso a BDObjetos para acceso a BD ObjectoObjecto Connection Connection

Representa la conexión con la BDRepresenta la conexión con la BD ObjectoObjecto RecordSet RecordSet

Representa una tabla de datos Representa una tabla de datos proveniente de realizar una consultaproveniente de realizar una consulta

Un objeto se crea con el comando Un objeto se crea con el comando SetSet. . <% Set nombre_obj = ... %><% Set nombre_obj = ... %>

Los objetos se cierran con el método Los objetos se cierran con el método CloseClose. . <% nombre_obj.Close %><% nombre_obj.Close %>

Y por último se destruyen... Y por último se destruyen... <% Set nombre_obj = Nothing <% Set nombre_obj = Nothing

%>%>

Page 94: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a BBDD con ASPAcceso a BBDD con ASP

Acceso a BBDD con ASPAcceso a BBDD con ASP Creacion de la conexión con la BDCreacion de la conexión con la BD Acceso “REAL” a la BD (consulta, etc)Acceso “REAL” a la BD (consulta, etc) Cierre de la conexiónCierre de la conexión Acceso a los datos obtenidos (record)Acceso a los datos obtenidos (record)

Page 95: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a BBDD con ASPAcceso a BBDD con ASP

<%

‘Creación del objeto ConnectionSet Conn= Server.CreateObject("ADODB.Connection")‘Apertura de la BDConn.open “PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE= C:\inetpub\wwwroot\alumnos.mdb;”‘Ejecución de una QuerysSQL = "SELECT * FROM alumnos"Set rsDatos = Conn.Execute (sSQL)

%>

Page 96: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a BBDD con ASPAcceso a BBDD con ASP

<%

‘Ejecución de una Query Compleja, a partir de un formulariosSQL="SELECT * FROM alumnos WHERE Codigo=" & Request.QueryString("codigo")

Set rsDatos = Conn.Execute (sSQL)

%>

Page 97: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a BBDD con ASPAcceso a BBDD con ASP

<%

‘Cierre de la conexión con la BDConn.Close‘Asignar a “nada” la variable utilizadaSet Conn = Nothing‘Cierre del record obtenidorsDatos.Close‘Asignar a “nada” la variable utilizadaSet rsDatos = Nothing

%>

Page 98: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a los datos Acceso a los datos obtenidosobtenidos

<TABLE><TH>Nombre<TH>Apellidos<TH>Más información

<% Do While Not rsDatos.EOF %> <TR> <TD> <% Response.Write(rsDatos("Nombre"))%> </TD> <TD> <% Response.Write(rsDatos("Apellidos"))%> </TD> <TD> <a href="masinfo.asp?codigo= <% Response.Write(rsDatos("Codigo")) %>">Detalles</TD> <% rsDatos.Movenext %> </TR><% Loop %></TABLE><% Conn.CloseSet Conn = NothingrsDatos.CloseSet rsDatos = Nothing %>

Recomendación: Recomendación: if Not rsDatos.Eof if Not rsDatos.Eof Then …Then …

Page 99: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

BBDD con ODBCBBDD con ODBC

Page 100: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

BBDD con ODBCBBDD con ODBC

Page 101: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

BBDD con ODBCBBDD con ODBC

Page 102: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

Acceso a BBDDAcceso a BBDD Ejemplo 15: Ejemplo 15: Consulta a Base de DatosConsulta a Base de Datos

Realizar una página Web que acceda la base de datos Realizar una página Web que acceda la base de datos clase.mdb, a la que habremos dado como DSN el clase.mdb, a la que habremos dado como DSN el nombre de "clase".nombre de "clase".

Ejemplo 16: Ejemplo 16: Inserción en Base de DatosInserción en Base de Datos Ejemplo 17: Ejemplo 17: Modificación y Borrado en Base de Modificación y Borrado en Base de

DatosDatos Ejemplo 18: Ejemplo 18: Informacion de un LibroInformacion de un Libro

Otros ejemplos:Otros ejemplos: Buscador AlumnosBuscador Alumnos Buscador LibrosBuscador Libros

Page 103: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ReferenciasReferencias

ASPASP

Page 104: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ReferenciasReferencias

Programación de Aplicaciones Web.Programación de Aplicaciones Web.S. Rodríguez, F. Pérez, J. Carretero, F. S. Rodríguez, F. Pérez, J. Carretero, F. García, A. García, D. Nevado, M.S. Pérez, García, A. García, D. Nevado, M.S. Pérez, V. Robles, F. Rosales (2003). V. Robles, F. Rosales (2003). Editorial: Thomson. Editorial: Thomson. ISBN: 84-9732-181-2. ISBN: 84-9732-181-2.

ASP - MSDN MicrosoftASP - MSDN Microsoft http://msdn2.microsoft.com/en-us/library/aa286483.aspx

Directorio ASPDirectorio ASP http://dmoz.org

/World/Español/Computadoras/Programación/Lenguajes/ASP/

Page 105: ASP Active Server Pages Victor Robles Forcada Victor Robles Forcada Oscar Cubo Medina Oscar Cubo Medina Santiago González Tortosa Santiago González Tortosa

ASPASPActive Server PagesActive Server Pages

Oscar Cubo Medina <[email protected]>Oscar Cubo Medina <[email protected]>Santiago González Tortosa Santiago González Tortosa <[email protected]><[email protected]>

Victor Robles Forcada <[email protected]>Victor Robles Forcada <[email protected]>

Programación Web en ServidorProgramación Web en ServidorINEM – 2007INEM – 2007