Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen"—  Präsentation transkript:

1 Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
von Thomas Ohlhauser Wilhelm-Schickard-Schule Tübingen

2 Inhalt Basiswissen Dynamische Webseiten mit ASP Voraussetzungen
Zugriff auf eine ACCESS-Datenbank über ODBC und DSN Zugriff auf eine ACCESS-Datenbank über ADO Abfragen mit SQL Wysiwyg – Editoren Realisierung im Schulnetz

3 HTML ohne ASP Der Browser nimmt die URL in der Adressleiste entgegen und leitet sie in Form einer http-Anfrage an den Webserver weiter. Dabei sprechen beide die Sprache "http"! Der Server stellt die gewünschte Information zusammen und leitet sie wieder auf "http-ianisch" an den Browser zurück.

4 HTML mit ASP Die Anfrage geht nicht an eine statische Datei.
Es wird vielmehr über den Webserver ein Programm aufgerufen. Dieses erzeugt dynamisch Daten (z.B. HTML). Die "frisch" erzeugten Daten gehen über den Webserver an den Anfragenden zurück.

5 Dynamische Webseiten mit ASP
Beispiel: beispiel1.asp <html> <head> <title>Mein erstes ASP-Skript</title> </head> <body> <h1>Hallo Welt</h1> <br> Auf meiner Homepage ist es <% =Now() %> Response.Write "Ich glaube es wird Zeit eine Pause zu machen!" </body> </html>

6 Dynamische Webseiten mit ASP
Die folgende Grafik zeigt die Wirkung des ASP-Skripts: Erläuterung: Mit den Tags <% .....%> wird dem Server signalisiert, dass sich hier der ASP-Code befindet, der verarbeitet werden muss. Der Befehl now() bedeutet, dass jedes Mal, wenn man diese Seite aufruft, das Datum und die Uhrzeit vom Server erneut gelesen und angezeigt wird. Der Befehl Response.Write wird verwendet, um einen Wert auszugeben.

7 Webserver PWS (Personal Web Server). Er ist im Lieferumfang von Windows 9x enthalten und kann bei der Installation aktiviert oder später nachinstalliert werden (Systemsteuerung / Software). IIS (Internet Information Server). Er ist im Lieferumfang von Windows NT/2000 enthalten und wird bei der Installation als Dienst eingerichtet. Zum Konfigurieren des IIS stehen in der Systemsteuerung unter Verwaltung Tools zur Verfügung. C:\Inetpub\wwwroot (Standardordner für die Webdateien). Localhost ist die Bezeichnung (Computername) für den eigenen Rechner. default.asp (Standardmäßige Startseite).

8 Webserver Beispiel: default.asp <html> <head>
<title>Zweites ASP-Script</title> </head> <body> <h1>Hallo Welt</h1> <br> <% Response.Write "Dies ist die Startseite (default.asp) meiner Homepage!" & "<br>" Response.Write "Sie liegt in dem Verzeichnis C:\Inetpub\wwwroot!" & "<br>" Response.Write "Ich benutze den Internet Information Server (IIS)!" & "<br>" %> </body> </html>

9 IIS

10 Datenbankanbindung mit ODBC und DSN
ODBC (Open Database Connectivity). Anbindung an verschiedene Datenbanksysteme mithilfe von ODBC-Treibern. DSN (Data Source Name). Konfigurationsdatei auf dem Server. Starten Sie im Windows 2000 Startmenü den Befehl Programme / Verwaltung / Datenquellen (ODBC). Aktivieren Sie die Registerkarte System-DSN. Klicken Sie auf Hinzufügen. Im Fenster Neue Datenquelle erstellen markieren Sie im Listenfeld den Eintrag Microsoft-Access-Treiber (*.mdb). Klicken Sie dann auf Weiter. Legen Sie einen Namen, beispielsweise fit4life, für die DSN-Datei fest, schalten Sie mit Weiter zum letzten Schritt und klicken Sie auf Fertigstellen. Das Fenster ODBC Microsoft Access Setup wird angezeigt. Klicken Sie auf die Schaltfläche Auswählen. Suchen Sie über die Ordner die Datenbankdatei (fit4life.mdb) aus.

