Diese Seiten sind Teil von Bachsau’s Archiv.
Die hier beschriebenen Praktiken entsprechen nicht mehr dem Stand der Technik!
Bitte nutzen Sie für aktuelle Projekte das fortlaufend aktualisierte SELFHTML-Wiki.

SELFHTML

Datenanbindung (nur Microsoft)

Informationsseite

nach unten Allgemeines zur Datenanbindung
nach unten Beispiel: Datei dynamisch in Tabelle einbinden
nach unten Beispiel: Daten durchsuchbar machen
nach unten HTML-Elemente für die Anzeige von externen Daten
nach unten Datenmodell: Tabular Data Control (TDC)
nach unten Datenmodell: Remote Data Service (RDS)
nach unten Datenmodell: JDBC DataSource Applet
nach unten Datenmodell: XML Data Source
nach unten Datenmodell: MSHTML Data Source

 nach unten 

MS JScriptMS IE 4.0 Allgemeines zur Datenanbindung

Der Internet Explorer ab Version 4.x erlaubt es, in kontrollierter Form Daten aus einer externen Datenquelle zu holen und in HTML-Elementen dynamisch anzuzeigen. So ist beispielsweise eine Tabelle denkbar, in der sich der Anwender bei jedem Klick auf einen entsprechenden Button die Bundesliga-Endtabellen der Spielsaisons von 1960 bis heute anzeigen lassen kann. Bei jedem Klick werden aus einer externen Datei eine Reihe von Daten ausgelesen und dynamisch in die Anzeigetabelle übernommen.

Microsoft hat das Konzept der Datenanbindung sehr flexibel ausgelegt. Es gibt diverse Möglichkeiten, auf externe Datenquellen zuzugreifen. Der Zugriff auf eine einfache Textdatei ist nur eine davon. Es besteht ebenso die Möglichkeit, etwa über die Datenbankabfragesprache SQL auf eine Datenbank zuzugreifen, die SQL-Befehle verarbeiten kann. Für die verschiedenen Möglichkeiten der Datenanbindung gibt es verschiedene Datenmodelle. Für jedes der Datenmodelle gibt es ein bestimmtes ActiveX-Control oder ein Java-Applet, das Sie in Ihrer HTML-Datei ansprechen müssen, um die Datenanbindung damit zu realisieren. Die Datenmodelle und deren Einbindung in HTML werden auf dieser Seite vorgestellt.

Die Vorteile der Datenanbindung liegen auf der Hand: Daten können mit einer dafür geeigneten Anwendung gepflegt und gespeichert werden. Eine HTML-Datei kann auf immer aktuelle Daten zugreifen, ohne selbst geändert werden zu müssen. Für das "Holen" der Daten gibt es kein vorgeschriebenes Protokoll. Die Datenanbindung funktioniert also auf allen Umgebungen, ob auf einem WWW-Server, lokal auf einer PC-Festplatte oder auf einer CD-ROM (zumindest auf das einfachste Datenmodell trifft dies zu). Es ist kein zusätzliches CGI-Script erforderlich, das als Vermittler zwischen HTML-Datei und Datenbestand für jede Interaktion zwischen Anwender und Datenbank immer wieder aufgerufen werden muss. Das Know How hat der Browser, und die Steuerung der Datenanbindung wird direkt in der HTML-Datei notiert. Durch dynamisches Austauschen der Inhalte von HTML-Elementen, in denen die Daten angezeigt werden, ist kein neuer Aufbau der WWW-Seite erforderlich.

Aus heutiger Sicht muss das Modell der client-seitigen Datenanbindung, das Microsoft mit dem Internet Explorer 4.0 eingeführt hat, jedoch kritisch betrachtet werden. Der Grund ist einerseits, dass es auf extrem proprietären Konzepten beruht, vor allem was die Einbindung der allgemein unbeliebten ActiveX-Controls betrifft. Und andererseits haben sich Web-Server mittlerweile so stark durchgesetzt, dass es in in den meisten Fällen - auch lokal - sinnvoller ist, server-seitige Kapitel CGI-Scripts zum Handling der Datenverarbeitung einzusetzen.

Hinweis:

Die Erläuterungen zu den Datenmodellen weiter unten auf dieser Seite sind zum Teil sehr technisch. Das ist leider nicht zu ändern, da die Materie ziemlich komplex ist. Die Erläuterungen zu den Datenmodellen richten sich auch nur an Spezialisten, die wissen, was mit den entsprechenden Begriffen anzufangen ist.

nach obennach unten

MS JScriptMS IE 4.0 Beispiel: Datei dynamisch in Tabelle einbinden

Die hier beschriebene Vorgehensweise erläutert, wie Sie in einer Tabelle einzelne Datensätze aus einer externen Textdatei anzeigen können. Dabei wird das nach unten Datenmodell: Tabular Data Control (TDC) verwendet. Mit Hilfe von Buttons kann der Anwender den nächsten oder vorhergehenden Datensatz in die Tabelle laden.

Beispiel Teil 1 - externe Datei adressen.txt mit Daten:

Name|Vorname|Strasse|PLZ|Ort|Tel|EMail
Berger|Hans|Pfisterstr.11|38487|Grubenhausen|04987-4445631|berger@example.org
Heidenfroh|Martina|Mittelweg 123|43985|Hatzenau|04583-2398474|mh@example.org
Rauhbein|Eberhard|Traumstr.13|56097|Höllenbachhausen|068347-582374|-
Truthahn|Gerlinde|Aufplatz 1|93722|Sündenstadt|032987-385750|gerlinde@example.org

Erläuterung:

Die externe Datei ist in diesem Beispiel eine einfache Textdatei, z.B. eine Datei mit dem Namen adressen.txt. Die Datei ist so aufgebaut, dass jede Zeile einen Datensatz darstellt. Die einzelnen Felder eines Datensatzes werden in diesem Beispiel durch das Zeichen "|" getrennt. Es könnte auch ein anderes Zeichen sein. Das Zeichen "|" wurde hier gewählt, weil es sehr selten ist und in den Daten selbst nicht vorkommt. In der ersten Zeile der Datei stehen keine Daten, sondern Feldnamen. Der dritte Feldname lautet beispielsweise Strasse. In den eigentlichen Datenzeilen darunter stehen dann in entsprechender Reihenfolge die Daten. So hat das dritte Feld der ersten Datenzeile den Wert Pfisterstr.11. Dies ist also ein Wert für den in der ersten Zeile an dritter Stelle vergebenen Feldnamen Strasse.

Textdateien dieser Art sind nicht besonders komfortabel, wenn man sie selbst in einem Texteditor bearbeiten will. Doch solche Textdateien lassen sich mit fast allen Tabellenkalkulations- und Datenbankprogrammen erzeugen. Meist ist dafür der Datentyp "kommabegrenzt" ("comma delimited") mit der Standard-Dateiendung .csv vorgesehen. Bessere Programme erlauben es dabei auch, ein selbst definierbares Feldbegrenzerzeichen zu vergeben.

Beispiel Teil 2 - HTML-Datei mit Datenzugriff:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title></head>
<body>
<object id="Adressen" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
 <param name="DataURL" value="adressen.txt">
 <param name="UseHeader" value="true">
 <param name="FieldDelim" value="|">
