Dynamischer Zugriff auf eine Datenbank per Browser

Ich besitze eine Access-Datenbank, die ich auf eine CD brennen will. Nun möchte ich mit Hilfe eines Browsers und HTML auf diese Datenbank zugreifen. Ich kenne aber nur dynamische Datenbankschnittstellen, die den Einsatz eines Internet-Servers erfordern. Läßt sich der Zugriff auch ohne Internet-Server programmieren?

Wenn Sie auf den Einsatz des Internet Information Servers (IIS) verzichten wollen, geht es Ihnen vermutlich darum, daß die Anwendung nicht nur unter NT, sondern auch unter Windows 95/98 laufen soll. Das ist durchaus möglich! Sie kommen zwar um dynamische Schnittstellen wie IDC oder ASP nicht herum, aber Sie können Windows 95/98 mit dem Microsoft Personal Web Server ausrüsten, der Ihnen den dynamischen Zugriff auf Ihre Access-Datenbank erlaubt.

Die Voraussetzung für den HTML-Zugriff auf Ihre Datenbank ist eine dynamische Schnittstelle wie der Internet Database Connector (IDC) oder Active Server Pages (ASP). Für diese Schnittstellen bietet Access einen Assistenten an, den Sie mit dem Befehl »Datei | Im HTML-Format speichern« starten.

Damit die so programmierte Anwendung von einer CD aus unter Windows 95 oder 98 funktioniert, muß der Rechner jedoch mit dem Personal Web Server für Windows 95 ausgerüstet sein. Sie finden den Microsoft Personal Web Server (mspws40.exe und pwsse cup.exe) im Lieferumfang von Frontpage.

Die einfachste Möglichkeit, Ihr Vorhaben zu realisieren, ist die IDC-Schnittstelle, die sich auf ein Minimum an Programmierung beschränkt: Makros, ODBC und SQL-Befehle. IDC wiederum gehört zum Lieferumfang des Personal Web Servers und des Internet Information Servers.

Ganz ähnlich wie Sie mit Winword Serienbriefe produzieren, mischt der IDC-Mechanismus eine HTML-Vorlage (Zentraldokument) einfach mit den Daten eines SQL-Befehls (Quelle). Das Durchsuchen einer Datenbank läuft nach folgendem Schema ab:


> Nach der Eingabe der Suchbegriffe übergibt ein Klick auf die Schaltfläche »Suchen« die Suchparameter an eine IDC-Datei.


> In der IDC-Datei befindet sich ein SQL-Befehl, der die Datenbank via ODBC durchsucht und Makrobefehle ausführen kann.


> Das jeweilige Ergebnis des SQL-Befehls mischt der IDC-Mechanismus in eine HTML-Vorlage (HTX-Datei).


> Anschließend übergibt IDC die fertige HTML-Seite an den Web-Server.


Der Vorteil gegenüber CGI und ASP ist die Integration des Datenzugriffs in reinen HTML-Code; deshalb erfordert der IDC deutlich weniger Programmierkenntnisse. Insgesamt sind drei Dateien am Datenzugriff beteiligt: eine HTML-Seite für das Suchformular, eine IDC-Datei für den SQL-Befehl und eine HTX-Datei für die Formatierung des Suchergebnisses.

Der erste Schritt ist die Einrichtung der Datenbank für den Web-Server. Da der Web-Server ein Systemdienst ist, braucht er eine ODBC-Systemdatenquelle, die Sie über die Systemsteuerung einrichten. Wenn die ODBC-Datenquelle eingerichtet ist, stellt sich die Frage, wie die Daten durchsucht werden. Das Beispiel aus dem Listing ACCSHTML sucht Artikel der Nordwind-Datenbank anhand ihres Namens. Dazu ist ein HTML-Formular für die Eingabe des Suchbegriffs erforderlich. Das Suchformular führt die Datei PROGRAMM.IDC aus und übergibt den Suchbegriff im Feld »Suchwort«. Die IDC-Datei enthält Angaben über die ODBC-Datenquelle, den auszuführenden SQL-Befehl und die HTML-Vorlage (HTX-Datei), in der die Daten dargestellt werden:



Datasource: Nordwind-ODBC

Template: ARTIKEL.HTX

SQLStatement:

+ SELECT
Artikelname,Liefereinheit,Einzelpreis

+ FROM Artikel

+ WHERE Artikelnameô%Suchwort%ö


Nachdem der SQL-Befehl die Daten zusammengestellt hat, mischt IDC das Suchergebnis in die HTML-Vorlage, die HTX-Datei (Listing ACCHTX). Sie unterscheidet sich von einer HTML-Datei nur durch zwei Befehle und Platzhalter für die Ausgabe der Daten.Die Ausgabe der Felder findet zwischen den Befehlen


<%BeginDetail%>


und


<%EndDetail%>


statt. Dieser Bereich ist eine Art Programmschleife, die – analog zum Detailbereich eines Berichtes – für jeden Datensatz wiederholt dargestellt wird.



Listing: accshtx

<HTML>

<HEAD>

<TITLE>Artikel.htx</TITLE>

</HEAD>

<BODY>

<CENTER>

<H1>Suchergebnis</H1>

</CENTER>

<TABLE BORDER = 1>

<%BEGINDETAIL%>

<TR>

<TD><B><%Artikelname%></B></TD>

<TD><%Liefereinheit%></TD>

<TD><%Einzelpreis%></TD>

</TR>

<%ENDDETAIL%>

</TABLE>

</BODY>

</HTML>

Listing: accshtml

<HTML>

<HEAD>

<TITLE>Suchseite.htm</TITLE>

</HEAD>

</BODY>

<CENTER>

<P>Geben Sie eine Produktkategorie
ein:</P>

<FROM
ACTION=öPROGRAMM.IDCöMETHOD=öPOSTö>

<INPUT NAME=öSuchwortöSIZE=20
VALUE=öSuchbegriffö>

<INPUT TYPE=öSUBMITöVALUE=öSuchwortö>

</FROM>

</CENTER>

</BODY>