17. ASP en SQL-server
ASP staat voor Active Server Pages en is een tekstfile die naast tekst ook HTML-codes en specifieke commando's kan bevatten. De extensie van de file moet asp zijn.
ASP-files werken enkel indien op de WEBserver de ASP-software werd geïnstalleerd en indien de directory waarin de files voorkomen de execute-permissie heeft.
Om een SQLdatabase te benaderen moet hij als ODBC database gedefinieerd worden.
17.1 De syntax van ASP
<html>
<head>
</head><body>
</body></html>
Zo is de code van een nieuwe paragraaf <p> of een nieuwe regel <br>.
- Zoals in elke programmeertaal wordt er gewerkt met variabelen.
Een variabele een waarde geven kan met <% var=waarde%>
bijvoorbeeld: <% zoekwoord="computer" %> of <% getal=3 %>Een variabele oproepen kan met <% =var %>
bijvoorbeeld <% =zoekwoord %> of <% =getal %> wat resulteert in respectievelijk computer en 3
- Verder kan men gebruik maken van een aantal statements, die in elke programmeertaal voorkomen.
- de selectievoorwaarde
<% if voorwaarde then %>
..........
<% else %>
.......
<% end if %>- de lus
<% do until voorwaarde %>
.......
<% loop %>
of
<% for teller= min to max %>
.......
<% next %>
17.2. Scripting Language
DE ASP-software biedt de mogelijkheid zowel Visual Basic-scripts als Java-scripts in een HTML-document te gebruiken. Het script kan door de server uitgevoerd worden, waardoor het resultaat niet meer afhankelijk is van de gebruikte browser.
Een stukje VBscript of Javascript wordt in het HTML-document ingesloten tussen:
<SCRIPT LANGUAGE="VBscript" of "Javascript" RUNAT="server">
.....</SCRIPT>
De optie runat="server" maakt het mogelijk de scripts door de server te laten uitvoeren waardoor de toepassing browseronafhankelijk is.
17.3 Programmavoorbeelden
17.3.1 Een lijst met de gegevens uit een SQLtabel.
<html>
<%set db=server.createobject("ADODB.connection")%>
<%db.open "x1","DSN=x2;UID=x3;PWD=x4"%>
<%sql="set quoted_identifier OFF "%>
<%sql=sql+"select * from x5"%>
<%set lijst=db.execute(sql)%>
<%teller=0%>
<table border="2">
<%do until lijst.eof%>
<tr>
<%teller=teller+1%>
<td><%=teller%></td>
<td><%=lijst("x6")%></td>
<td><%=lijst("x7")%></td>
</tr>
<%lijst.movenext%>
<%loop%>
<%lijst.close%>
</table>
</body>
</html>
Opmerking: Bij het gebruik van memovelden wordt de carriage return door het htmldocument niet overgenomen. Volgende programmaregels zorgen voor de omzetting.
<%memo=lijst("omschrijving")%>
<%aantal=len(memo)%>
<%lijn=""%>
<%for x=1 to aantal%>
<% if asc(mid(memo,x,1))=13 then%>
<%=lijn%><br>
<%lijn=""%>
<%else%>
<%lijn=lijn+mid(memo,x,1)%>
<%end if%>
<%next%>
<%=lijn%><br>
17.3.2 Gegevens met een formulier toevoegen in een SQLtabel.
FORMULIER.HTM: het invulformulier
<html>
<head>
</head>
<body><form method="post" action="formulier.asp">
omschrijving 1 <input type="text" name="invoer1"><br>
omschrijving 2 <input type="text" name="invoer2"><br>
omschrijving 3 <input type="text" name="invoer3"><br>
<input type="submit" value="VERSTUREN">
<input type="reset" value="WISSEN">
</form>
</body>
</html>
waarbij:
FORMULIER.ASP: wegschrijven in de sqltabel
<html>waarbij
<head>
</head>
<body><%set db=server.createobject("ADODB.connection")%>
<%db.open "x1","DSN=x2;UID=x3;PWD=x4"%>
<%a=request.form("invoer1")%>
<%b=request.form("invoer2")%>
<%c=request.form("invoer3")%>
<%sql="set quoted_identifier OFF "%>
<%sql=sql+" insert into x5 (veld1,veld2,veld3)"%>
<%sql=sql+" values ('"+a+"','"+b+"','"+c+"')"%>
<%db.execute(sql)%>De gegevens werden toegevoegd
</body>
</html>
tabel: cursus
velden: code (autonummering), omschrijving (varchar 30), aantal (int)
primary key: op code
<%set db=server.createobject("ADODB.connection")%>
<%db.open "school","DSN=school;UID=leraar;PWD=leraar"%>
<%sql="CREATE TABLE cursus ( code integer IDENTITY (1, 1) NOT NULL PRIMARY KEY ,
omschrijving varchar (30) NULL , aantal integer NULL )"%><%db.execute(sql)%>
<db.close%>
17.3.4 Een veld aan een tabel toevoegen
tabel: cursus
velden: prijs (valuta)<%set db=server.createobject("ADODB.connection")%>
<%db.open "school","DSN=school;UID=leraar;PWD=leraar"%>
<%sql="ALTER TABLE cursus ADD prijs money"%><%db.execute(sql)%>
<db.close%>
17.3.5 Een volledige tabel wissen
tabel: cursus
<%set db=server.createobject("ADODB.connection")%>
<%db.open "school","DSN=school;UID=leraar;PWD=leraar"%>
<%sql="DROP table cursus"%><%db.execute(sql)%>
<db.close%>