</object>
<form action="">
<table id="Anzeigetabelle" datasrc="#Adressen" datapagesize="1" width="100%" border="1">
<colgroup><col width="200"><col></colgroup>
<tr>
<td bgcolor="#EEEEEE"><b>Adressen</b></td>
<td bgcolor="#EEEEEE" align="right">
<input type="button" value=" &lt; " onclick="document.all.Anzeigetabelle.previousPage();">
<input type="button" value=" &gt; " onclick="document.all.Anzeigetabelle.nextPage();">
</td>
</tr><tr>
<td bgcolor="#EEEEEE" valign="top"><b>Name:</b></td>
<td bgcolor="#FFFFE0" valign="top"><span datafld="Name"></span></td>
</tr><tr>
<td bgcolor="#EEEEEE" valign="top"><b>Vorname:</b></td>
<td bgcolor="#FFFFE0" valign="top"><span datafld="Vorname"></span></td>
</tr><tr>
<td bgcolor="#EEEEEE" valign="top"><b>Straße:</b></td>
<td bgcolor="#FFFFE0" valign="top"><span datafld="Strasse"></span></td>
</tr><tr>
<td bgcolor="#EEEEEE" valign="top"><b>Postleitzahl:</b></td>
<td bgcolor="#FFFFE0" valign="top"><span datafld="PLZ"></span></td>
</tr><tr>
<td bgcolor="#EEEEEE" valign="top"><b>Wohnort:</b></td>
<td bgcolor="#FFFFE0" valign="top"><span datafld="Ort"></span></td>
</tr><tr>
<td bgcolor="#EEEEEE" valign="top"><b>Telefon:</b></td>
<td bgcolor="#FFFFE0" valign="top"><span datafld="Tel"></span></td>
</tr><tr>
<td bgcolor="#EEEEEE" valign="top"><b>E-Mail:</b></td>
<td bgcolor="#FFFFE0" valign="top"><span datafld="EMail"></span></td>
</tr></table></form>
</body>
</html>

Erläuterung:

Um eine externe Datenquelle in einer HTML-Datei nutzen zu können, müssen Sie zunächst die Quelle und diverse Angaben zu deren Aufbau notieren. Dazu brauchen Sie das <object>-Tag. In dem einleitenden <object>-Tag sind zwei Attribute erforderlich: Mit dem id-Attribut vergeben Sie einen Namen, unter dem Sie später auf die Daten zugreifen können. Der Name sollte passend sein, im obigen Beispiel etwa "Adressen". Als zweiten Parameter müssen Sie das ActiveX-Control referenzieren, dass den gesamten Zugriff auf die externe Datei abwickelt. Bei einfachen Textdateien mit zeilenweisen Datensätzen müssen Sie dabei immer die Angabe classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" notieren. Das ActiveX-Control mit dieser Identifikationsnummer ist im Lieferumfang des Internet Explorers ab Version 4.x enthalten - Sie brauchen sich um nichts weiter zu kümmern. Genau dabei liegt allerdings der Knackpunkt des gesamten Konzepts: ohne solche ActiveX-Controls läuft nichts.

Innerhalb des <object>-Tags notieren Sie Angaben zu Ort und Beschaffenheit der externen Datei.
Mit <param name="DataURL" können Sie die gewünschte Datei ansprechen. Im value-Attribut notieren Sie den Dateinamen. Wenn sich die Datei im gleichen Verzeichnis befindet, genügt der einfache Dateiname. Ansonsten gelten die gleichen Regeln wie bei Kapitel Verweisen in HTML.
Mit <param name="UseHeader" value="true"> weisen Sie den Browser an, die erste Zeile der externen Datei nicht als Datenzeile zu interpretieren, sondern als Zeile für die Definition der Feldnamen.
Mit <param name="FieldDelim" geben Sie an, welches das Feldtrennzeichen sein soll. Im Beispiel ist dies das Zeichen "|".

Damit sind alle Voraussetzungen geschaffen, um die Daten aus der externen Datei dynamisch in HTML anzuzeigen. Die Anzeige der Daten erfolgt in einer Tabelle. Das einleitende <table>-Tag schafft die nötigen Voraussetzungen, um die Daten in kontrollierter Form anzuzeigen. Zunächst wird in der Tabelle mit dem id-Attribut ein Name vergeben (im Beispiel: Anzeigetabelle). Dieser Name wird bei den Buttons benötigt, die innerhalb der Tabelle das Blättern innerhalb der Datensätze ermöglichen.

Die nächste Angabe im <table>-Tag ist das datasrc-Attribut (data source, Datenquelle). Damit nehmen Sie Bezug auf die externe Datendatei. An dieser Stelle dürfen Sie jedoch nicht die Datendatei selbst angeben, sondern Sie müssen denjenigen Namen angeben, den Sie zuvor im <object>-Tag im id-Attribut vergeben haben. Und zwar mit einem vorangestellten Gatterzeichen #. Dadurch stellen Sie den Bezug zwischen Tabelle und Datenquelle her. Es werden dann alle Parameter berücksichtigt, die Sie innerhalb des <object>-Tags angegeben haben.

Ebenfalls wichtig das Attribut datapagesize (Datenseitengröße) im <table>-Tag. Damit geben Sie an, wie viele Datensätze aus der externen Datei gleichzeitig angezeigt werden sollen. Wenn Sie diese Angabe weglassen, macht der Internet Explorer die Tabelle automatisch so lang, dass alle Datensätze auf einmal darin dargestellt werden. Im obigen Beispiel wird datapagesize="1" angegeben. Dadurch wird immer genau ein Datensatz angezeigt.

Innerhalb der Tabelle können Sie erkennen, wie ein Datensatz aus der externen Datenquelle darin angezeigt wird. Die Tabelle selbst können Sie nach Ihren Wünschen frei gestalten. Wichtig ist nur zu wissen, wie der Bezug zu einem Datensatz der externen Datei hergestellt wird. Im obigen Beispiel geschieht dies innerhalb entsprechender Tabellenzellen mit Hilfe des <span>-Tags. Mit einem, Befehl wie <span datafld="PLZ"></span> weisen Sie den Browser an, in der betreffenden Tabellenzelle den aktuellen Inhalt des Feldes "PLZ" aus der externen Datenquelle anzuzeigen (datafld = data field = Datenfeld). Dabei muss der Wert des Attributs datafld mit dem Feldnamen übereinstimmen, den Sie in der ersten Zeile der externen Datendatei vergeben haben. Beachten Sie dabei auch die exakte Schreibweise.

Neben dem Attribut datafld können Sie in so einem Datenanzeigebereich auch noch das Attribut dataformatas (formatiere Daten als) notieren. Im obigen Beispiel wird davon kein Gebrauch gemacht. Benutzen Sie dataformatas, wenn die Daten in der externen Datei selbst HTML-Elemente enthalten. Mit dataformatas="html" erzwingen Sie dann, dass die Elemente aus der externen Datei als HTML-Elemente interpretiert werden.

Da im obigen Beispiel mit datapagesize="1" festgelegt wurde, dass immer nur ein Datensatz angezeigt wird, erscheint in der Tabelle zunächst der Inhalt der ersten Datenzeile der externen Datei. Natürlich soll der Anwender nun in den Datensätzen blättern können. Dazu werden Buttons zum Vor- und Zurückblättern definiert. Im Beispiel befinden sich diese Buttons in der ersten Tabellenzeile. Sie könnten aber auch an einer anderen Stelle stehen.