11 DSN für die ACCESS-Datenbank anlegen

12 DSN für die ACCESS-Datenbank anlegen

13 Verbindung mit der Datenbank
Beispiel: dbzugriff.asp <html> <body> <% Set ConDB=Server.CreateObject("ADODB.Connection") ConDB.Open "fit4life" Response.Write "Verbindung zur Datenbank Fit4life.mdb geöffnet!" %> <br> ... ConDB.Close Response.Write "Verbindung zur Datenbank wieder geschlossen!" </body> </html>

14 Verbindung mit der Datenbank
Die folgende Grafik zeigt die Wirkung des ASP-Skripts: Erläuterung: ASP ist eine Sammlung von mehreren vordefinierten Objekten, Request, Response, Application, Session, Server, ADODB.Connection (Schnittstelle, die den Zugriff auf Datenbanken erleichtert), Methode Open (Verbindung zur Datenbank herstellen), Name der DSN-Datei, Methode Close beendet die Verbindung zur Datenbank.

15 Tabellen auslesen ... Beispiel: dbzugriff1.asp <html>
<body> <% Set ConDB=Server.CreateObject("ADODB.Connection") ConDB.Open "fit4life" Response.Write "Verbindung zur Datenbank Fit4Life.mdb geöffnet!" %> <br> Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open "LEISTUNG", ConDB Response.Write "Leistungstabelle geöffnet!" <hr> Rs.MoveFirst While Not Rs.EOF Response.Write Rs("LNr") & " ," Response.Write Rs("Bezeichnung") & " ," Response.Write Rs("Gruppe") & " ,"

16 Tabellen auslesen ... Response.Write Rs("Kursleiter") & " ,"
Response.Write Rs("VKPreis") & " , " Response.Write Rs("WochenTag") & " ," Response.Write "<br><hr>" Rs.MoveNext Wend %> <br> <% Rs.Close Response.Write "Leistungstabelle wieder geschlossen!" ConDB.Close Response.Write "Verbindung zur Datenbank wieder geschlossen!" </body> </html>

17 Tabellen auslesen ... Erklärung:
Verbindung zur anzuzeigenden Tabelle (Leistung) öffnen, Zugriff auf die Tabellendaten und die Ergebnisse einer Access-Abfrage mit dem Recordset-Objekt, Den Inhalt eines Datenbank-Feldes erhält man mit dem Befehl Recordset(„Feldname“), “MoveFirst“ bewegt den Satzzeiger auf den ersten Datensatz des Recordsets, “While Not Rs.EOF“ bedeutet, dass die Tabelle solange durchlaufen werden soll, bis sich der Satzzeiger hinter dem letzten Datensatz der Tabelle befindet, Mit „Wend“ wird das Recordset beendet, “Rs.Close“ schließt die Tabelle und “ConDB.Close“ die Datenbank.

18 Datenbankanbindung mit ADO ohne DSN
Beispiel: dbzugriff2.asp <html> <head></head> <body> <% 'Pfad und Dateiname der Datenbank strDB = "Data Source=" & _ Server.MapPath("fit4life.mdb") 'Parameter zum Öffnen der Datenbank strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & strDB 'Name der Tabelle oder Abfrage, die geöffnet werden soll strTabelle= "Leistung" 'Objekt für den Verbindungsaufbau mit der Datenbank Set ConDB = Server.CreateObject("ADODB.Connection") ConDB.Open strCon Response.Write "Verbindung zur Datenbank geöffnet.<br>" 'Objekt für das Recordset-Objekt Set RS = Server.CreateObject("ADODB.Recordset") Rs.open strTabelle, ConDB Response.Write "Leistungstabelle geöffnet.<br>"

19 Datenbankanbindung mit ADO ohne DSN
'Befehle zur Bearbeitung der Daten  Response.Write "<HR>" 'Geht zum ersten Datensatz Rs.MoveFirst 'Liest bis das Ende der Daten erreicht ist While Not Rs.EOF Response.Write Rs("LNr") & " ," Response.Write Rs("Bezeichnung") & " ," Response.Write Rs("Gruppe") & " ," Response.Write Rs("Kursleiter") & " ," Response.Write Rs("VKPreis") & " , " Response.Write Rs("WochenTag") & " ," Response.Write "<br><hr>" Rs.MoveNext Wend 'Verbindungsobjekt schließen ConDB.close Response.Write "Verbindung geschlossen.<br>" %> <hr> </body> </html>

