450 likes | 618 Views
Internet-Datenbanken und ASP. Eine Einführung von J.Sommer & A.Vortisch. Internet-Datenbanken und ASP Inhalt:. Voraussetzungen Was ist ASP ? - Unterschiede zu CGI - Aufbau ‚Hallo World‘ mit ASP Grundlegende Befehle ODBC und ADO .... Was ist denn das ?! Die erste Datenbankabfrage
E N D
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 Internet-Datenbanken und ASP Voraussetzungen 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 Access ODBC-Treiber mit.Ansonsten gilt : Weniger ist mehr. Nur die unbedingt nötigen Komponenten installieren.
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
Internet-Datenbanken und ASP Was ist ASP ? Unterschiede zu CGI 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 Object und - die Database Access Komponente
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 Variablen (Deklaration): <%@language = VBScript %> <% Dim a Dim b Dim c,d,e Dim f(3) %> <HTML> <Head> <Title> ASP-Einfuehrung Lektion 3a - Variablen </Title> </head> <% a = "Hallo" b = "World" c = 2000 d = 200000 e = 3.14159 f(0) = "Ein" f(1) = "Array" f(2) = "Test" %> <body> <h4> Dies ist ein ASP Test ! </h4> Lektion3a.asp
Internet-Datenbanken und ASP Grundlegende Befehle Variablen (Benutzung): <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> Lektion3a.asp
Internet-Datenbanken und ASP Grundlegende Befehle Die wichtigsten Operatoren : + : Addieren - : Subtrahieren * : Multiplizieren / : Dividieren & : Strings addieren < : kleiner als > : größer als <> : ungleich <= : kleiner gleich als >= : größer gleich als = : gleich Rem / ‘ : Kommentar
Internet-Datenbanken und ASP Grundlegende Befehle Funktionen : Function name [(Argumente)] [Anweisungen] [name=Rückgabewert] [Exit Function] [Anweisungen] [name=Rückgabewert] End Function
Internet-Datenbanken und ASP Grundlegende Befehle Kontrollbedingungen: If BedingungA Then [Anweisungen A] [ElseIf BedingungB Then [Anweisungen B]]... [Else [Anweisungen C]] End If Select Case Testausdruck [Case Ausdrucksliste] [Anweisungen]... [Case Else Ausdruck [Anweisungen]] End Select
Internet-Datenbanken und ASP Grundlegende Befehle Schleifen: For counter = Start To Ende [Step Differenz] [Anweisungen] [Exit For] [Anweisungen] Next While [Bedingung] [Anweisungen] [Exit While] [Anweisungen] Wend Do [{While | Until} Bedingung] [Anweisungen] [Exit Do] [Anweisungen] Loop 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 anzahl Dim a Dim c Dim Text if request("Anzahl")="" or request("Anzahl")>10 or request("Anzahl")<1 then 'Parameter "Anzahl" pruefen anzahl=10 else anzahl=request("Anzahl") end if if 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 10 response.write( t & " : " & x & "<br>" ) next end function %> </html> Lektion3b.asp
ODBC und ADO... Was ist den das ?! Das Komponenten-Modell: • 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
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
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 auch Mö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 wend Lektion5a.asp
Internet-Datenbanken und ASP Die erste Datenbankabfrage RS.Close DB.Close %> </table> <br> <a href="lektion6a.htm">Hinzufügen</a> <% else response.write( "<br>Es sind Datenbankfehler aufgetreten : <br>" ) for j = 0 to DB.errors.count - 1 response.write( DB.errors(j).description & "<br>" ) next DB.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 und die 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.Close DB.Close %> </table> <% else response.write( "<br>Es sind Datenbankfehler aufgetreten : <br>" ) for j = 0 to DB.errors.count - 1 response.write( DB.errors(j).description & "<br>" ) next DB.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.htm Komplette 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.close response.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.asp Komplette 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 der Kommandozeile des Scripts übergeben (siehe auch lektion5a.asp) Aufruf: lektion7a.asp Komplette 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.close response.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.asp Komplette Anwendung für Praktikantenverwaltung: lektion5b.asp