Mit <input type=button value=" &lt; " onclick="document.all.Anzeigetabelle.previousPage();"> wird ein Button definiert, bei dessen Anklicken der vorhergehende Datensatz aufgerufen wird. Mit document.all.Anzeigetabelle greifen Sie dabei auf die Tabelle zu, in der die Daten angezeigt werden (Anzeigetabelle ist dabei der Name, der in der Tabelle mit dem id-Attribut vergeben wurde). Mit <input type="button" value=" &gt; " onclick="document.all.Anzeigetabelle.nextPage();"> wird der Button definiert, der zum nächsten Datensatz springt. Beachten Sie, dass Sie nicht kontrollieren müssen, ob der Anwender gerade den ersten oder letzten Datensatz anzeigt. Es gibt keine Fehlermeldungen, wenn der Anwender versucht, einen nicht vorhandenen Datensatz aufzurufen. Der Button hat dann einfach keine Wirkung.

nach obennach unten

MS JScriptMS IE 4.0 Beispiel: Daten durchsuchbar machen

In diesem Beispiel wird gezeigt, wie Sie dem Anwender ermöglichen können, mit Hilfe eines Suchbegriffes nur diejenigen Datensätze anzuzeigen, in denen der gesuchte Begriff vorkommt. Das Beispiel zeigt auch, wie Sie mit Hilfe von Scripts auf die HTML-Elemente zur Datenanbindung zugreifen können.

Beispiel Teil 1 - externe Datei woerterbuch.txt mit Daten:

Beispiel-Seite Anzeigebeispiel: So sieht's aus (62 KByte)

Deutsch;Englisch;Franzoesisch;Italienisch;Spanisch
Rechner;computer;ordinateur;computer, calcolatore;ordenador
Maschine;machine (s);machine;macchina;máquina
Personalcomputer;personal computer;ordinateur personnel (m);computer personale;ordenador personal
arbeitender Rechner;active computer;ordinateur active;computer attivo;ordenador activado
... usw. ...

Erläuterung:

Die Datendatei dieses Beispiels zeigt ein mehrsprachiges Fachwörterbuch. In der ersten Zeile werden die Sprachen definiert. Unterhalb davon stehen die Wörter in den jeweiligen Sprachen. Die Einträge zu den Sprachen sind durch Semikola (;) getrennt. Wenn in einer Sprache mehrere Wörter in Frage kommen, werden diese durch Kommata getrennt, so wie in der zweiten Zeile beim italienischen Wort für Rechner: computer, calcolatore.

Beispiel Teil 2 - HTML-Datei mit Datenzugriff:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title>
<script language="JScript" type="text/jscript">
function Suchen () {
  var Datensaetze = 1000;
  document.all.Anzeigetabelle.style.display = "none";
  var Suchausdruck = "";
  var Suchbegriffe = 0;
  if (document.Eingabe.SuchDeu.value != "") {
    Suchausdruck = Suchausdruck + "Deutsch = " + document.Eingabe.SuchDeu.value;
    Suchbegriffe++;
  }
  if (document.Eingabe.SuchEng.value != "") {
    if (Suchbegriffe > 0) {
      Suchausdruck = Suchausdruck + " & Englisch = " + document.Eingabe.SuchEng.value;
    } else {
      Suchausdruck = Suchausdruck + "Englisch = " + document.Eingabe.SuchEng.value;
    }
    Suchbegriffe++;
  }
  if (document.Eingabe.SuchFra.value != "") {
    if (Suchbegriffe > 0) {
      Suchausdruck = Suchausdruck + " & Franzoesisch = " + document.Eingabe.SuchFra.value;
    } else {
      Suchausdruck = Suchausdruck + "Franzoesisch = " + document.Eingabe.SuchFra.value;
    }
    Suchbegriffe++;
  }
  if (document.Eingabe.SuchIta.value != "") {
    if (Suchbegriffe > 0) {
      Suchausdruck = Suchausdruck + " & Italienisch = " + document.Eingabe.SuchIta.value;
    } else {
      Suchausdruck = Suchausdruck + "Italienisch = " + document.Eingabe.SuchIta.value;
    }
    Suchbegriffe++;
  }
  if (document.Eingabe.SuchSpa.value != "") {
    if (Suchbegriffe > 0) {
      Suchausdruck = Suchausdruck + " & Spanisch = " + document.Eingabe.SuchSpa.value;
    } else {
      Suchausdruck = Suchausdruck + "Spanisch = " + document.Eingabe.SuchSpa.value;
    }
    Suchbegriffe++;
  }
  document.all.Begriffe.object.Filter = Suchausdruck;
  document.all.Begriffe.Reset();
  document.all.Anzeigetabelle.dataSrc = "#Begriffe";
  if (document.all.Begriffe.recordset.recordCount < Datensaetze) {
    document.all.Anzeigetabelle.dataPageSize = Begriffe.recordset.recordCount;
    document.all.Treffer.innerText = Begriffe.recordset.recordCount + " Suchtreffer!";
    document.all.Anzeigetabelle.style.display = "block";
  } else {
    document.all.Treffer.innerText = "0 Suchtreffer!";
  }
}
</script>
</head>
<body>
<object id="Begriffe" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
 <param name="DataURL" value="woerterbuch.txt">
 <param name="UseHeader" value="true">
 <param name="Filter" value="">
 <param name="FieldDelim" value=";">
</object>

<p>Die durchsuchbare Datenbank enthält 1000 Einträge. Suchen Sie nach
Begriffen in einer oder mehreren Sprachen. Bei der Suche in mehreren Sprachen
werden die Eingaben logisch durch UND verknüpft. Sie dürfen auch das
Wildcard-Zeichen <b>*</b> für Teilausdrücke verwenden. Suchen Sie z.B. mal im Feld
(Deutsch) nach <b>Arbeits*</b> oder im Feld (Italienisch) nach
<b>*ore</b> oder im Feld (Englisch) nach <b>*computer</b>.</p>

<form name="Eingabe" action="">
Suche nach:<br>
<input name="SuchDeu" type="text" width="40"> (Deutsch)<br>
<input name="SuchEng" type="text" width="40"> (Englisch)<br>
<input name="SuchFra" type="text" width="40"> (Franzoesisch)<br>
<input name="SuchIta" type="text" width="40"> (Italienisch)<br>
<input name="SuchSpa" type="text" width="40"> (Spanisch)<br>
<input type="button" style="width:150px; height:25px;" value="Suche starten" onclick="Suchen()">
</form>

<table border="1" cellpadding="1" cellspacing="0"><tr><td>
<table width="100%">
<tr>
<td valign="top" colspan="5">
<span id="Treffer" style="color:#0000CC; font-weight:bold;"> </span>
</td>
</tr>
<tr>
<td bgcolor="#EEEEEE" valign="top" width="20%"><b>Deutsch:</b></td>
<td bgcolor="#EEEEEE" valign="top" width="20%"><b>Englisch:</b></td>
<td bgcolor="#EEEEEE" valign="top" width="20%"><b>Französisch:</b></td>
<td bgcolor="#EEEEEE" valign="top" width="20%"><b>Italienisch:</b></td>
<td bgcolor="#EEEEEE" valign="top" width="20%"><b>Spanisch:</b></td>
</tr>
</table>
<table id="Anzeigetabelle" style="display:none" width="100%">
<tr>
<td bgcolor="#FFFFE0" valign="top" width="20%"><span datafld="Deutsch"></span></td>
<td bgcolor="#FFFFE0" valign="top" width="20%"><span datafld="Englisch"></span></td>
<td bgcolor="#FFFFE0" valign="top" width="20%"><span datafld="Franzoesisch"></span></td>
<td bgcolor="#FFFFE0" valign="top" width="20%"><span datafld="Italienisch"></span></td>
<td bgcolor="#FFFFE0" valign="top" width="20%"><span datafld="Spanisch"></span></td>
</tr>
</table>
</td></tr></table>
</body>
</html>