20 Datenbankanbindung mit ADO ohne DSN
Erklärung: Öffnen der Datenbank über die Variable strCon, Parameter Provider definiert den Treiber, Data Source bestimmt den Pfad und Dateinamen der ACCESS-Datenbank (Variable strDB), strDB = "Data Source=" & _ Server.MapPath("fit4life.mdb") strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & strDB “Provider=Microsoft.Jet.OLEDB.4.0;“ – Treiber für ACCESS 97 und ACCESS 2000, Rs.open strTabelle, ConDB Recordset wird geöffnet, empfängt die Daten der Tabelle „Leistung“ (strTabelle = “Leistung“), Verbindungsparameter zur Datenbank. Die Befehle zum Öffnen bzw. Schließen der Datenbank und der jeweiligen Tabelle sind identisch mit dem Zugriff über ODBC und DSN. Exkurs: Auf Excel-Daten zugreifen .... Server.MapPath(“tabelle.xls") strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Excel 8.0; " & strDB

21 Abfragen mit SQL Beispiel: dbzugriff3.asp <html>
<head></head> <body> <% 'Pfad und Dateiname der Datenbank strDB = "Data Source=" & _ Server.MapPath("fit4life.mdb") 'Parameter zum Öffnen der Datenbank strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & strDB 'Name der Abfrage, die geöffnet werden soll strSQL = "Select LNr, Bezeichnung, Gruppe, Kursleiter, VKPreis, WochenTag From LEISTUNG Where WochenTag ='Montag';„ 'Objekt für den Verbindungsaufbau mit der Datenbank Set ConDB = Server.CreateObject("ADODB.Connection") ConDB.Open strCon Response.Write "Verbindung zur Datenbank geöffnet.<br>" 'Objekt für das Recordset-Objekt Set Rs = Server.CreateObject("ADODB.Recordset") Rs.open strSQL, ConDB

22 Abfragen mit SQL 'Befehle zur Bearbeitung der Daten
Response.Write "<HR>" 'Geht zum ersten Datensatz Rs.MoveFirst 'Liest bis das Ende der Daten erreicht ist do While Not Rs.EOF Response.Write Rs("LNr") & ", " Response.Write Rs("Bezeichnung") & ", " Response.Write Rs("Gruppe") & ", " Response.Write Rs("Kursleiter") & ", " Response.Write Rs("VKPreis") & ", " Response.Write Rs("WochenTag") & ", " Response.Write "<br><hr>" 'Geht einen Datensatz weiter Rs.MoveNext Loop 'Verbindungsobjekt schließen ConDB.close Response.Write "Verbindung geschlossen.<br>" %> <hr> </body> </html>

23 Abfragen mit SQL Erklärung:
Die Grundstruktur einer SQL – Abfrage sieht wie folgt aus: Select Attribute From Tabellen Where Selektionskriterien; Dabei sind nur die Select- und die From- Klausel zwingend. Alle SQL-Anweisungen sind mit einem Semikolon (;) abzuschliessen. Beispiel: Es werden alle Leistungen gesucht, welche an einem Montag stattfinden. Select LNr, Bezeichnung, Gruppe, Kursleiter, VKPreis, WochenTag From LEISTUNG Where WochenTag ='Montag';" Im ASP-Skript werden die SQL-Befehle zur weiteren Verarbeitung in eine Variable gepackt.   strSQL = "Select LNr, Bezeichnung, Gruppe, Kursleiter, VKPreis, WochenTag From LEISTUNG Where WochenTag ='Montag';" Für den Zugriff auf die Datenbank benötigt man die Befehle, die in den vorhergehenden Beispielen erläutert wurden. Da man statt der gesamten Leistungstabelle nur bestimmte Daten sehen möchte, wird lediglich der Parameter Leistungstabelle durch die SQL-Anweisung ausgetauscht.

24 HTML-Formulare zur Datenbankabfrage
Für die Administration einer Datenbank ist es sinnvoll auf einer HTML-Seite Formularmasken zu erstellen, um folgende Aufgaben durchführen zu können: Suche nach bestimmten Datensätzen, Hinzufügen von Datensätzen, Löschen von Datensätzen, Anzeigen der gesamten Datenbank. 1. Einen Datensatz suchen“ Das Formular besteht aus einem Eingabefeld (db_feld1) und einem Submit-Button, der die Suchanfrage an die Seite db_ergebnis.asp schickt. <HTML> <HEAD> <TITLE>Einen Datensatz suchen</TITLE> </HEAD> <BODY> <B>An welchem Wochentag möchten Sie Kurse besuchen?</B> <FORM METHOD=POST ACTION="db_ergebnis.asp"> <INPUT TYPE="text" NAME="db_feld1" style="width:200px" size="20"> <INPUT TYPE="submit" value="suchen" style="width:100px"> </FORM> </BODY> </HTML>

25 Ergebnis einer Datenbanksuche ausgeben
<html> <head></head> <body> <% 'Speichern der im Request-Objekt übergebenen Formulardaten Dim feld1 feld1 = Request.Form("db_feld1") 'Pfad und Dateiname der Datenbank strDB = "Data Source=" & _ Server.MapPath("fit4life.mdb") 'Parameter zum Öffnen der Datenbank strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & strDB 'Name der Abfrage, die geöffnet werden soll strSQL = "Select LNr, Bezeichnung, Gruppe, Kursleiter, VKPreis, WochenTag From LEISTUNG Where WochenTag LIKE '%" & feld1 & "%';" 'Objekt für den Verbindungsaufbau mit der Datenbank Set ConDB = Server.CreateObject("ADODB.Connection") ConDB.Open strCon Response.Write "Verbindung zur Datenbank geöffnet.<br>" 'Objekt für das Recordset-Objekt Set Rs = Server.CreateObject("ADODB.Recordset") Rs.open strSQL, ConDB

26 Ergebnis einer Datenbanksuche ausgeben
'Befehle zur Bearbeitung der Daten Response.Write "<HR>" 'Geht zum ersten Datensatz Rs.MoveFirst 'Liest bis das Ende der Daten erreicht ist do While Not Rs.EOF Response.Write Rs("LNr") & ", " Response.Write Rs("Bezeichnung") & ", " Response.Write Rs("Gruppe") & ", " Response.Write Rs("Kursleiter") & ", " Response.Write Rs("VKPreis") & ", " Response.Write Rs("WochenTag") & ", " Response.Write "<br><hr>" 'Geht einen Datensatz weiter Rs.MoveNext Loop 'Verbindungsobjekt schließen ConDB.close Response.Write "Verbindung geschlossen.<br>" %> <hr> </body> </html>

27 Ergebnis einer Datenbanksuche ausgeben
Erklärung: Um die Programmierung übersichtlicher zu gestalten werden die im Request Objekt übergebenen Formulardaten zunächst in eine Variable gespeichert. Dim feld1 feld1 = Request.Form("db_feld1") Danach wird die Verbindung zur Datenbank hergestellt und das Recordset-Objekt geöffnet. Mit der SQL-Abfrage Like ’%Kriterium%’ wird nach einem Teilstring innerhalb eines Feldes gesucht. Im Beispiel bezieht sich die Suche auf den Wochentag. sql = "Select LNr, Bezeichnung, Gruppe, Kursleiter, VKPreis, WochenTag from LEISTUNG Where WochenTag LIKE '%" & feld1 & "%';" Nur wenn das Recordset Datensätze als Ergebnis der Abfrage enthält, wird die Datenbankoperation auch ausgeführt. If Rs.EOF = False Then Do Until Rs.EOF Hat der User einen Begriff gesucht, der nicht in der Datenbank enthalten ist, wird eine Fehlermeldung ausgegeben. Else Response.Write("<b>Leider keinen Eintrag gefunden!</b>") End If Zum Schluss wird das Recordset und die Datenbankverbindung wieder geschlosssen.

28 Gesamte Tabelle durchsuchen
Bezieht sich die Suche nicht nur auf den Wochentag, so ist der SQL-Befehl folgendermaßen zu ergänzen:   strSQL = "Select LNr, Bezeichnung, Gruppe, Kursleiter, VKPreis, WochenTag From LEISTUNG Where LNr & Bezeichnung & Gruppe & Kursleiter & VKPreis & WochenTag LIKE '%" & feld1 & "%';"

29 Wysiwyg – Editoren am Beispiel Microsoft Frontpage 2000
1) Alle Datensätze einer Tabelle dynamisch anzeigen Schritt1: Erstellen Sie mit Datei/Neu/Seite eine neue Seite und speichern Sie sie im wwwroot – Ordner ihres Webservers als ASP-Seite ab. Schritt2: Wählen Sie im Dialogfeld Einfügen die Registerkarte Datenbank / Ergebnisse.

