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

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

ADO und ASP - Datenbanken einmal näher betrachtet

Geschrieben von: Christian Koller
Kategorie: Datenbank

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:

  • Connection (Datenbankverbindung) - Repräsentiert die Verbindung zur Datenquelle
  • Recordset (Sammlung von Datensätzen) - Besteht aus den Datensätzen die aus einer Datenbankabfrage stammen und dem zugehörigen Cursor, der auf den aktuellen Datensatz zeigt.
  • Field (Datenfeld) - Enthält Daten einer Datenbankspalte und Informationen über diese Daten wie Datentyp, Datenlänge und Ähnliches. Das Recordset Objekt stellt dabei die Fields Collection zur Verfügung, die alle Field Objekte eines Datensatzes beinhaltet.
  • Property (Eigenschaft) - Erlaubt den Zugriff auf dynamische Informationen eines ADO Objektes die von der Datenquelle oder der Datenanbindung (wie ODBC) zur Verfügung gestellt werden.
  • Error (Fehler) - Enthält ausführliche Fehlerinformationen bei Datenbankzugriffen. Auf alle Fehler eines Datenbankzugriffes kann durch die Errors Collection zugegriffen werden.
  • Command (Befehl) - Erlaubt es einzelne Datenbankabfragen zu definieren, so daß ein mehrmaliger Einsatz mit verschiedenen Parametern rascher durchgeführt werden kann .
  • Parameter (Parameter) - Stellt einen einzelnen Parameter (Argument) eines Command Objektes für eine parametrisierte Abfrage oder einen Zugriff auf eine "Gespeicherte Datenbankprozedur" dar.
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.

Verwandte Artikel

ADO Konstanten und die Datei Adovbs.inc
Das SQL Join Statement
Die SQL ORDER BY Clause
Einfügen eines Datensatzes mit dem INSERT Statement
Einsatz des Recordset Objektes als Multifunktionaler Datenspeicher
Highspeed-Abfragen einer SQL Server Datenbank
Intelligente Meta-Tags
ODBC und ASP - Eine DSN zur Verwendung mit ASP definieren
Universal Data Links mit ASP verwenden
Update und UpdateBatch zum Einfügen von Datensätzen in Datenbanken
Uploaden einer beliebigen Datei in eine Datenbank
Zugriff auf autom. generierte ID beim Einfügen eines Datensatzes

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©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.