Erläuterung:

Das Beispiel zeigt die vollständige HTML-Datei zur Realisierung einer durchsuchbaren Datenbank. Innerhalb der HTML-Datei wird wie im nach oben Beispiel: Datei dynamisch in Tabelle einbinden wieder das <object>-Tag notiert, um die Verbindung zu der externen Datendatei herzustellen. Es wird jedoch ein neuer Parameter angegeben:
<param name="Filter" value="">
Mit dem Parameter Filter können Sie die Datensätze, die aus der Datendatei "geholt" werden, begrenzen. Dazu können Sie im value-Attribut Einschränkungskriterien angeben. Bei der Objektdefinition im obigen Beispiel wird value="" notiert. Das bedeutet, es gibt keine Einschränkungen. Alle Datensätze werden gefunden.

In dem längeren Script, das im Kopf der HTML-Datei steht, wird der Wert für Filter dynamisch verändert. Dadurch wird die Anzeige auf bestimmte Datensätze eingeschränkt, nämlich solche, die den Filterkriterien entsprechen.

Die Kriterien für den Filter soll der Anwender durch seine Suchanfrage selbst bestimmen können. Im obigen Beispiel wird dazu unterhalb des <object>-Tags ein Formular definiert (<form name="Eingabe" action="">). Das Formular hat fünf Eingabefelder, eines für jede der fünf Sprachen des mehrsprachigen Wörterbuchs. Mit einem anklickbaren Button kann der Anwender die Suche abschicken. Beim Anklicken des Buttons wird die Funktion Suchen() aufgerufen, die in dem JScript-Bereich im Dateikopf definiert ist (onclick="Suchen()").

Innerhalb der Funktion Suchen() wird zunächst eine Variable Datensaetze mit einem Wert vorbelegt (1000). Das empfiehlt sich bei größeren Datenbeständen. Denn per Voreinstellung liefert der Internet Explorer, wenn er keine Datensätze findet, die dem Suchkriterium entsprechen, alle Datensätze zurück. Angenommen, Sie haben 5000 Datensätze. Dann würde eine Tabelle mit 5000 Zeilen angezeigt. Da dies im Aufbau ziemlich lange dauert, ist eine Begrenzung sinnvoll.

Die Variable Suchausdruck soll die Anwenderkriterien zum Durchsuchen des Datenbestandes aufnehmen. Dabei ist es erforderlich, die Angaben aus den Formularfeldern in eine Zeichenkette zu konvertieren, die den Regeln für den Parameter Filter entsprechen.

Folgende wichtige Regeln gelten für Werte, die bei Filter erlaubt sind (diese Regeln gelten sowohl bei Wertzuweisungen innerhalb des <object>-Tags als auch bei dynamischen Wertzuweisungen innerhalb von Scripts):
Mit Feldname = Wert werden nur Datensätze gefunden, bei denen das Feld Feldname exakt den Wert Wert enthält und nicht mehr und nicht weniger. Bei Name = Meyer werden also nur Meyer's gefunden, keine Meyerbohm's.
Mit Feldname <> Wert werden Datensätze gefunden, bei denen der Wert Wert im Feld Feldname vorkommt - er kann auch exakt damit übereinstimmen. Bei Name <> Meyer werden also Meyer's und Meyerbohm's gefunden.
Mit Feldname > Wert werden Datensätze gefunden, bei denen der Wert von Feldname größer ist als Wert. Bei Name > Y werden also nur Namen gefunden, die mit Z anfangen.
Mit Feldname >= Wert werden Datensätze gefunden, bei denen der Wert von Feldname größer oder gleich ist im Vergleich zu Wert. Bei Name >= Y werden also nur Namen gefunden, die mit Y oder Z anfangen.
Mit Feldname < Wert werden Datensätze gefunden, bei denen der Wert von Feldname kleiner ist als Wert. Bei Name < D werden also nur Namen gefunden, die mit A,B oder C anfangen.
Mit Feldname <= Wert werden Datensätze gefunden, bei denen der Wert von Feldname kleiner oder gleich ist im Vergleich zu Wert. Bei Name <= D werden also Namen gefunden, die mit A,B,C oder D anfangen.
An jeder Stelle ist ein Platzhalterzeichen erlaubt. Dies ist ein Sternzeichen (*). Es steht für kein, eines oder beliebig viele Zeichen.
Sie können auch zwei oder mehrere solcher einfachen Ausdrücke mit den Zeichen & (für UND) oder | (für inklusives ODER) logisch verknüpfen. Wenn Sie mehrere Ausdrücke verknüpfen und dabei sowohl UND also auch ODER verwenden, müssen Sie Klammern verwenden, um eine eindeutige Bewertung des gesamten Kriteriums sicherzustellen. Ein komplexer Ausdruck dieser Art ist etwa Name > M & PLZ = 8*.

Im obigen Script wird mit diversen if-Abfragen aus den Eingabefeldern des Formulars ein gültiger Zuweisungswert für Filter konstruiert. Dabei wird nur die einfachste Bedingung mit dem Istgleichzeiten eingesetzt. Da der Anwender auch selbst das Sternzeichen als Platzhalterzeichen in einem Eingabefeld eingeben kann, genügt diese einfache Suche für viele Fälle. Wenn Sie dem Anwender komplexere Suchabfragen ermöglichen wollen, müssen Sie diesen Teil des Scripts entsprechend aufwendiger gestalten.

Im unteren Teil der Funktion Suchen() steht dann der Befehl:
document.all.Begriffe.object.Filter = Suchausdruck;
Damit wird dem Parameter Filter des <object>-Tags der Suchausdruck zugewiesen, der zuvor ermittelt und in der Variablen Suchausdruck gespeichert wurde.

Der nächste Befehl ist ebenfalls von entscheidender Bedeutung:
document.all.Begriffe.Reset();
Damit veranlassen Sie den Browser, die Anzahl der anzuzeigenden Datensätze neu zu ermitteln. Da mittlerweile ein Filter bestimmt wurde, findet der Browser nun nur noch Datensätze, die den Bedingungen des Filters entsprechen.

Auf die übrigen Anweisungen des Scripts und die Elemente in der HTML-Datei wird hier nicht näher eingegangen. Es handelt sich dabei um einfaches dynamisches HTML nach den Regeln des Internet Explorers 4.x.

nach obennach unten

MS JScriptMS IE 4.0 HTML-Elemente für die Anzeige von externen Daten

Im nach oben Beispiel: Datei dynamisch in Tabelle einbinden werden die externen Daten jeweils in einem span-Element angezeigt. Es gibt eine Reihe weiterer HTML-Elemente, in denen Sie Daten aus Datenfeldern externer Datenquellen anzeigen können. In anderen als diesen Elementen ist die Anzeige externer Daten nicht möglich. Folgende HTML-Elemente sind erlaubt:

Verweise mit <a>...</a>:

Angenommen, Sie haben eine externe Textdatei verweis.txt mit folgenden Zeilen:
URL,Verweistext
http://de.yahoo.com/,Yahoo Suchdienst
Diese Datei können Sie mit dem object-Element in HTML wie folgt einbinden:
<object id="Verweis" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="verweis.txt">
<param name="UseHeader" value="true">
<param name="FieldDelim" value=",">
</object>
Danach können Sie folgenden Verweis konstruieren:
<a datasrc="#Verweis" datafld="URL"><span datafld="Verweistext" datasrc="#Verweis"></span></a>
Indem Sie <a datafld="..."> notieren, wird der Inhalt, den das Datenfeld liefert, als Wert für das Attribut href bewertet (im Beispiel liefert das Feld "URL" diese Angaben). Innerhalb des Verweises wird dann mit Hilfe des span-Elements das andere Feld "geholt", nämlich der Verweistext. Solche Verweise machen beispielsweise Sinn, wenn Sie den gleichen Verweis an vielen verschiedenen Stellen auf Ihren Web-Seiten nutzen. Verweisziel und Verweistext sind dann zentral gespeichert und brauchen bei Änderungen nur in der kleinen Textdatei einmal geändert werden. Alle entsprechenden HTML-Verweise sind damit automatisch aktualisiert.

Buttons mit <button>...</button>:

Angenommen, Sie haben eine externe Textdatei daten.txt mit folgendem Aufbau und Beispieleinträgen:
Zeile,Text
1,Das ist ein Test
2,mit einem Button
3,spannend - was?
Diese Datei können Sie mit dem object-Element in HTML wie folgt einbinden:
<object id="Daten" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="daten.txt">
<param name="UseHeader" value="true">
<param name="FieldDelim" value=",">
</object>
Danach können Sie beispielsweise folgende Tabelle konstruieren:
<table id="Anzeige" datasrc="#Daten" datapagesize="1"><tr><td>
<form action=""><button datafld="Text" onclick="document.all.Anzeige.nextPage()"></button></form>
</td></tr></table>
Damit springt der Anwender bei jedem Klick auf den Button einen Datensatz weiter, und die Button-Beschriftung nimmt den aktuellen Wert des Datenfeldes Text an.

Bereiche mit <div>...</div>:

Mit diesem HTML-Tag können Sie beispielsweise innerhalb einer Tabelle externe Daten ausgeben, genau so wie es im nach oben Beispiel: Datei dynamisch in Tabelle einbinden mit dem span-Element gemacht wird. Der Unterschied zwischen <div>...</div> und <span>...</span> ist, dass das div-Element einen eigenen Anzeigeblock erzeugt, das span-Element dagegen nicht.

Grafiken mit <img>:

Angenommen, Sie wollen eine kleine Dia-Show programmieren. Dazu können Sie eine Textdatei daten.txt anlegen, die etwa folgenden Aufbau hat:
Nummer,Bild
1,meinhaus.gif
2,meinboot.gif
3,meinauto.gif
4,undich.gif
Diese Datei können Sie mit dem object-Element in HTML wie folgt einbinden:
<object id="Daten" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="daten.txt">
<param name="UseHeader" value="true">
<param name="FieldDelim" value=",">
</object>
Danach können Sie beispielsweise folgende Tabelle konstruieren:
<table "id=Anzeige" datasrc="#Daten" datapagesize="1"><tr>
<td>
Bild <span datafld="Nummer"></span><br> <input type=button value=" &lt; " onclick="document.all.Anzeige.previousPage();">
<input type=button value=" &gt; " onclick="document.all.Anzeige.nextPage();">
</td><td>
<img datafld="Bild">
</td></tr></table>
Damit kann der Anwender mit den Blätterbuttons die Bilder durchblättern.

Frames mit <frame>:

Angenommen, Sie haben eine externe Textdatei besteseite.txt mit folgenden Zeilen:
BesteSeite
http://de.selfhtml.org/
Nun können Sie folgende HTML-Datei mit einem Frameset konstruieren:
<html><head>
<object id="UrlDerWoche" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="besteseite.txt">
<param name="UseHeader" value="true">
</object></head>
<frameset rows="100,*">
 <frame src="meine.htm">
 <frame datasrc="#UrlDerWoche" datafld="BesteSeite">
</frameset>
</html>
Auf diese Weise können Sie in einem Frame-Fenster eine Seite anzeigen, deren Zieladresse Sie in der separaten Textdatei pflegen. Wichtig ist, dass Sie das object-Element genau an der Stelle platzieren wie im Beispiel.

Eingebettete Frames mit <iframe>:

Siehe das Beispiel bei Frames. Der Unterschied ist, dass Sie das object-Element in einer normalen HTML-Datei platzieren. Mit einem Befehl wie:
 <iframe datasrc="#UrlDerWoche" datafld="BesteSeite"></iframe>
können Sie dann in der gleichen HTML-Datei in einer eingebetteten Fensterbox den Inhalt der Seite anzeigen, die in der Textdatei angegeben ist.

Labels mit <label>...</label>:

Das label-Element, das neu ist in HTML 4.0, erlaubt die Beschriftung eines Formularfeldes. Im Rahmen der Datenanbindung können Sie dieses HTML-Tag benutzen, wenn Sie die externen Daten in Formularfeldern ausgeben. Sie können dann dem label-Element, das Sie etwa einem Eingabefeld zuordnen, dynamisch den Feldnamen zuweisen, der in der externen Datendatei für dieses Feld definiert ist. Wenn sich der Feldname in der Datendatei dann ändert, wird er bei der Anzeige in der HTML-Datei automatisch aktualisiert. Beispiel:
<label for="Vorname" datafld="prename"></label>
Dadurch wird dem Inhalt des label-Elements eines Formularfeldes der Feldname prename zugewiesen, der in der Datenbank definiert ist.

Lauftexte mit <marquee>...</marquee>:

Mit diesem HTML-Element, das mittlerweile allerdings als Musterbeispiel proprietärer HTML-Erweiterungen verschrieen ist, können Sie beispielsweise innerhalb einer Tabelle externe Daten ausgeben, genau so wie es im nach oben Beispiel: Datei dynamisch in Tabelle einbinden mit dem span-Element gemacht wird. Der Unterschied zwischen <marquee>...</marquee> und <span>...</span> ist, dass das marquee-Element einen Lauftext erzeugt, das span-Element dagegen nicht.

Bereiche mit <span>...</span>:

Mit diesem HTML-Tag können Sie beispielsweise innerhalb einer Tabelle externe Daten ausgeben, genau so wie es im nach oben Beispiel: Datei dynamisch in Tabelle einbinden.

Formularfelder mit <input>:

Mit diesem HTML-Element können Sie beispielsweise innerhalb einer Tabelle externe Daten in editierbaren Formularfeldern ausgeben. Das ist besonders dann interessant, wenn geänderte Daten auch tatsächlich in die Datenquelle zurückgeschrieben werden können. Bei einfachen Textdateien ist das derzeit nicht möglich, wohl aber beim nach unten Datenmodell: Remote Data Service (RDS) und beim nach unten Datenmodell: JDBC DataSource Applet.
Die Einbindung in HTML erfolgt ähnlich wie im nach oben Beispiel: Datei dynamisch in Tabelle einbinden, mit dem Unterschied, dass Sie die Regeln zum Einbinden des gewünschten Datenmodells beachten müssen. Notieren Sie im einleitenden <table>-Tag der Tabelle, in der Sie die Datensätze anzeigen, möglichst die Angabe datapagesize="1". Innerhalb der Tabellenzelle, in der Sie externe Daten auf diese Weise anzeigen wollen, können Sie dann notieren (angenommene Beispiele):
<input type="text" datafld="Vorname">
oder:
<input type="radio" name="Kunde" value="Bereits Kunde" datafld="BereitsKunde">
oder:
<input type="checkbox" name="Zahlweise" value="Mastercard" datafld="Zahlungsweise">
Datenfelder, die in Eingabefeldern vom Typ <input type="text"> angezeigt werden, können normale Texte sein, wie etwa ein Name. Radio-Buttons und Checkboxen stellen dagegen andere Anforderungen. Ein Radio-Button wird bei der Anzeige dann aktiviert, wenn der aktuelle Feldinhalt in der Datenbank mit dem Wert des Attributs value übereinstimmt. Eine Checkbox wird dann markiert, wenn der betreffende Feldinhalt in der Datenbank 1, true oder einen beliebigen Inhalt mit mehr als einem Zeichen enthält. Wenn der Inhalt 0, false oder leer ist, wird die Checkbox nicht markiert.