30 Microsoft Frontpage 2000 Schritt 3:
Neue Datenbankverbindung verwenden / Erstellen. Dialogfeld Datenbank / Hinzufügen. Geben Sie einen Namen für die Datenbank ein (Beispiel: Fit4Life). Wählen Sie als Verbindungstyp: Datei oder Ordner im aktuellen Web. Wählen Sie dann Ihre Datenbank innerhalb des wwwroot-Ordners aus (Beispiel: fit4life.mdb). Klicken Sie jeweils auf OK.

31 Microsoft Frontpage 2000 Schritt 4:
Nachdem Sie alle Dialogfelder mit OK bestätigt haben, erscheint die ausgwählte Datenbank im Dialogfeld: Bestehende Datenbank verwenden. Klicken Sie auf Weiter. Schritt 5: Wählen Sie im Dialogfeld Datensatzquelle die Tabelle aus, welche Sie dynamisch auf Ihrer Webseite anzeigen möchten. Beispiel: Tabelle Leistung

32 Microsoft Frontpage 2000 Schritt 6:
Im nächsten Schritt können Sie die anzuzeigenden Spalten der Tabelle auswählen. Wenn Sie keine Einschränkungen vornehmen, werden alle Spalten angezeigt. Schritt 7: Im nächsten Schritt können Sie das Design der Tabelle auswählen.

