Internet-Datenbanken und ASP
Eine Einführung vonJ.Sommer
&A.Vortisch
Internet-Datenbanken und ASPInhalt:
• Voraussetzungen
• Was ist ASP ? - Unterschiede zu CGI - Aufbau
• ‚Hallo World‘ mit ASP
• Grundlegende Befehle
• ODBC und ADO .... Was ist denn das ?!
• Die erste Datenbankabfrage
• Einfügen von Daten in die Datenbank
• Löschen von Daten
Folgende
Voraussetzungen müssen erfüllt
sein:
• Leistungsfähiger Rechner (200MHZ, 128 MB, SCSI-Platte, TCP/IP-Netzwerk)
• NT 4 - Server• Office 97• NT-Service Pack 3 oder 4• MS-Internet-Explorer 4 SP1• Option-Pack 4 für NT 4• Service-Release 1 oder 2 für
Office 97
Vom Option-Pack 4 benötigen Sie nur :- IIS 4- Transaction-Server (für ASP)- und die Datenbankanbindungen- eventuell Beispiele und HilfenWichtig:Legen Sie bei der Installation von NT Partitionen (System, Daten usw,) an und vergebenSie Rechte (NT ist normalerweise total offen !!)Installieren Sie in dieser Reihenfolge !!!Installieren Sie von Office 97 die AccessODBC-Treiber mit.Ansonsten gilt : Weniger ist mehr. Nur die
unbedingt nötigen Komponenten installieren.
Internet-Datenbanken und ASP Voraussetzungen
Internet-Datenbanken und ASP Was ist ASP ? Unterschiede zu CGI
Was ist ASP ?
Active Server Pages ist eine Technologie, die es Internet-Entwicklern erlaubt, jede Art und Anzahl von serverseitigen Programmiersprachen in einer HTML Datei zu kombinieren, um dynamische Web-Seiten zu erzeugen.
Dies bedeutet:
- ASP sind Scripte, die auf einem Server laufen und NICHT beim Anwender- ASP-Scripte können mit verschiedenen Programmiersprachen erstellt werden (VB-Script, JavaScript, Pearl - Standard: VB-Script)- ASP-Scripte sind HTML-Dateien mit eingefügtem Quellcode und haben die Endung .ASP- Der Quellcode wird vom Server interpretiert und nur die Ergebnisse werden zum Anwender verschickt.- ASP ist eine Microsoft Technologie und funktioniert nur mit dem IIS 4
Unterschiede zu CGI ?
- CGI bedeutet Common Gateway Interface und läuft immer in einem eigenen Adressraum, der vom Betriebssystem gestellt wird- ASP läuft im Adressraum des Webservers und ist damit schneller - CGI‘s werden immer mit EINER Programmiersprache erstellt- In ASP kann man HTML und Programmcode mischen- ASP erlaubt Kontrolle über die laufende Anwendung (Session)- ASP erlaubt den Austausch von Daten zwischen den Anwendungen- ASP erlaubt das Verwenden von Active-X-Komponenten
Internet-Datenbanken und ASP Was ist ASP ? Unterschiede zu CGI
Aufbau von ASP
ASP besteht aus Objekten und Komponenten:
Objekte:
- Das Application-Object wird gebraucht, um Daten innerhalb einer ASP-Anwendung auszutauschen- Das Request-Object wird benötigt, um Eingaben in HTML-Formulare und Parameter der Kommandozeile auszulesen- Das Response-Object sendet Daten zum Client-Browser- Das Server-Object erlaubt Zugriff auf interne Komponenten - Das Session-Object gibt Kontrolle über bestimmte User-Aktionen
Internet-Datenbanken und ASP Was ist ASP ? Unterschiede zu CGI
Komponenten:
- Die AD ROTATOR Komponente erlaubt das Einblenden von Werbung- Die BROWSER CAPABILITIES Komponente liefert Informationen über den Client-Browser (Typ, Version, OS usw.)- Die DATABASE ACCESS Komponente ermöglicht den Zugriff auf eine ODBC-Datenbank- Die CONTENT LINKING Komponente ermöglicht die Katalogisierung der Web-Pages auf einen Server- Die FILE ACCESS Komponente erlaubt den Zugriff auf Textdateien
Internet-Datenbanken und ASP Was ist ASP ? Unterschiede zu CGI
Wir beschränken uns im Folgenden auf:
- das Request Object- das Response Object- das Server Objectund- die Database Access Komponente
Internet-Datenbanken und ASP Was ist ASP ? Unterschiede zu CGI
Internet-Datenbanken und ASP ‚Hallo World‘ mit ASP
Das folgende Beispiel zeigt ein einfaches aber voll funktionsfähiges ASP-Script.Es wird die Write-Methode des Response Objekts verwendet,um Daten auszugeben.
Aufruf: lektion2a.asp
Internet-Datenbanken und ASP ‚Hallo World‘ mit ASP
<%@language = VBScript %><HTML><Head><Title>
ASP-Einfuehrung Lektion 2a</Title></head>
<body><h4>
Dies ist ein ASP Test !</h4><br>
Wenn alles richtig konfiguriert ist, sollte nach dieser Zeile der Satz 'Hallo World' erscheinen.<br><%
response.write("Hallo World")%></body></html>
Lektion2a.asp
Internet-Datenbanken und ASP Grundlegende Befehle
Das folgende Beispiel zeigt ein einfaches aber voll funktionsfähiges ASP-Script.Es werden die verschiedenen Variable-Typen gezeigtund angezeigt.
Aufruf: lektion3a.asp
Internet-Datenbanken und ASP Grundlegende Befehle
<%@language = VBScript %><%
Dim aDim bDim c,d,eDim f(3)
%><HTML><Head><Title>
ASP-Einfuehrung Lektion 3a - Variablen</Title></head>
<%a = "Hallo"b = "World"c = 2000d = 200000e = 3.14159f(0) = "Ein"f(1) = "Array"f(2) = "Test"
%><body><h4>
Dies ist ein ASP Test !</h4>
Variablen (Deklaration):
Lektion3a.asp
Internet-Datenbanken und ASP Grundlegende Befehle
<br>Wenn alles richtig konfiguriert ist, sollten Sie die Inhalte und Typen der Variablen a bis f
angezeigt bekommen.<br><table><%
response.write("<tr><td>Strings a,b : </td><td>" & a & " " & b & "</td></tr>")response.write("<tr><td>Integer c : </td><td>" & c & "</td></tr>")response.write("<tr><td>Long Int d : </td><td>" & d & "</td></tr>")response.write("<tr><td>Kommazahl e : </td><td>" & e & "</td></tr>")response.write("<tr><td>Array f(3) : </td><td>" & f(0) & " " & f(1) & " " & f(2) & "</td></tr>")
%></table></body></html>
Variablen (Benutzung):
Lektion3a.asp
Internet-Datenbanken und ASP Grundlegende Befehle
+ : Addieren- : Subtrahieren* : Multiplizieren/ : Dividieren& : Strings addieren< : kleiner als> : größer als<> : ungleich<= : kleiner gleich als>= : größer gleich als= : gleichRem / ‘ : Kommentar
Die wichtigsten Operatoren :
Internet-Datenbanken und ASP Grundlegende Befehle
Function name [(Argumente)] [Anweisungen] [name=Rückgabewert] [Exit Function] [Anweisungen] [name=Rückgabewert]End Function
Funktionen :
Internet-Datenbanken und ASP Grundlegende Befehle
If BedingungA Then [Anweisungen A][ElseIf BedingungB Then [Anweisungen B]]...[Else [Anweisungen C]]End If
Kontrollbedingungen:
Select Case Testausdruck [Case Ausdrucksliste] [Anweisungen]... [Case Else Ausdruck [Anweisungen]]End Select
Internet-Datenbanken und ASP Grundlegende Befehle
For counter = Start To Ende [Step Differenz] [Anweisungen] [Exit For] [Anweisungen]Next
Schleifen:
Do [{While | Until} Bedingung] [Anweisungen] [Exit Do] [Anweisungen]Loop
While [Bedingung] [Anweisungen] [Exit While] [Anweisungen]Wend
For Each Element In Gruppe [Anweisungen] [Exit For] [Anweisungen]Next
Internet-Datenbanken und ASP Grundlegende Befehle
Das folgende Beispiel zeigt ein einfaches ASP-Script, welcheswichtige Funktionen, die immer wieder benötigt werden, enthält.Zusätzlich wird die Abfrage von Kommandozeilen-Parameter und die Definition von eigenen Funktionen gezeigt.Das Script gibt x-Anzahl von Zehnerblöcken Ihres Textes aus.
Aufruf: lektion3b.asp?Anzahl=[x]&Text=[Ihr Text]
Internet-Datenbanken und ASP Grundlegende Befehle
<%@language = VBScript %><%
Dim anzahlDim aDim cDim Text
if request("Anzahl")="" or request("Anzahl")>10 or request("Anzahl")<1 then'Parameter "Anzahl" pruefen
anzahl=10else
anzahl=request("Anzahl")end ifif request("Text")="" then 'Parameter "Text" pruefen
text="Nichts angegeben!"else
text=request("Text")end if
%>
Lektion3b.asp
Internet-Datenbanken und ASP Grundlegende Befehle
<HTML><Head><Title>
ASP-Einfuehrung Lektion 3b - Beispiele für grundlegende Befehle</Title></head><body><h4>
Dies ist ein ASP Test !</h4><br><% 'len = Stringlaenge
c=string(len(text),"*") 'String mit Sternchen erzeugen for a = 1 to anzahl
response.write( chr(64+a) & ") " & c & "<br>") ‘erzeuge Zeichen von A bis ...ausgabe(text)
next%>
Lektion3b.asp
Internet-Datenbanken und ASP Grundlegende Befehle
</body>
<%function ausgabe(x)dim t
for t= 1 to 10response.write( t & " : " & x & "<br>" )
next
end function%>
</html>
Lektion3b.asp
ODBC und ADO... Was ist den das ?!
• Microsoft verfolgt neue Technologien auf Basis seines Component Object Modells (COM)
• Mittelpunkt der neuen Datenbankstrategie ist OLE DB
• OLE DB erlaubt nicht nur Zugriff auf relationale Datenquellen (z.B. Access, SQL-Server), sondern ist universell und beherrscht auch Zugriff auf Internet-Logs, Mail- oder Textdateien
Das Komponenten-Modell:
ODBC und ADO... Was ist den das ?!
• OLE DB tritt in Aktion, wenn ein sog. Consumer Daten anfordert
• Ein solcher Consumer können z.B. die Active Data Objects (ADO) sein, die ein Entwickler in ASP-Seiten verwendet hat
• OLE DB leitet die Anfragen eines Consumers an den richtigen Provider (z.B. eine Datenbank) weiter
• Die Verbindung zwischen OLE DB und Datenbank wird über ODBC (Open Database Connectivity) hergestellt
ODBC und ADO... Was ist den das ?!
Internet-Datenbanken und ASP Die erste Datenbankabfrage
Das folgende Beispiel zeigt ein ASP-Script, welches die Tabelle‚TB_Firma‘ der Datenbank ‚BPS.mdb‘ anzeigt. Es werden auchMöglichkeiten zum Hinzufügen und Löschen von Daten angeboten (lektion6 und lektion7).Die Datenbank muß dafür im ODBC-Setup als ‚BPS‘ angemeldetsein. Die Verwendung der DATABASE ACCESS Komponente wird hier demonstriert.
Aufruf: lektion5a.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
<%@language = VBScript %><HTML><Head><Title>
ASP-Einfuehrung Lektion 5a - Beispiel für eine Datenbankabfrage</Title></head><body><h4>
Inhalt von TB_Firmen</h4><br>
Lektion5a.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
<%sql="SELECT TB_Firmen.Key_Firma, TB_Firmen.Name, TB_Firmen.Strasse, TB_Firmen.PLZ, TB_Firmen.Ort, TB_Firmen.Telefon, TB_Firmen.Fax, TB_Firmen.[E-Mail] FROM TB_Firmen"
set DB=server.createobject("ADODB.CONNECTION")DB.open("BPS")set RS=DB.execute(sql)if DB.errors.count=0 then
%><table border=1><tr><td><b>Nr.</td><td><b>Name</td><td><b>Strasse</td><td><b>PLZ</td><td><b>Ort</td><td><b>Telefon</td><td><b>Fax</td><td><b>E-Mail</td><td><b>Optionen</td></tr><%
Lektion5a.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
while not rs.eof%><tr><td> <%response.write( RS("Key_Firma") )%> </td><td> <%response.write( RS("Name") )%> </td><td> <%response.write( RS("Strasse") )%> </td>
<td> <%response.write( RS("PLZ") )%> </td> <td> <%response.write( RS("Ort") )%> </td> <td> <%response.write( RS("Telefon") )%> </td> <td> <%response.write( RS("Fax") )%> </td> <td> <%response.write( RS("E-Mail") )%> </td>
<td> <a href="lektion7a.asp?Nr=<%response.write( RS("Key_Firma"))%>">löschen</a></td>
</tr><%rs.movenext
wendLektion5a.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
RS.CloseDB.Close%></table><br><a href="lektion6a.htm">Hinzufügen</a><%
elseresponse.write( "<br>Es sind Datenbankfehler aufgetreten : <br>" )for j = 0 to DB.errors.count - 1
response.write( DB.errors(j).description & "<br>" )nextDB.errors.clear
end if%></body></html>
Lektion5a.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
Aufgabe:
Programmieren Sie ein ASP-Script, das aus der Datenbank ,BPS.mdb‘ die Tabelle ‚TB_Praktikanten‘ ausliest.Benutzen Sie folgendes SQL-Statement:
SELECT TB_Praktikanten.Key_Praktikant, TB_Praktikanten.Name, TB_Praktikanten.Vorname, TB_Praktikanten.Matrikelnummer, TB_Praktikanten.[E-Mail], TB_Praktikanten.Telefon FROM TB_Praktikanten
Lösung: lektion5b.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
Das folgende Beispiel zeigt ein ASP-Script, welches die Praktikanten einer Firma anzeigt.Jede Firma kann 2 Praktikanten aufnehmen.Die Datenbank ‚BPS.mdb‘ muß dafür im ODBC-Setup als‚BPS‘ angemeldet sein. Die DATABASE ACCESS Komponente unddie Verwendung von komplexeren SQL-Befehlen wird hier demonstriert.
Aufruf: lektion5c.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
<%@language = VBScript %><HTML><Head><Title>
ASP-Einfuehrung Lektion 5c - Beispiel für eine Datenbankabfrage</Title></head><body><h4>
Firmen und ihre Praktikanten</h4><br>
Lektion5c.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
<%sql = "SELECT TB_Firmen.Name, TB_Firmen.Telefon, TB_Praktikanten.Name AS pr1,
TB_Praktikanten_1.Name AS pr2"sql = sql & " FROM TB_Praktikanten INNER JOIN (TB_Praktikanten AS TB_Praktikanten_1
INNER JOIN TB_Firmen ON"sql = sql & " TB_Praktikanten_1.Key_Praktikant = TB_Firmen.Key_Praktikant1) ON
TB_Praktikanten.Key_Praktikant = TB_Firmen.Key_Praktikant2"
Lektion5c.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
set DB=server.createobject("ADODB.CONNECTION")DB.open("BPS")set RS=DB.execute(sql)if DB.errors.count=0 then
%><table border=1><tr><td><b>Name</td><td><b>Telefon</td><td><b>Praktikant1</td><td><b>Praktikant2</td></tr><%
Lektion5c.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
while not rs.eof%><tr><td> <%response.write( RS("Name") )%> </td><td> <%response.write( RS("Telefon") )%> </td>
<td> <%response.write( RS("pr1") )%> </td> <td> <%response.write( RS("pr2") )%> </td>
</tr><%rs.movenext
wend
Lektion5c.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage
RS.CloseDB.Close%></table><%
elseresponse.write( "<br>Es sind Datenbankfehler aufgetreten : <br>" )for j = 0 to DB.errors.count - 1
response.write( DB.errors(j).description & "<br>" )nextDB.errors.clear
end if%></body></html>
Lektion5c.asp
Internet-Datenbanken und ASP Einfügen von Daten
Das folgende Beispiel zeigt ein HTML-Formular zum Erzeugen eines neuen Firmeneintrags in der Datenbank.Die Datenbank ‚BPS.mdb‘ muß dafür im ODBC-Setup als‚BPS‘ angemeldet sein. Das Formular nimmt nur die Daten entgegen und ruft dannein ASP-Script (lektion6a.asp) auf, welches die Verbindung zur Datenbank herstellt und einen neuen Datensatz erzeugt.
Aufruf: lektion6a.htmKomplette Anwendung für Firmenverwaltung: lektion5a.asp
Internet-Datenbanken und ASP Einfügen von Daten
<html><head> <title>ASP-Einfuehrung Lektion 6a - Beispiel für das Einfügen von Daten</title></head><body><H2>Neuer Firmeneintrag</H2><form method="Post" action="lektion6a.asp"><table border=0><tr><td>Name:</td><td><input TYPE="text" NAME="Name" SIZE="50" MAXLENGTH="50"></td></tr><td>Strasse:</td><td><input TYPE="text" NAME="Strasse" SIZE="50" MAXLENGTH="50"></td></tr><td>PLZ:</td><td><input TYPE="text" NAME="PLZ" SIZE="50" MAXLENGTH="50"></td></tr>
Lektion6a.htm
Internet-Datenbanken und ASP Einfügen von Daten
<td>Ort:</td><td><input TYPE="text" NAME="Ort" SIZE="50" MAXLENGTH="50"></td></tr><td>Telefon:</td><td><input TYPE="text" NAME="Telefon" SIZE="50" MAXLENGTH="50"></td></tr><td>FAX:</td><td><input TYPE="text" NAME="Fax" SIZE="50" MAXLENGTH="50"></td></tr><td>E-Mail:</td><td><input TYPE="text" NAME="Email" SIZE="50" MAXLENGTH="50"></td></tr></table><hr size=7><input type="SUBMIT" value="Speichern"> <input type="RESET" value="Reset"> </form></body></html>
Lektion6a.htm
Internet-Datenbanken und ASP Einfügen von Daten
<%@language = VBScript %><%on error resume next
Rem ASP-Einfuehrung Lektion 6a - Beispiel für das Einfügen von Daten
name=request("Name")strasse=request("Strasse")plz=request("PLZ")ort=request("Ort")telefon=request("Telefon")fax=request("Fax")email=request("Email")
Set DB = Server.CreateObject("ADODB.Connection")DB.Open "BPS"
Lektion6a.asp
Internet-Datenbanken und ASP Einfügen von Daten
sql = "INSERT INTO TB_Firmen(Name,Strasse,PLZ,Ort,Telefon,Fax,[E-Mail])"sql = sql & " VALUES ("sql = sql & "'" & name & "',"sql = sql & "'" & strasse & "',"sql = sql & "'" & plz & "',"sql = sql & "'" & ort & "',"sql = sql & "'" & telefon & "',"sql = sql & "'" & fax & "',"sql = sql & "'" & email & "')"
Set rs = DB.Execute(sql)'response.write(sql)db.closeresponse.redirect("lektion5a.asp") ‘ruft nach dem Einfügen die Übersicht auf%>
Lektion6a.asp
Internet-Datenbanken und ASP Einfügen von Daten
Aufgabe:
Programmieren Sie ein HTML-Formular und ein ASP-Script, welche in der Tabelle ,TB_Praktikanten‘ der Datenbank ,BPS.mdb‘ einen neuen Datensatz erzeugen.Benutzen Sie folgendes SQL-Statement:
INSERT INTO TB_Praktikanten (Name,Vorname,Matrikelnummer,[E-Mail],Telefon) VALUES ([Name],[Vorname],[Matrikelnummer],[E-Mail],[Telefon]);
Lösung: lektion6b.htm und lektion6b.aspKomplette Anwendung für Praktikantenverwaltung: lektion5b.asp
Internet-Datenbanken und ASP Löschen von Daten
Das folgende Beispiel zeigt ein ASP-Script, welches Einträge aus der Tabelle ‚TB_Firmen‘ löscht. Die Datenbank ‚BPS.mdb‘ muß dafür im ODBC-Setup als‚BPS‘ angemeldet sein. Die Index-Nummer der zu löschenden Firma, wird an derKommandozeile des Scripts übergeben (siehe auchlektion5a.asp)
Aufruf: lektion7a.aspKomplette Anwendung für Firmenverwaltung: lektion5a.asp
Internet-Datenbanken und ASP Löschen von Daten
<%@language = VBScript %><%on error resume next
Rem ASP-Einfuehrung Lektion 7a - Beispiel für das Löschen von Daten
key=request("Nr")
Set DB = Server.CreateObject("ADODB.Connection")DB.Open "BPS"
sql = "delete * from TB_Firmen where Key_Firma=" & key & ";"
Set rs = DB.Execute(sql)'response.write(sql)db.closeresponse.redirect("lektion5a.asp")%>
Lektion7a.asp
Internet-Datenbanken und ASP Löschen von Daten
Aufgabe:
Programmieren Sie ein ASP-Script, welches aus der Tabelle ,TB_Praktikanten‘ der Datenbank ,BPS.mdb‘ einen Datensatz löscht.Die Index-Nummer soll als Kommandozeilenparameter ‚?Nr=‘übergeben werden. Benutzen Sie folgendes SQL-Statement:
delete * from TB_Praktikanten where Key_Praktikant=[Nr];
Lösung: lektion7b.aspKomplette Anwendung für Praktikantenverwaltung: lektion5b.asp