Formularfelder mit <select>:

Dabei gelten die gleichen Bedingungen wie bei Formularfeldern vom Typ input. Wenn der Wert eines aktuellen Eintrags in der Datenbank mit einem der Werte übereinstimmt, die in der value-Angabe bei einem option-Element innerhalb der Auswahlliste definiert sind, ist diese Auswahl selektiert. Interessant ist diese Ausgabemöglichkeit von externen Daten wie bei anderen Formularfeldern nur, wenn auch ein Zurückschreiben geänderter Daten möglich ist. Bei Auswahllisten etwa kann ein neuer ausgewählter Wert als neuer Feldinhalt gespeichert werden. Der Internet Explorer unterstützt dabei nur die einfache Auswahl, Mehrfachauswahl nicht.

Andere Objekte mit <object>...</object>:

Mit dem object-Element können Sie genau so arbeiten wie mit dem img-Element. Der Unterschied ist, dass Sie beim img-Element auf Grafiken beschränkt sind, während Sie mit dem object-Element beliebige Multimedia-Dateien oder ActiveX-Controls einbinden können. So können Sie, analog zu dem Beispiel beim img-Element, anstelle einer "Dia-Show" eine "Musik-Show" programmieren, die zum Beispiel aus MIDI-Dateien besteht.
In der externen Textdatei notieren Sie die gewünschten MIDI-Dateien, und bei der Einbindung in HTML können Sie dann anstelle der Datenanbindung mit img so etwas notieren wie:
<object datafld="Musik" width="0" height="0"></object>
(wobei "Musik" in der Textdatei mit den Daten als Feldüberschrift notiert sein muss).

Java-Applets mit <applet>...</applet>:

Sie können das Feature der Datenanbindung nutzen, um einen Parameter eines Java-Applets aus einer externen Datenquelle zu versorgen. Beispiel:
<applet code="verzerr.class">
 <param name="bild" datasrc="#aktuell" datafld="b_gates_bild">
</applet>

nach obennach unten

MS JScriptMS IE 4.0 Datenmodell: Tabular Data Control (TDC)

Dies ist das Datenmodell, wenn die externe Datenquelle eine einfache Textdatei ist, die in jeder Zeile einen Datensatz enthält, und bei der die einzelnen Datenfelder der Datensätze durch ein Begrenzerzeichen, zum Beispiel ein Komma, markiert sind. Geeignet ist dieses Datenmodell für kleinere Datenbestände mit bis zu ein paar tausend Datensätzen. Ein vollständiges Beispiel dafür finden Sie weiter oben im Abschnitt nach oben Beispiel: Datei dynamisch in Tabelle einbinden. Um eine solche Datenquelle an eine HTML-Datei anzubinden, müssen Sie folgendes Objekt in der HTML-Datei notieren:

Schema zur Einbindung in HTML:

<object id="Objektname" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
 <param name= value=>
 <!-- usw. weitere Parameter -->
</object>

Erläuterung:

Um solche Daten einzubinden, verwenden Sie das im Internet Explorer 4.x eingebaute ActiveX-Control mit der ID 333C7BC4-460F-11D0-BC04-0080C7055A83. Innerhalb des <object>-Tags notieren Sie verschiedene Parameter, die für die Datenpräsentation wichtig sind. Folgende Parameter sind erlaubt:

