Active Server Pages ed ADO

26
Active Server Pages ed ADO

description

Active Server Pages ed ADO. Scrivere ASP. Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno racchiuse tra i delimitatori Gli script vengono eseguiti sul lato server - PowerPoint PPT Presentation

Transcript of Active Server Pages ed ADO

Page 1: Active Server Pages ed ADO

Active Server Pages ed ADO

Page 2: Active Server Pages ed ADO

Scrivere ASP

• Le pagine ASP possono contenere codice HTML o XML

• Le parti del documento che racchiudono codice script vanno racchiuse tra i delimitatori <% e %>

• Gli script vengono eseguiti sul lato server• E’ possibile usare sia vbscript che javascript (in

questo caso aggiungere in testa al documento: <%@ language="javascript"%> )

• per default il server assume script in vbscript

Page 3: Active Server Pages ed ADO

La mia prima ASP

<html><head><title>la mia prima

asp</title></head><body><% response.write("Hello World!") %> </body></html>• Il metodo di scrittura e’ response.write

Page 4: Active Server Pages ed ADO

Elementi della sintassi• Dichiarazione di variabili e loro uso:<%dim name

name=“Bond"response.write("My name is: " & name)%>

• Array:• <%

Dim cognome(5)cognome(0) = “bond"cognome(1) = “kravitz"cognome(2) = "Hegel"cognome(3) = "Stalin"cognome(4) = “Kim Jong Il"cognome(5) = "Borges"

For i = 0 to 5      response.write(cognome(i) & "<br />")Next%>

Page 5: Active Server Pages ed ADO

esempio• <%

dim hh=hour(now())

response.write("<p>" & now())response.write(" (Ora locale server) </p>")If h<12 then   response.write("Good Morning!")else   response.write("Good evening!")end if%>

Page 6: Active Server Pages ed ADO

Durata delle variabili

• Variabili in un file ASP sono accessibili all’interno dell’intero file.

• Le variabili dichiarate all’interno di procedure sono visibili solo all’interno delle stesse.

• Variabili che debbano essere accessibili da file diversi devono essere variabili di session (sessione di un unico utente) oppure di application (visibili a tutti gli utenti) .

Page 7: Active Server Pages ed ADO

Usare le procedure• <html><head>

<%sub vbproc(num1,num2)response.write(num1*num2)end sub%></head><body><p>Risultato: <%call vbproc(3,4)%></p><p>Risultato: <%vbproc 3,4%></p></body></html>

Page 8: Active Server Pages ed ADO

Interagire con le ASP: usare le form<html>

<body><form action="demo.asp" method="post">Your name: <input type="text" name="fname" size="20"><input type="submit" value="Submit"></form><%dim fnamefname=Request.Form("fname")If fname<>"" Then      Response.Write("Hello " & fname & "!<br />")      Response.Write("How are you today?")End If%></body></html>

• E’ anche possibile usare il metodo GET, ma e’ sconsigliato

Page 9: Active Server Pages ed ADO

Passare parametri ad una ASP mediante form

<html><body><form method="post"

action="welcome.asp"> First Name: <input type="text"

name="fname" value=""> Last Name: <input type="text"

name="lname" value=""> <input type="submit" value="Submit"> </form>

</body></html>

Page 10: Active Server Pages ed ADO

Passare parametri ad una ASP mediante form

<html><body><% fname=Request.form("fname")

lname=Request.form("lname") response.write("<p>Hello " & fname & " " & lname & "!</p>") response.write("<grazie di esistere!</p>") %>

</body></html>

Page 11: Active Server Pages ed ADO

Usare i cookie con le ASP• <%

dim visiteresponse.cookies("visite").Expires=date+365 visite=request.cookies("visite")%><html><body><%if visite="" then   response.cookies("visite")=1%>   Welcome! This is the first time you are visiting this Web page.<%else   response.cookies("visite")=visite+1   response.write("You have visited this ")   response.write("Web page " & visite)   if visite=1 then     response.write " time before! Thanks for coming back"   else     response.write " times before! Thanks for coming back "   end ifend if%></body></html>

Page 12: Active Server Pages ed ADO

Variabili di sessione• Mantengono dati relativi ad un utente durante una

sessione di lavoro• Un oggetto Session viene instanziato sul server all’inizio

di una sessione utente e distrutto alla fine della stessa• Una sessione inizia quando:

– un utente richiede una pagina asp e nel file denominato Global.asa è presente una procedura Session_OnStart

– Un valore viene immagazzinato in una variabile session• Una sessione termina:

Per default dopo 20 minutiImponendo un timeout <% Session.Timeout=5 %> Imponendo l’abbandono immediato <% Session.Abandon %>

Page 13: Active Server Pages ed ADO

Usare variabili di sessione• Per inserirle:<% Session("username")=“Antonio"

Session("age")=27 %> • Per recuperarle: Welcome <

%Response.Write(Session("username"))%> • Per rimuoverle: <% If Session.Contents("age")<18 then 

