Last Update: 2024 - 05 - 21 |
Kurze EinführungActive Server Pages sind Webdocumente mit eingebetteten Scripten, die bei Aufrufen des Dokuments auf dem Webserver ausgeführt werden. Neben genrellen Vorteilen von serverseitiger Ausführung, wie geringere Netzlast und i.d.R. schnellerer Ausführung haben Active Server Pages auch den Vorteil, daß nur HTML-Code an den Browser gesendet wird und damit die Fähigkeiten und Einstellungen des Browsers in diesem Zusammenhang völlig unerheblich sind. Gegenüber klassichen CGI-Modulen in Perl oder C++ haben Active Server Pages einen wesentlichen Vorteil. Das ISAPI-Modul das die ASPs verarbeitet läuft innerhalb des Webserver-Prozesses,alle ASP-Scripte laufen als Threads innerhalb dieses Prozesses, also muß nicht für jede Anfrage ein separater Prozess (bei Perl zusätzlich der Interpreter) gestartet werden. Sowohl VBScript, als auch Jscript (Microsofts Javascript-Derivat) können in Active Server Pages als Sprache verwendet werden. Es können auch zusätzlich Module für weitere Scriptsprachen wie z.B. Perl auf dem Webserver installiert werden. Die VBScript (bzw. Jscript) Befehle können direkt in den HTML-Code eingefügt werden und werden mit <% und %> eingeschlossen. Neben all diesen Vorteilen haben ASPs natürlich einen gravierenden Nachteil. Sie laufen derzeit nur auf dem Microsoft Internet Information Server (IIS) und auf dessen kleinem Bruder, dem Personal Webserver (PWS, ab Version 4.0). Inzwischen gibt es auch ASP Module für den Apache Webserver. Da dort ständig neue Entwicklungen vorgestelllt werden, informiert euch dazu am besten direkt auf der Website der Apache Software Foundation. Zurück zur Übersicht Verbindung zu einer MS-Access DatenbankÜber eine ODBC-DatenquelleFür diese Methode muss auf dem Server eine ODBC-Datenquelle angelegt werden, die auf die Access Datenbank zeigt. Dafür emfiehlt es sich eine System-DSN zu verwenden, da diese allen Usern auf dem Rechner zur Verfügung steht und besonders bei vielen gleichzeitigen Zugriffen wesemtlich schneller ist als eine File-DSN. <%@ LANGUAGE = VBScript %> Mit einer DSN-losen VerbindungDieser Weg ist, entgegen den Performance-Tuning-Tips aus dem MSDN, schneller als eine System-DSN, da der Treiber direkt angesprochen wird und damit Registry-Zugriffe entfallen. Dieser Geschwindigkeitsvorteil macht sich allerdings erst bei 10 oder mehr gleichzeitigen Zugriffen bemerkbar.
<%@ LANGUAGE = VBScript %> Da der physikalische Pfad zur DB auf den Servern von Webhostern selten bekannt ist und u.U. ohne Vorwarnung geändert wird, ist es sinvoller statt einer absoluten Pfadangabe in der ASP die MapPath Methode des Server-Objektes zu verwenden. Der Methode wird ein virtueller Pfad übergeben. dbPfad = Server.MapPath("/zur/Datenbank.mdb") Achtung, MapPath unterstützt keine relativen Pfadangaben. Zurück zur Übersicht Mit Daten in einer DB arbeitenMit SQL-StatementsÜber das geöffnete Connection-Objekt kann man SQL-Statements ausführen lassen. Für eine Aktualisierungs- oder Anfügeabfrage reicht es aus mit der Execute-Methode das Statement ausführen zu lassen. <% Wenn man Daten aus der DB anzeigen oder weiterverarbeiten möchte, muss man das Ergebnis einer (Recordset)-Variablen zuweisen. <% Dim rs Set rs = dbConnection.Execute(Select-Statement) %> Neue Daten an ein Recordset anfügen oder bestehende editierenWenn man ein ADO-Recordset erstellt, ist es per Default readonly, das heißt die Daten können nicht verändert werden und in der Datenbank aktualisiert werden. In dem folgenden Beispiel wird ein aktualisierbares Recordset rs geöffnet und ein neuer Datensatz angelegt. Set rs = Server.CreateObject("ADODB.Recordset") rs.Open SQLStatement,dbConnection,adOpenDynamic,adLockOptimistic rs.Addnew rs("einZahlenFeld") = 9999 rs("einTextFeld") = "Neuer Eintrag" rs.update Um bestehende Daten zu editieren, einfach das rs.AddNew weglassen. Ein rs.Edit wie bei DAO-Recordsets ist nicht erforderlich. Die ADO Konstanten (im Bsp.: adOpenDynamic und adLockOptimistic) kann man nur verwenden, wenn man die Konstantendeklarationsdatei "adovbs.inc" über <!--#include file="adovbs.inc"--> am Anfang des ASP-Scriptes einbindet. Zurück zur Übersicht Autowert eines neuen Datensatzes ermittelnOft benötigt man den Wert eines Autowert-Feldes eines Datensatzes, den man gerade neu angelegt hat. Wenn man den neuen Datensatz in ein Recordset eingefügt hat, kann man diesen Wert mit Hilfe der Bookmark-Eigenschaft des Recordsets ermitteln. Der neue Datensatz wird mit Update gespeichert und nach einem Requery des Recordsets wird mit Hilfe des Bookmarks zu dem eingefügten Datensatz gesprungen und der neue Autowert ausgelesen. Wichtig ist hierfür, dass man die CursorLocation auf Client setzt, da sonst das Bookmarken nicht funktioniert. Dim vBookmark Dim rs Dim neuerAutoWert Set rs = Server.CreateObject("ADODB.Recordset") rs.CursorLocation = adUseClient rs.Open einSQLSelectStatement, eineADOConnection, adOpenDynamic, adLockOptimistic rs.addnew rs("einTextfeld") = "Irgendein Text" rs("einDatumsfeld") = Now vBookmark = rs.Bookmark rs.Update rs.requery rs.bookmark = vBookmark neuerAutoWert = rs("autoWertFeld") rs.Close Zurück zur Übersicht
Ich werde Deine Email-Addresse niemals weitergeben. Du kannst den Newsletter jederzeit abbestellen. © 1999 - 2024 by Philipp Stiefel - Datenschutzerklärung |