Webgate Anywhere 4.0 - Abfragesprachen-Referenz
table

7. table

Allgemein


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.

Syntax

Die Tabelle, welche abgefragt werden soll wird an den Query-Typen, durch Doppelpunkt getrennt, angehangen, z.B.

<tml:query type="table:persons"/>

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:

<tml:query type="table:persons>city='Berlin'</tml:query>

Hier wird das Ergebnis der Abfrage auf Zeilen reduziert, deren Spalte "city" den Wert "Berlin" enthält.

Beispiele

Wie bereits erwähnt sind die Tabellenzeilen des Ergebnisses über WGAPI-Funktionen editierbar. Z.B:

<tml:action id="resetzins">
var con = this.content();
con.setItemValue("zinssatz", 0);
con.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 generiert 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 Methode "save" gespeichert.

Eine Abfrage kann auch über folgende Syntax direkt über die WGAPI durchgeführt werden:

db(<Datenbankname>).query("table:<Tabelle>", <Where-Klausel>,  <QueryParameters oder null>);

Die Where-Klausel muss ohne das SQL-Keyword "where" angegeben werden. Also z.B. "zinsatz > 2". Die Query-Parameter werden als Map übergeben und sind optional.


<< xpath lucene >>