Session.Contents.Remove(“buy") End If  %>

Page 14: Active Server Pages ed ADO

Usare variabili di application

• Una application è un set di file asp, tipicamente concepiti per essere usati insieme in sequenza.

• Una application consente di legare le variabili dei vari file insieme.

• La visibilità delle variabili è per tutti gli utenti della applicazione.

• Ciascuna variabile può esere bloccata e sbloccata

Page 15: Active Server Pages ed ADO

Usare variabili di application• Nel file Global.asa scrivere qualcosa tipo:<script language="vbscript" runat="server"> Sub Application_OnStart application("vartime")="" application("users")=1 End Sub </script>• Per accedere: <% Response.Write(Application("users")) %> • Per bloccare/sbloccare<% Application.Lock ‘aggiungere il codice quiApplication.Unlock %>

Page 16: Active Server Pages ed ADO

Il file Global.asa• Può contenere dichiarazioni di oggetti, metodi e variabili accessibili da tutti i

file nella applicazione• Deve trovarsi nella root della pplicazione; ci può essere 1 solo file di questo

tipo nella applicazione• Un generico file:<script language="vbscript" runat="server">sub Application_OnStart ''''some code end subsub Application_OnEnd ''''some code end subsub Session_OnStart ''''some code end subsub Session_OnEnd ''''some code end sub</script>

Page 17: Active Server Pages ed ADO

Esempi:Inizializzare un contatore di sessione:<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>Aprire un nuovo documento: <script language="vbscript" runat="server"> sub Session_OnStart

Response.Redirect("newpage.asp") end sub </script>

Page 18: Active Server Pages ed ADO

Esempi:<script language="vbscript" runat="server">Sub Application_OnStart Application("visitors")=0 End SubSub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1

Application.UnLock End SubSub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1

Application.UnLock End Sub</script> Per mostrare i visitatori al momento:<%response.write(Application("visitors"))%>

Page 19: Active Server Pages ed ADO

Active Data Objects

• E’ una tecnologia Microsoft• E’ un componente Active-X• E’ concepita per accedere in maniera

semplice a database via web• E’ presente in IIS • Usa ed estende l’accesso via ODBC

Page 20: Active Server Pages ed ADO

Connettersi ad un database

• Varie modalità:Diretta:<% set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open

"c:/webdata/northwind.mdb" %>

Via ODBC:<% set conn=Server.CreateObject("ADODB.Connection") conn.Open "northwind" %>

Page 21: Active Server Pages ed ADO

Recuperare dati da un DB• Creare un recordset:<%Set rs=Server.CreateObject("ADODB.recordset") rs.Open "Select * from Customers", conn %> Visualizzare i dati estratti:<%for each x in rs.fields

response.write(x.name) response.write(" = ") response.write(x.value)

next %>

Page 22: Active Server Pages ed ADO

Un esempio:<html><body><%set conn=Server.CreateObject("ADODB.Connection") conn.Open "northwind" set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers"rs.Open sql, conn%>

<table border="1" width="100%"><tr>

<%for each x in rs.Fields    response.write("<th>" & x.name & "</th>")next%></tr><%do until rs.EOF%>    <tr>    <%for each x in rs.Fields%>       <td><%Response.Write(x.value)%></td>    <%next    rs.MoveNext%>    </tr><%looprs.closeconn.close%></table></body></html>

Page 23: Active Server Pages ed ADO

Aggiungere un record: input file<html> <body><form method="post" action="demo_add.asp"> <table> <tr> <td>CustomerID:</td> <td><input name="custid"></td> </tr><tr> <td>Company Name:</td> <td><input name="compname"></td> </tr><tr> <td>Contact Name:</td> <td><input name="contname"></td> </tr><tr> <td>Address:</td> <td><input name="address"></td> </tr></table> <input type="submit" value="Add New"> </form></body> </html>

Page 24: Active Server Pages ed ADO

Aggiungere un record: asp<html> <body><% set conn=Server.CreateObject("ADODB.Connection") conn.Open "northwind" sql="INSERT INTO customers (customerID,companyname," sql=sql & "contactname,address)" sql=sql & " VALUES " sql=sql & "('" & Request.Form("custid") & "'," sql=sql & "'" & Request.Form("compname") & "'," sql=sql & "'" & Request.Form("contname") & "'," sql=sql & "'" & Request.Form("address") & "')“on error resume next conn.Execute sql,recaffected if err<>0 then Response.Write("No update permissions!") else Response.Write("<h3>" & recaffected & " record added</h3>") end if conn.close %> </body> </html>

Page 25: Active Server Pages ed ADO

Interrogare un db con dei valori<html> <body><form method="post" action="demo_query.asp"> <table> <tr> <td>CustomerID:</td> <td><input name="custid"></td> </tr><tr> <td>Company Name:</td> <td><input name="compname"></td> </tr></table> <input type="submit" value=“Find data"> </form></body> </html>

Page 26: Active Server Pages ed ADO

<html> <body><% set conn=Server.CreateObject("ADODB.Connection") conn.Open "northwind" sql=“SELECT * FROM customers WHERE custid = & Request.Form("custid") & " AND “ Sql=sql & “compname =“ & Request.Form("compname") & "" rs.Open sql, conn

%><table border="1" width="100%">

<tr><%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")next%></tr><%do until rs.EOF%>    <tr>    <%for each x in rs.Fields%>       <td><%Response.Write(x.value)%></td>    <%next    rs.MoveNext%>    </tr><%looprs.closeconn.close%></table></body></html>