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
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
IntroducciónIntroducción
ASPASP
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
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
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
Arquitectura de Arquitectura de AplicacionesAplicaciones
Servicios de usuario
Interfaz de usuario
Servicios de trabajo Servicios de datos
Lógicade
negocio
Datos
Modelo de 3 capasModelo de 3 capas
Navegador
Servidor Web
Presentación
Lógica de negocio
Acceso a datos
Aplicaciones WebAplicaciones WebCliente
Browser
ClienteBrowser HTTP
Máquina ServidoraClienteNo
Browser
ClienteNo
Browser
ServiciosSoportados
DBMS
Lógica denegocio
ServidorWeb
DBMS
Protocolo deobjetos
Aplicacionesexistentes
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
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
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
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
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
Lenguaje ASPLenguaje ASP
ASPASP
ASPASP
¿Qué es?¿Qué es? FuncionamientoFuncionamiento RequisitosRequisitos Ventajas e InconvenientesVentajas e Inconvenientes Configuración del SistemaConfiguración del Sistema
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)
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
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
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
¿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
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.
Programación con Programación con VBScriptVBScript
ASPASP
Programación con Programación con VBScriptVBScript
VariablesVariables ConstantesConstantes ComentariosComentarios OperadoresOperadores Estructuras de ControlEstructuras de Control BuclesBucles Funciones y ProcedimientosFunciones y Procedimientos
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 %>
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 >=
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
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
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 …)
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
BuclesBucles
Do While... LoopDo While... Loop
<%x = 10Do While x > 0
%><B><% =X %></B><BR>x = x - 1
Loop%>
Do While condiciónsentencias
Loop
For ... NextFor ... Next
<% For x = 1 To 5 %><B><% =X %></B><BR>
<% Next %>
For variable = inicio To finsentencias
Next
BuclesBucles
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
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
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
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
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
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
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
ProcedimientosProcedimientos
Llamar a SubLlamar a Sub
Call trata_Cadena("Cuántas letras tengo?")trata_Cadena "Cuántas letras tengo?"
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.
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)
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" -->
Modelo de ObjetosModelo de Objetos
ASPASP
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
Modelo de objetos de Modelo de objetos de ASPASP
Cliente Servidor
ObjetoServerObjetoServer
ObjetoSessionObjetoSession
ObjetoApplication
Objeto Request
Objeto Response
Objeto ObjectContext
Aplicación ASP(Objeto Application)
Session Session ........ Session
ClienteClienteClienteCliente ClienteCliente........
Modelo de objetos de Modelo de objetos de ASPASP
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.
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 %>
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.
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.
Objeto RequestObjeto Request
Colecciones
•QueryString•Form•ServerVariables•Cookies•ClientCertificate
Propiedades
•TotalBytes
Métodos
•BinaryRead
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
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>
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 %>
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
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.
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 %>
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.
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
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))
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
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
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.
Acceso a FicherosAcceso a Ficheros
ASPASP
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
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)
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)
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)
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
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
Acceso a Bases de Acceso a Bases de DatosDatos
ASPASP
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
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’’
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
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
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]]
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
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
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
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
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’
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
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
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)
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
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
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
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
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
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
Acceso a Base de DatosAcceso a Base de Datos
ADO
OLEDB ODBC
ActiveX Data Objects
BD
Open DataBase Connectivity
OLE DataBase
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
%>%>
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)
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)
%>
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)
%>
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
%>
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 …
BBDD con ODBCBBDD con ODBC
BBDD con ODBCBBDD con ODBC
BBDD con ODBCBBDD con ODBC
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
ReferenciasReferencias
ASPASP
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/
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