|
|||||||||||||
table
Dies ist ein spezieller Abfragetyp für die "JDBC-Database with enhanced access", welcher verwendet werden kann um einzelne Datenbanktabellen in einem beabeitbaren Zustand abzufragen. Tabellenzeilen die über diesen Abfragetypen ermittelt wurden können über Methoden der WGAPI modifiziert und gespeichert werden. Die Tabelle, welche abgefragt werden soll wird an den Query-Typen, durch Doppelpunkt getrennt, angehangen, z.B.
Dieses Beispiel fragt Daten aus der Tabelle "persons" ab. Wird im Query-Tag keine weitere Einschränkung vorgenommen, so werden alle Tabellenzeilen geliefert. Stattdessen kann im Inhalt des Query-Tags jedoch eine SQL-Klausel angegeben werden, welche als WHERE-Bereich der Abfrage verwendet werden soll:
Hier wird das Ergebnis der Abfrage auf Zeilen reduziert, deren Spalte "city" den Wert "Berlin" enthält. Wie bereits erwähnt können sind die Tabellenzeilen des Ergebnisses über WGAPI-Funktionen editierbar. Am praktischsten ist diese Funktion im Zusammenhang mit Actions, welche das Dokument modifizieren, in deren Kontext ihre URL steht: <tml:action id="resetzins"> var content = this.content(); content.setItemValue("zinssatz", 0); content.save(); </tml:action> <ul> <tml:collection> <tml:query db="bank" type="table:kredite"></tml:query> <tml:foreach> <li><tml:item name="kreditname"/> - <tml:item name="zinssatz"/> <tml:button clickaction="resetzins">Reset Zinssatz</tml:button></li> </tml:foreach> </tml:collection> </ul> In diesem Beispiel werden Kreditdaten aus einer Tabelle "Kredite" ausgegeben. Jeder Kredit hat ein Feld "Zinssatz". Über den Button "Reset Zinssatz" wird die WebTML-Aktion "resetzins" aufgerufen. Diese wird im Kontext der Tabellenzeile ausgeführt, zu welcher der jeweilige Button definiert wurde. Die Aktion "resetzins" holt sich zunächst über "this.content()" das WGAPI-Objekt zur aktuellen Tabellenzeile. Dann wird über die Methode "setItemValue" die Spalte Zinssatz auf 0 gesetzt und anschliessend die Änderung über die Methofe "save" gespeichert. |
Syndicate
Dokumentationen
© Innovation Gate
|
||||||||||||