ASP programmieren
1. Einführung
Active Server Pages verbinden ausführbaren Programmcode mit HTML-Elementen. Zu diesem Zweck muss der Code für den Server gekennzeichnet werden, damit dieser beim Aufruf der Seite die Programmelemente ausführen kann. Der Anfang eines Codefragmentes wird durch <% eingeleitet. Abgeschlossen wird das Fragment durch %>
Das Response-Objekt beinhaltet alle Informationen, die von einem Server zu einem Broqser geschickt werden, einschließlich der des HTML-Inhalts, der von einer ASP-Seite erzeugt wird.
Im Gegensatz dazu beinhaltet das Request-Objekt alle Informationen, die von einem Browser zu einem Server gesendet werden, einschließlich der Variablen und Anfrage-Zeichenketten.
Probieren Sie das Programm aus Abb.2. Achten Sie darauf, dass Ihre Programme im richtigen Verzeichnis stehen.
Die Beispiele von Chilisoft sowie die Beispiele aus /1/ zeigen Ihnen den Umgang mit ASP.
Daten aus Formularen übernehmen
Interaktivität mit dem Nutzer bildet ein enormes Potenzial für dynamische Seiten. Sie kennen das von den Suchmaschinen, wo man die Suchbegriffe in einem Formularelement eingeben kann. Dahinter hängt natürlich noch eine Datenbank. Aber dazu komme ich später.
Erst einmal geht es um die Übernahme der Formulardaten als Variablen für asp. Innerhalb von ASP wird irgendetwas berechnet und dann in html ausgegeben.
Zur Erstellung von Formularelementen sehen Sie sich bitte die entsprechenden Arbeitsblätter auf Laufwerk W: des Fachbereichsservers an oder im Internet unter: http://www. ?.de oder in /1/.
Folgende Vorgehensweise:
Man erstellt 2 Seiten:
Eine reine HTML-Seite mit den Formularelementen und eine Seite, wo die Einträge aus dem Formular mittels ASP ausgewertet werden.
Beispiel: formular.html und addieren.asp
Quelltexte:
Formular.html:
Hierdurch werden die Daten zur ASP-Datei geschickt
submit heißt abschicken
Addieren.asp:
Variablenwerte übernehmen mit Request-Objekt,
trim() schneidet Leerzeichen ab,
Variablen müssen nicht deklariert werden
Ausgabe unter Verwendung der Ausgabetrennzeichen,
Formularinhalte werden als Zeichenketten behandelt,
Hier erfolgt die Zeichenkettenverknüpfung
Umwandlung der Zeichenketten in Integerwerte durch Int()
Übungsaufgaben:
Wie arbeitet man mit reellen Zahlen ??
Wie kann man die arithmetischen Operatoren eingeben ?
Arbeit mit Dateien
Mittels ASP kann man Dateien, die auf dem Server liegen, lesen, erzeugen, erweitern oder manipulieren.
Folgende Vorgehensweise:
3.1 Datenbank anlegen (siehe auch /1/ ab Seite 104)
Dazu nutzt man irgend ein relationales Datenbankmanagementsystem. Wir haben hier ACCESS im Hause. ACCESS ist für viele gleichzeitige Zugriffe nicht geeignet, aber für gelegentliche Zugriffe auf die Dateien geht es schon. Die Alternative wäre MySQL.
Man startet ACCESS und legt eine neue Datenbank an.
Innerhalb dieser entwirft man noch die notwendigen Tabellen mit den Tabellenspalten.
Man kann in die Tabellen Datensätze reinschreiben oder auch leer lassen. Das hängt ja nun von der Anwendung ab.
Verbindung zu der Datenbank herstellen (siehe /1/ ab Seite 108)
Über die Systemsteuerung erstellt man einmalig für eine Datenbank eine ODBC-Datenquelle. Zuerst fügt man den richtigen Treiber für das entsprechende Datenbanksystem hinzu. In unserem Fall ist das ACCESS.
Wichtig ist im nächsten Schritt, dass die Datenbank als Systemdatenquelle (System DSN) eingetragen wird, damit der Web-Server sie auch als solche erkennt.
Bedenke: Sobald der Ort der Datenbank verändert wird, muß die DSN (Data Source Name) ebenfalls geändert werden.
Zugriff auf die Datenbank
VBScript, wie es bei ASP verwendet wird, besitzt selbst keine Sprachkonstrukte, um auf Datenbanken zuzugreifen. Hier hat sich Microsoft aber eine ausreichende Erweiterung ausgedacht. Innerhalb der Scripting-Sprache können beliebige ActiveX-Objekte verwendet werden. Deshalb liegt es nahe, das ADO (Active Data Object) für die Verbindung zur Datenbank zu verwenden. Dieses Objekt verfügt über eine Methode zum Öffnen der Datenbank:
<%
set con=Server.createObject(„ADODB.connection“) ‘Ein Object con wird geschaffen
con.open”accessStud” ‘con öffnet die Datenbank
%>
Die Datenbank abfragen
Dazu nutzt man SQL. Structured Query Language ist innerhalb der Datenbanken zu einem Standard geworden. Jede gängige Datenbank ist heutzutage SQL-fähig.
SQL-Befehle kann man nun auch in ASP einbinden.
Zuerst weist man den SQL-Befehl einer Stringvariablen zu.
Nach dem Verbinden der Datenbank verfügt man über das Objekt con, welches Befehle ausführen kann. Zur Ausführung übergibt man den String an con und mittels der Methode execute wird SQL abgearbeitet.
Hinzufügen von Datensätzen:
Syntax: INSERT INTO Tabelle (Spaltenliste) VALUES (Wertliste)
Beispiele:
sqlstring="insert into products ( product_name, product_price )" &_
"values ('Gift',4.90)"
con.execute sqlString
productName=”Gift”
productPrice=5.50
sqlstring="insert into products ( product_name, product_price )" &_
"values (' ” & productName & ” ',” & productPrice & “ )"
con.execute sqlString
sqlstring="insert into studies ( Mat_nr, name, vorname )" &_
"values ('2222','Schulze','Ole')"
con.execute sqlstring
con.close
Aktualisieren von Datensätzen:
Syntax: UPDATE Tabelle SET Spalte=neuerWert WHERE Spalte=Wert
Beipsiele:
SqlString= „” UPDATE Products „SET product_price=6.50 WHERE product_name=’Gift’ “
Con.Execute sqlString
SqlString= „” UPDATE Products „SET product_price=6.50 WHERE product_id=15 “
Con.Execute sqlString
Auswahl von Datensätzen:
Syntax: SELECT Spalte FROM Tabelle
Beispiel: Anzeigen einer Spalte aller Datensätze einer Tabelle :
sqlString = "SELECT product_name FROM Products " &_
SET RS = Con.Execute( sqlString )
WHILE NOT RS.EOF
%>
<%=RS( "product_name" )%>
<%
RS.MoveNext
WEND ‚ Ende der While-Schleife
%>
Beispiel: Auswahl bestimmter Datensätze einer Tabelle
Syntax: SELECT Spalte FROM Tabelle WHERE Spalte=Wert
sqlstring="SELECT mat_nr FROM T_Matnr WHERE mat_nr="&m&" "
‘ m ist eine Variable aus einem Formular
set rs=con.execute(sqlstring)
Beispiel: Sortierte Auswahl von Datensätzen
Syntax: SELECT Spalte FROM Tabelle WHERE Spalte=Wert ORDER BY Spalte
sqlString = "SELECT product_id, product_name FROM Products ORDER BY “&_ “product_name"
SET RS = Con.Execute( sqlString )
WHILE NOT RS.EOF
%>
">
<%=RS( "product_name" )%>
|
<%
RS.MoveNext
WEND
%>
weitere SQL- SELECT- Anweisungen:
SELECT * FROM Tabelle
|
- alle Spalten werden abgerufen
|
SELECT Spalte1, Spalte2 FROM Tabelle
|
- Spalte1 und 2 werden abgerufen
|
SELECT Spalte FROM Tabelle WHERE
Spalte < Wert
|
- Auswahl von Datensätzen, die einem
Kriterium genügen
|
SELECT DISTINCT Spalte FROM Tabelle
|
- Auswahl verschiedener Enträge z.B.
Kategorien
|
SELECT Spalte FROM Tabelle WHERE
Spalte < Wert ORDER BY Spalte
|
- Sortierung
|
SELECT Spalte1 FROM Tabelle WHERE
Spalte2 < Wert1 AND Spalte3 = Wert2
|
- Auswahl nach mehreren Kriterien mit UND-
Verknüpfung
|
SELECT Spalte1 FROM Tabelle WHERE
Spalte2 < Wert1 OR Spalte3 = Wert2
|
- Auswahl nach mehreren Kriterien mit OR-
Verknüpfung
|
Literatur
/1/ Stephen Walther, J. Levine
Ich wünsche
viel Spaß und
Erfolg !
E-Commerce mit ASP
Verlag Markt + Technik, 2001
ISBN 3-8272-5839-1
/2/ Peter Curth
ACCESS-Datenbanken ins Netz
InternetWorld 7/99 S. 96-99
/3/ Marty Hall
Servlets und JavaServer Pages
Verlag Markt + Technik 2001
ISBN 3-8272-5945-2
/4/ Ch.Wenz, Ch. Trennhaus, A. Kordwig
Active Server Pages
Verlag Markt + Technik 2001
ISBN 3-8272-5925-8
____________________________________________
Arbeitsblätter ASP (Active Server Pages) Seite