33 Microsoft Frontpage 2000 Schritt 8:
Zum Schluß können Sie noch auswählen, wieviel Datensätze Sie auf einer Seite anzeigen möchten. Die folgende Abbildung zeigt das Ergebnis des Datenbank-Assistenten:

34 Microsoft Frontpage 2000 Die folgende Grafik zeigt das Ergebnis des Datenbankzugriffes:

35 Microsoft Frontpage 2000 2) Abfragen mit SQL
Schritt 1 bis 4 ausführen! Schritt 5: Wählen Sie im Dialogfeld Benutzerdefinierte Abfrage / Bearbeiten. Geben Sie Ihre SQL-Anweisung ein. Bestätigen Sie die folgenden Schritte mit Weiter und speichern Sie die Datei ab. Die folgende Darstellung zeigt das Ergebnis der Abfrage:

36 Realisierung im Schulnetz mit Windows 2000
Datenbankzugriff über ODBC und DSN nur möglich wenn die Datenbank direkt im wwwroot-Verzeichnis liegt. DSN kann nur auf dem Server eingerichtet werden. Problem: Schüler kann auf seine Datenbank im Home-Verzeichnis nicht zugreifen. Für den Datenbankzugriff mit Microsoft Frontpage ergibt sich das gleiche Problem. Datenbankzugriff über ADO ermöglicht die individuelle Bearbeitung des Schülers in seinem Home-Verzeichnis.

37 Realisierung im Schulnetz mit Windows 2000
IIS (Internet Information Server) läuft als Dienst Klassenordner (Beispiel: public) markieren, rechte Maustaste, Eigenschaften, Reiter Webfreigabe. Alias-Namen angeben unter welchem der Ordner vom Webserver angesprochen werden soll. Klassenordner / Sicherheitseinstellungen / Jeder / - Lesen / Ausführen - Ordnerinhalt auflisten - Lesen


Herunterladen ppt "Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen"

Ähnliche Präsentationen


Google-Anzeigen