Notation Bedeutung
<param name="AppendData" value=> Mit diesem Parameter können Sie angeben, ob in der Ausgabetabelle beim Blättern für jedes neue Datensatz-Set (entsprechend der Größe von datapagesize die vorhandenen Tabellenzellen überschrieben werden sollen, oder ob neue Tabellenzellen angehängt werden sollen. Mit value=true erzwingen Sie das Anhängen von Daten. Per Voreinstellung werden die vorhandenen Tabellenzellen überschrieben.
<param name="CaseSensitive" value=> Mit diesem Parameter können Sie angeben, ob bei Vergleichen von Anwendereingaben mit Daten aus der Datenquelle Groß-/Kleinschreibung unterschieden werden soll. Nur interessant bei der Weiterverarbeitung von Daten mit Scripts. Per Voreinstellung wird Groß-/Kleinschreibung unterschieden. Mit value="false" können Sie die Fallunterscheidung ausschalten.
<param name="CharSet" value=> Mit diesem Parameter können Sie die Kodierung angeben, die für die Daten in der Datendatei maßgeblich ist. Per Voreinstellung ist das die Kodierung ISO-8859-1. Verwenden Sie diesen Parameter nur, wenn die Daten anders kodiert sind, z.B. ISO-8859-5 für Kyrillisch verewnden. Im value-Attribut können Sie den Namen der Kodierung angeben. Nähere Informationen im Abschnitt über Seite Zeichenkodierungen.
<param name="DataURL" value=> Dieser Parameter ist unbedingt erforderlich. Im value-Attribut geben Sie die Datei an, in der sich die Daten befinden.
<param name="EscapeChar" value=> Diesen Parameter sollten Sie angeben, wenn in Ihrer Datendatei ein Zeichen als Maskierungszeichen verwendet wird. Das ist z.B. der Fall, wenn Sie in einer kommabegrenzten Datei Kommata innerhalb von Feldern mit einem vorangestellten Backslash \ maskieren. Geben Sie in diesem Fall im value-Attribut das Maskierungszeichen an.
<param name="FieldDelim" value=> Mit diesem Parameter geben Sie an, welches Zeichen als Trennzeichen für Datenfelder innerhalb einer Zeile der externen Textdatei interpretiert werden soll. Im value-Attribut können Sie das Zeichen angeben.
<param name="Filter" value=> Mit diesem Parameter können Sie die Datenauswahl einschränken. Per Voreinstellung werden alle Daten aus der externen Datei angezeigt. Interessant ist dieser Parameter vor allem, wenn der Anwender in einem Eingabeformular die Suche selbst definieren kann, und die Eingaben dann mit Hilfe eines Scripts dynamisch diesem Parameter des <object>-Tags zugewiesen werden. Im value-Attribut können Sie den Filter angeben. Beispiele:
value="Telefon <> '089*'" findet in einem Feld "Telefon" nur Nummern, die mit 089 beginnen.
value="PLZ > '50000'" findet in einem Feld "PLZ" für Postleitzahlen nur Werte, die größer als 50000 sind.
<param name="Language" value=> Mit diesem Parameter können Sie die Sprache angeben, in der die Daten der externen Datendatei vorliegen. Maßgeblich sind dafür die Sprachennamen, wie sie in ISO 369 definiert sind. Im value-Attribut können Sie die Sprache angeben.
<param name="RowDelim" value=> Wenn Ihre externe Datendatei so aufgebaut ist, dass am Ende eines Datensatzes ein Datensatzbegrenzerzeichen steht, müssen Sie dieses Zeichen mit diesem Parameter angeben. Notieren Sie im Attribut value das Zeichen.
<param name="Sort" value=> Mit diesem Parameter können Sie veranlassen, dass bei gleichzeitiger Ausgabe mehrerer Datensätze (also bei datapagesize größer 1) die angezeigten Datensätze nach einem bestimmten Feld sortiert werden. Beispiele:
value="PLZ" sortiert auszugebende Daten nach einem Feld namens "PLZ".
value="-PLZ" sortiert auszugebende Daten nach einem Feld namens "PLZ", und zwar absteigend (Minuszeichen davor).
value="Name; PLZ" sortiert auszugebende Daten erstens nach Name und zweitens nach Postleitzahlen.
<param name="TextQualifier" value=> Wenn Ihre externe Datendatei so aufgebaut ist, dass alle Datenfelder in bestimmte Zeichen eingeschlossen sind, zum Beispiel in Anführungszeichen, dann sollten Sie mit diesem Parameter das betreffende Zeichen angeben. Mit value="'"'" etwa bestimmen Sie das Anführungszeichen als Zeichen für Feldanfang und Feldende.
<param name="UseHeader" value=> Diesen Parameter müssen Sie dann angeben, wenn die erste Zeile der externen Datendatei keine Daten enthält, sondern die zugehörigen Feldnamen. Mit value="true" wird die Datendatei so interpretiert, dass die erste Zeile Feldnamen enthält. Mit value="false" wird sie so interpretiert, dass gleich in der ersten Zeile die Daten beginnen.

 

nach obennach unten

MS JScriptMS IE 4.0 Datenmodell: Remote Data Service (RDS)

Über das Datenmodell Remote Data Service (RDS) können Sie die Anbindung einer HTML-Datei an Daten aus einer Datenbank realisieren. Geeignet ist dieses Modell für Datenbanken, die über die Datenbank-Schnittstellen OLE-DB oder ODBC (DBMS) verfügen. Das sind beispielsweise MS Access, Oracle oder SQL-Server wie msql. Über die entsprechenden Produkte und den Aufbau von Datenbanken damit informieren Sie sich bitte bei den betreffenden Herstellern. Um eine solche Datenanbindung im WWW zu realisieren, muss die Datenbankanwendung auf dem Server-Rechner installiert sein. Fragen Sie dazu gegebenenfalls Ihren Provider.

Um eine solche Datenquelle an eine HTML-Datei anzubinden, müssen Sie folgendes Objekt in der HTML-Datei notieren:

Schema zur Einbindung in HTML:

<object id="Objektname" classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33">
 <param name= value=>
 <!-- usw. weitere Parameter -->
</object>

Erläuterung:

Um solche Daten einzubinden, verwenden Sie das im Internet Explorer 4.x eingebaute ActiveX-Control mit der ID BD96C556-65A3-11D0-983A-00C04FC29E33. Innerhalb des <object>-Tags notieren Sie verschiedene Parameter, die für die Datenpräsentation wichtig sind. Folgende Parameter sind möglich:

Notation Bedeutung
<param name="AppendData" value=> Mit diesem Parameter können Sie angeben, ob in der Ausgabetabelle beim Blättern für jedes neue Datensatz-Set (entsprechend der Größe von datapagesize) die vorhandenen Tabellenzellen überschrieben werden sollen, oder ob neue Tabellenzellen angehängt werden sollen. Mit value="true" erzwingen Sie das Anhängen von Daten. Per Voreinstellung werden die vorhandenen Tabellenzellen überschrieben.
<param name="CaseSensitive" value=> Mit diesem Parameter können Sie angeben, ob bei Vergleichen von Anwendereingaben mit Daten aus der Datenquelle Groß-/Kleinschreibung unterschieden werden soll. Nur interessant bei der Weiterverarbeitung von Daten mit Scripts. Per Voreinstellung wird Groß-/Kleinschreibung unterschieden. Mit value=false können Sie die Fallunterscheidung ausschalten.
<param name="CharSet" value=> Mit diesem Parameter können Sie die Kodierung angeben, die für die Daten in der Datendatei maßgeblich ist. Per Voreinstellung ist das die Kodierung ISO-8859-1. Verwenden Sie diesen Parameter nur, wenn die Daten anders kodiert sind, z.B. ISO-8859-5 für Kyrillisch verewnden. Im value-Attribut können Sie den Namen der Kodierung angeben. Nähere Informationen im Abschnitt über Seite Zeichenkodierungen.

Beachten Sie:

Solche Datenanbindungen sind nur sinnvoll, wenn Sie dem Anwender ein HTML-Formular zur Verfügung stellen, in dem er seine Angaben zum Durchsuchen der Datenbank machen kann. Mit Hilfe eines JavaScripts können Sie dann die Anwendereingaben in einen gültigen SQL-Befehl umwandeln, den Sie im Script dem Parameter SQL des object-Tags zuweisen. So können Sie beispielsweise mit der JavaScript-Anweisung:
document.all.Datenbank.SQL = Abfrage;
eine SQL-Abfrage zuordnen. In diesem Beispiel ist "Datenbank" der Name, der beim object-Tag mit dem id-Attribut vergeben wird, und Abfrage ist eine Variable, die zuvor aus Formulareingaben des Anwenders einen SQL-Befehl kreiert hat. Bei solchen Datenbanken ist es auch möglich, SQL-Befehle zum Schreiben von geänderten Datensätzen in die Datenbank zurückzuschreiben. Voraussetzung ist, dass die Daten in der HTML-Datei in editierbaren HTML-Eingabefeldern (z.B. <input...>) angezeigt werden.

Ausführliche Informationen zum Einrichten und Realisieren einer Datenbank mit Scripts finden Sie auf den englischsprachige Seite Entwicklerseiten von Microsoft. Suchen Sie dort nach Microsoft Internet Client SDK.

nach obennach unten

MS JScriptMS IE 4.0 Datenmodell: JDBC DataSource Applet

Das Datenmodell JDBC DataSource Applet greift ebenso wie das Datenmodell nach oben Datenmodell: Remote Data Service (RDS) auf Datenbanken zu, die über die Datenbank-Schnittstellen OLE-DB oder ODBC (DBMS) verfügen, zum Beispiel MS Access, Oracle oder SQL-Server wie msql. Der Unterschied zwischen dem JDBC DataSource Applet und dem Remote Data Service (RDS) ist, dass letzterer in der HTML-Datei als ActiveX-Control eingebunden wird, während das JDBC DataSource Applet ein Java-Applet ist. Damit will Microsoft seine Datenanbindungs-Technologie anderen Browsern zur Verfügung stellen, die kein ActiveX unterstützen, wohl aber Java. Das tun zwar Netscape und einige andere Browser, doch solange diese das Konzept der Datenanbindung mit Dynamischem HTML nicht unterstützen, hat das Ganze eigentlich wenig Sinn.

Das Java-Applet, das diese Form der Datenanbindung steuert, gehört nicht zum Lieferumfang des Internet Explorers. Auf den englischsprachige Seite Web-Seiten von Microsoft können Sie das JDBC DataSource Applet downloaden. Suchen Sie dort auf den Seiten nach JDBC DataSource Applet.

Um eine solche Datenanbindung im WWW zu realisieren, muss die Datenbankanwendung auf dem Server-Rechner installiert sein. Fragen Sie dazu gegebenenfalls Ihren Provider.

Um eine solche Datenquelle an eine HTML-Datei anzubinden, müssen Sie das JDBC DataSource Java-Applet in der HTML-Datei notieren.

Schema zur Einbindung in HTML:

<applet code="JDC.class" name="DSA1" id="DSA1" width="0" height="0">
 <param name= value=>
 <!-- usw. weitere Parameter -->
</applet>

Erläuterung:

Das Java-Applet wird wie in HTML üblich mit dem <applet>-Tag eingebunden. Mit dem Attribut code geben Sie die ausführbare Java-Datei an. Dies ist die Datei JDC.class, die Sie mit dem Download des JDBC DataSource Java-Applets erhalten. Innerhalb des Applets notieren Sie verschiedene Parameter, die das Applet benötigt, um korrekt zu arbeiten. Weiterführende Infos zu den Parametern entnehmen Sie der Original-Dokumentation zu dem Applet. Folgende Parameter erwartet das Applet:

Notation Bedeutung
<param name="cabbase" value=> Mit diesem Parameter geben Sie die Datei an, in der der Quellcode des Applets steht. Es handelt sich um eine CAB-Datei. Relative Pfadnamen oder auch absolute Adressen sind dabei erlaubt.
<param name="dbURL" value=> Mit diesem Parameter geben Sie im value-Attribut die Datei an, in der die Datenbank gespeichert ist. Relative Pfadnamen oder auch absolute Adressen sind dabei erlaubt.
<param name="showUI" value=> Mit diesem Parameter geben Sie an, ob das Applet innerhalb der HTML-Datei seine eigene Benutzeroberfläche anzeigen soll oder nicht. Mit value="true" wird das Applet angezeigt, mit value="false" nicht. Der Parameter ist optional.
<param name="sqlStatement" value=> Mit diesem Parameter müssen Sie einen Befehl angeben, den Sie zum Ansprechen der Datenbank absetzen wollen. Dies kann ein beliebiger gültiger SQL-Befehl sein. SQL (Structured Query Language) ist eine standardisierte Datenbankabfragesprache. Diese Sprache und ihre Befehle müssen Sie kennen, um den Parameter mit korrekten Werten zu versorgen.
<param name="allowInsert" value=> Mit diesem Parameter geben Sie an, ob der Anwender Datensätze durch Ausfüllen entsprechender Eingabefelder neue Datensätze in die Datenbank schreiben darf. Mit value="true" erlauben Sie das Hinzufügen von Daten, mit value="false" verbieten Sie es.
<param name="allowDelete" value=> Mit diesem Parameter geben Sie an, ob der Anwender angezeigte Datensätze mit Hilfe entsprechender Befehlsbuttons aus der Datenbank löschen darf. Mit value="true" erlauben Sie das Löschen von Daten, mit value="false" verbieten Sie es.
<param name="allowUpdate" value=> Mit diesem Parameter geben Sie an, ob der Anwender angezeigte Datensätze in entsprechenden Eingabefeldern editieren und geänderte Daten mit Hilfe entsprechender Befehlsbuttons in die Datenbank zurückschreiben darf. Mit value="true" erlauben Sie das Ändern von Daten, mit value="false" verbieten Sie es.
<param name="user" value=> Mit diesem Parameter können Sie der Datenbank im value-Attribut den Namen eines angemeldeten Users übergeben, sofern die Datenbank dies verlangt. Der Parameter ist optional.
<param name="password" value=> Mit diesem Parameter können Sie der Datenbank im value-Attribut das Passwort des Users übergeben, sofern die Datenbank dies verlangt. Der Parameter ist optional.

Beachten Sie:

Beim Datenmodell JDBC DataSource Applet gelten die nach oben Anmerkungen zum Datenmodell Remote Data Service (RDS).

nach obennach unten

MS JScriptMS IE 4.0 Datenmodell: XML Data Source

Das Datenmodell XML Data Source könnte in Zukunft sehr interessant werden, da es die vom W3-Konsortium standardisierte Sprache XML zur Definition von Daten benutzt. Bei diesem Datenmodell werden die Daten in einer XML-Datei gespeichert. Für Datensätze und Datenfelder können Sie innerhalb der XML-Datei eigene Tags und deren Verschachtelung erfinden. Ein denkbares Schema für eine Adressendatei wäre etwa:
<adresse>
 <name>Meyer</name>
 <vorname>Hubert</vorname>
 <ort>Hamburg</ort>
 <telefon>040-598487374</telefon>
</adresse>
Die Datei muss den Konventionen zum Aufbau einer XML-Datei entsprechen. Lesen Sie dazu das Kapitel über Kapitel XML/DTDs.

Im Lieferumfang des Internet Explorers 4.x ist ein Java-Applet enthalten, das solche Tag-Strukturen aus XML-Dateien interpretiert und die Datenstruktur daraus ermittelt.

Um diese Art von Datenquelle an eine HTML-Datei anzubinden, müssen Sie das zugehörige Java-Applet in der HTML-Datei notieren.

Schema zur Einbindung in HTML:

<applet code="com.ms.xml.dso.xmldso.class" id="xmldso" width="0" height="0" mayscript="true">
 <param name="url" value="datei.xml">
</applet>

Erläuterung:

Das Java-Applet wird wie in HTML üblich mit dem <applet>-Tag eingebunden. Notieren Sie das einleitende <applet>-Tag genau so wie im obigen Schema. Der Grund für den ungewöhnlichen Wert des Attributs code ist, dass dieses Java-Applet eine interne Ressource des Internet Explorers ist und keine separat vorliegende Datei.

Das Applet erwartet genau einen Parameter:
Mit <param name="url" value="datei.xml"> geben Sie im Attribut value den Dateinamen der XML-Datei an. Dabei sind natürlich auch relative Pfadangaben oder absolute Adressen erlaubt.

nach obennach unten

MS JScriptMS IE 4.0 Datenmodell: MSHTML Data Source

Was Sie mit XML besonders elegant lösen können, geht etwas weniger elegant auch mit HTML selbst: hinter dem Datenmodell MSHTML Data Source verbirgt sich nichts anderes als eine Konvention, nach der die Daten in einer HTML-Datei gehalten werden - diese HTML-Datei dient dann als externe Quelle für eine andere HTML-Datei, in der die Daten angezeigt werden. Ein Schema für den Datensatz einer Adressendatei wäre etwa:
<div id="Adresse">
 <span id="Name">Meyer</span><br>
 <span id="Vorname">Hubert</span><br>
 <span id="Ort">Hamburg</span><br>
 <span id="Telefon">040-598487374</span><br>
</div>

Um diese Art von Datenquelle an eine HTML-Datei anzubinden, müssen Sie ein einfaches Objekt dafür notieren.

Schema zur Einbindung in HTML:

<object id="Daten" data="daten.htm" width="0" height="0">
</object>

Erläuterung:

Innerhalb des <object>-Tags vergeben Sie mit dem id-Attribut wie üblich einen Namen, unter dem Sie das Objekt ansprechen und die Daten aus der anderen Datei in einer Tabelle dynamisch anzeigen können. Das Zugreifen auf die Datensätze funktioniert dabei genau so wie im nach oben Beispiel: Datei dynamisch in Tabelle einbinden. Im Attribut datafld geben Sie den Namen an, den Sie in der externen HTML-Datei im id-Attribut für jedes gleiche Feld eines Datensatzes vergeben haben, z.B. "Vorname".

 nach oben
weiter Seite Dynamische Filter (nur Microsoft)
zurück Seite Das ältere DHTML-Modell von Netscape
 

© 2007 Seite Impressum

Originaladresse dieses Dokuments: http://de.selfhtml.org/dhtml/modelle/datenanbindung.htm