Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

ADO und ASP - Datenbanken einmal näher betrachtet

Geschrieben von: Christian Koller
Kategorie: Datenbank

This printed page brought to you by AlphaSierraPapa

Kaum eine anspruchsvolle Website die heute nicht mit einer Datenbank arbeitet. Ob Veranstaltungskalender, Produktkatalog, Mitgliederdatenbank, Gästebuch, personalisierte Dienste oder allgemein veränderliche Daten - all dies läßt sich mit Hilfe der Kombination ASP Skripts auf der Webserver Seite und einer Datenbank auf der anderen Seite verwirklichen.

Betrachten wir einmal das Bindeglied zwischen diesen beiden Technologien näher. Von ASP aus greift man am einfachsten über ADO (ActiveX Data Objects) und das zugehörige ADODB Objekt auf Datenquellen zu. Die Verbindung zwischen ADO (und der darunterliegenden OLE DB, Object Linking and Embedding Database) und der Datenbank wird meist über ODBC (Open DataBase Connectivity) hergestellt, das Applikationen einen weitgehend einheitlichen Zugriff auf verschiedenste Datenquellen erlaubt. Aber alles schön der Reihe nach.

ADO stellt die Objekte zur Verfügung mit deren Hilfe ein ASP Skript eine Verbindung zur Datenbank aufbauen und Daten auf vielfältigste Weise manipulieren kann. Die wichtigsten ADO Objekte sind:

Normalerweise findet man mit den Objekten Connection, Recordset und Field das Auslangen.

Wie sieht nun eine einfache Datenbankabfrage aus? Das folgende ASP Skript öffnet eine Verbindung zur Nordwind Datenbank, die mit Microsoft Access 97/2000 und SQL Server 7.0 (deutsche Versionen) ausgeliefert wird. Weiters liest es die Datensätze der Tabelle Artikel aus, die in die Kategorie Meeresfrüchte fallen, um die Werte der Spalten Artikel-Nr und Artikelname schließlich im Browser anzuzeigen.

<%
Response.Expires=0
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"

Response.Write "Abfrageergebnis:<br>" & vbcrlf
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DSN=NW;USR=sa;PWD="
strSQL = "SELECT Artikel.[Artikel-Nr], Artikel.Artikelname "
strSQL = strSQL & "FROM Artikel INNER JOIN Kategorien "
strSQL = strSQL & "ON Artikel.[Kategorie-Nr]=Kategorien.[Kategorie-Nr] "
strSQL = strSQL & "WHERE Kategorien.Kategoriename = 'Meeresfrüchte' "

Set rs = conn.Execute(strSQL)

Do While Not(rs.EOF)
	Response.Write "" & rs("Artikel-Nr") & " : "
	Response.Write "" & rs("Artikelname") & "<BR>" & vbcrlf
	rs.MoveNext
Loop

rs.Close
conn.Close
%>
In kurzen Worten erklärt speichert das Skript eine Instanz des Connection Objektes in der Variable conn, um dann die Datenbankverbindung mit dem Befehl conn.Open herzustellen.

Der Parameter für conn.Open enthält den Datenquellennamen, im englischen Original DSN (Data Source Name) genannt, der im ODBC Datenquellenadministrator korrekt definiert sein muß.

Danach wird das SQL (Structured Query Language) Statement, das die Datenbankabfrage definiert, in der Variable strSQL gespeichert. Die SQL Abfrage sieht im Klartext wie folgt aus.

SELECT Artikel.[Artikel-Nr], Artikel.Artikelname 
	FROM Artikel INNER JOIN Kategorien
	ON Artikel.[Kategorie-Nr]=Kategorien.[Kategorie-Nr]
	WHERE Kategorien.Kategoriename = 'Meeresfrüchte' 

Das Ergebnis dieser SQL Abfrage wird im Recordset mit dem Namen rs von ADO bereitgestellt, die Werte der Felder ausgelesen und zum Browser geschickt.

Zu guter letzt macht das Skript noch Ordnung und schließt das Recordset und die Connection um deren Ressourcen wieder zur Verfügung zu stellen.

Was schon anhand dieses kleinen Beispieles ersichtlich ist: Um Daten aus einer Datenbank in einem ASP Skript verwenden zu können, ist es durchaus hilfreich, wenn man ein gesundes Wissen über die Grundlagen der Datenbankprogrammierung und der Sprache SQL hat.

ADO bietet darüber hinaus noch einige andere Möglichkeiten um mit wenig Aufwand Daten zu manipulieren. Die Verwendung hängt wie so oft vom Einsatzgebiet und persönlichen Vorlieben ab.

This printed page brought to you by AlphaSierraPapa

Verwandte Artikel

ADO Konstanten und die Datei Adovbs.inc
http:/www.aspheute.com/artikel/20000518.htm
Das SQL Join Statement
http:/www.aspheute.com/artikel/20001023.htm
Die SQL ORDER BY Clause
http:/www.aspheute.com/artikel/20001201.htm
Einfügen eines Datensatzes mit dem INSERT Statement
http:/www.aspheute.com/artikel/20001107.htm
Einsatz des Recordset Objektes als Multifunktionaler Datenspeicher
http:/www.aspheute.com/artikel/20000516.htm
Highspeed-Abfragen einer SQL Server Datenbank
http:/www.aspheute.com/artikel/20001013.htm
Intelligente Meta-Tags
http:/www.aspheute.com/artikel/20010620.htm
ODBC und ASP - Eine DSN zur Verwendung mit ASP definieren
http:/www.aspheute.com/artikel/19990826.htm
Universal Data Links mit ASP verwenden
http:/www.aspheute.com/artikel/20010515.htm
Update und UpdateBatch zum Einfügen von Datensätzen in Datenbanken
http:/www.aspheute.com/artikel/20010213.htm
Uploaden einer beliebigen Datei in eine Datenbank
http:/www.aspheute.com/artikel/20001030.htm
Zugriff auf autom. generierte ID beim Einfügen eines Datensatzes
http:/www.aspheute.com/artikel/20000606.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.