Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) Web Adressdatenbank mit ASP 1 Einleitung 1.1 Vorwort Auf den nächsten paar Seiten will ich eine kleine Anleitung geben, wie man per ASP(Active Server Pages) auf eine MS Access Datenbank zugreifen kann. Am Beispiel einer kleinen Adressdatenbank (bestehend aus einer Tabelle Adressen), auf die per ASP zugegriffen wird, soll man die wesentlichen Schritte zur Realisierung einer solchen Anwendung nachvollziehen können. 1.2 Systemvorraussetzungen Wenn man das beschriebene Beispiel selbst Zuhause ausprobieren will, braucht man folgende Software Komponenten: - - 1.3 MS Windows98 oder WindowsNT MS Access (Datenbank) MS Personal Web Server auf Win98 oder IIS(Internet Information Server) auf WinNT-Server ADO (ActiveX Data Objects) Einen Web-Browser (z.B Internet Explorer oder Netscape) Architektur Die folgende Darstellung soll uns einen Überblick verschaffen, wie so eine Datenbankabfrage zustande kommen soll, und welche Schnittstellen, APIs und Treiber benötigt werden. Zunächst wird eine Datenbank erstellt, auf die mit einem ODBC (Open Database Connectivity) Treiber zugegriffen wird. Die eigentliche Kommunikationssprache ist Dabei SQL (Structured Query Language). Mit der ADO Bibliothek stehen uns Objekte zur Verfügung, die uns einen effizienten und vor allem einen komfortablen DB-Zugriff erlauben. Dabei verpackt die ADO eigentlich nur die API des ODBC Treibers, und stellt für jemanden, der (nur) Vb Skript kann, eine bedienbare Schnittstelle zur Datenbank dar. Auch hier werden über das Command Objekt SQL Satements an die Datenbank gereicht. Das eigentliche Programm liegt in Form eines ASP Skripts auf dem Web-Server und wird Serverseitig von einer Scripting Engine (VB Script Interpreter) ausgeführt. Der Client (anfragende Browser) kommuniziert mit dem Web Server über http und bekommt lediglich eine HTML Seite zugesendet. Seite 1 von 8 Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) Die Abbildung zeigt die Client/Server Architektur für eine dynamische Web Seite. Dabei ist der ASP-fähige IIS(Internet Information Server) oder der Personal Web Server für die Serverfunktionalität zuständig, und der Web Browser dient als Client. 1.4 Installationshinweise Für Windows 98/ME Personal Web Server Den Personal Web Server findet man entweder auf einer CD die auch Frontpage 2000 enthält oder bei der Installation des MS Developer Studios 6.0 Bei Server Setups einfach das NT Option Pack für Windows 9x auswählen ! Seite 2 von 8 Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) Bei Data Access Components findet man die ADO. Hier findet man auch die ADO-Bibliothek. Für Windows NT Für Windows NT gibt es das NT-Option Pack mit dem IIS(Internet Information Server). Die ADO wird entweder gleich mitinstalliert, oder man sucht sie halt im Internet. Dort gibt’s zum Download der ActiveX Dll auch eine Hilfe Datei ADO210.chm, also eine kompilierte HTML Hilfe Datei. Web-Browser Als „Client“ kann im Prinzip jeder beliebige Browser verwendet werden. Seite 3 von 8 Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) 2. Implementation 2.2 Erstellen einer DB mit MS Access MS Access ist Teil des Office Pakets von Microsoft, und kann z.B. von einer Office Cd Installiert werden. Ich hab Access verwendet, weil das die meisten Windows User schon auf ihrem Rechner haben, und vielleicht damit schon mal eine Datenbank erstellt haben. Man kannn natürlich an dieser Stelle auch mit anderen ODBC-fähigen Datenbanken, wie z.B. Oracle,Sybase,Paradox,Ingres arbeiten. Die Adressdatenbank: Wir wollen nun mit MSAccess eine Adressdatenbank anlegen, die geneau eine Tabelle „Adressen“ besitzt. Dazu öffnet man MS Access, und erstellt eine leere Datenbank (natürlich kann man auch den Assistenten verwenden). Bei der Aufforderung zur Erstellung, gibt man der DB ihren Namen: Weiter geht’s dem Erstellen einer Tabelle: Mit einem Doppelklick erscheint die leere Tabelle in der Entwurfsansicht. Seite 4 von 8 Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) Idiotensicher gestaltet sich auch hier die Definition der Felder und deren Datentypen. Da jeder Datensatz einer Tabelle eindeutig sein sollte, kann man mit der Erstellung eine ID Feldes des Datentyps AutoWert einen Primärschlüssel erzeugen. Unterlässt man dies, so wird man spätestens bei dem Versuch die Tabelle abzuspeichern darauf hingewiesen. Für meine Anwendung hab ich daraufhin einen „primary key“ erzeugt, um für eventuelle Erweiterung der DB-Anwendung schon mal vorgesorgt zu haben. Beim Speicher werden alle Informationen über die DB in einem File mit der Endung „mdb“ abgelegt. Nach dem Speichern der DB samt ihrer Tabelle „Adressen“ lohnt es sich schon mal vorab einen ersten Datensatz einzutragen, da dieser beim Testen der ADO/ODBC Verbindung zur DB sehr hilfreich sein könnte. Dazu kann man z.B. die Datenblatt Ansicht von Access verwenden. So Einfach ist Das ! Seite 5 von 8 Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) 2.2 Definition einer ODBC Datenquelle Nachdem wir eine so schöne Adressdatenbank erstellt haben, beschäftigen wir uns mit der Frage, wie man nun auf die Tabellendaten Zugreifen kann. In unserem Beispiel kuken wir uns nochmals die Architektur der gesamten Anwendung an. Hier finden wir eine die Komponente ODBC ( Open Database Connectivity). Diese API (Aplication Program Interface) wurde unter anderem von Microsoft initiiert und erlaubt einen einheitlichen Zugriff auf Datenbanken verschiedener Hersteller. Um den ODBC-Treiber für eine Access Datenbank nutzen zu können definiert man einen sog. DSN (Data Source Name). Dies geschieht bei Win98 und WinNT in der Systemsteuerung unter ODBC Datenquellen: Man geht unter Benutzer DSN auf Hinzufügen und sucht dann den entsprechenden Treiber für die erstellte Datenbank aus. Hat man unter 2.1 mit einem andern DBMS (DataBas Management System) gearbeitet so muss man halt jetzt den entsprechenden Treiber für die DB suchen. !bei Windows NT/IIS musste man eine Sytem DSN erstellen ! Im letzten Schritt Definiert man den eigentlichen DSN (Data Source Name) Seite 6 von 8 Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) wenn man sich mit Internas von ODBC oder der mdb-Datenbank besser auskennt, lassen sich noch diverse Einstellungen unter Weitere... machen. Man kann dort unter anderm eine default Athorisierung (Benutzer/Passwort) angeben. Ansonsten wählt man einfach mit dem Button Auswählen auf File Ebene das entsprechende mdb-File („AdressDB.mdb“) das mit Access erstellt wurde aus. 2.3 Erstellen der ASP Seite Für den Einstieg in dieses Kapitel lohnt es sich, nochmals einen Blick auf die Architektur unter 1.3 zu werfen. Asp(Active Server Pages) werden also von einem Interpreter auf Serverseite ausgeführt, und liefern nur reinen HTML Code an den Browser. Für die Programmierung von ASP-Seiten kann man z.B. den Editor von Windows verwenden, oder den Inter-Developer von MS mit Syntax Highlightning und diversen anderen ganz brauchbaren Features für asp Programmierung. Aufbau einer ASP Seite: ASP – Code, also Visual Basic Skriptcode wird in einer ASP Seite zwischen <% ... %> Tags geschrieben, und enthält VBS Kommandos. Falls der Asp Filter des Web Servers also so ein Tag findet, führt er den Code mit einer Scripting Engine auf Serverseite aus, und schickt reines Html an den Client. Zugriff auf die DB mit ADO Wie schon erwähnt kann man mit ADO (ActiveX Data Objects) , einer Objektbibliothek von Microsoft, bequem auf die Datenbank zugreifen. Früher gab es da auch noch andere Produkte wie z.B. DAO(Data Access Objects) oder RDO(Remote Data Objects), aber in diesem Beispiel wird die ADO benutzt (lässt sich viel schöner bedienen). Der erste Schritt beim Datenbankzugriff ist, eine „Verbindung“ aufzubauen. Dafür stellt die Ado das Connection Objekt zur Verfügung, das wie folgt instanziiert und geöffnet wird wird: Set conn = Server.CreateObject("ADODB.Connection") conn.open "AdressDB","Administrator","" Dabei steht AdressDB hier für den DSN (Data Source Name) und Administrator für den Benutzer. Seite 7 von 8 Web Adressdatenbank mit ASP By Martin Bertele (T) 2000 Internet 2 (Prof. Usadel) für die Anfrage an eine DB gibt es mit ADO verschiedene Möglichkeiten. Man könnte z.B die Methode „Execute“ des Connection Objekts verwenden, und würde als Rückgabewert auch einen Recordset erhalten. Ich habe erst ein Recordset Objekt instaziiert und dieses dann mit der Methode Open verwendet: sql = "SELECT * FROM [Adressen]" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sql, conn, 3, 3 Zur Manipulation/Navigation/Referenzierung der Datensätze verwendet man folgende Methoden/Eigenschaften des Recordsets: Navigation: rs.MoveFirst rs.MoveLast rs.MovePrevious rs.MoveNext Löschen rs.Delete Einfügen rs.AddNew Field rs("Telefon") = … So.. jetzt sind zumindest mal die wichtigsten Grundlagen für ADO Programmierung abgehandelt, und wir können uns an die Implementation der Anwendung Kümmern. 2.4 Der ASP Code - Die Ado Objectinstanzen (mit Speicherung der Connection und des Recordsets in einer Session Variablen) -Case Verteiler (Programmlogik) Ausgabe der Adressdaten in Html Html Formular zur Bedienung des Programms Zusätzliche ASP Datei New (Formular zur Eingabe eines neuen Datensatzes) Seite 8 von 8