[[esp:extensions:mkls:find]] tdb Aplication Server

Route:


    - Funktion find()
      - Parameter
          - table
          - group
          - id
          - mode
          - select
          - index
      - Ein find() kommt nie allein!
          - Beispiel


Funktion find()

Mit der Funktion find() können beliebig viele Suchangaben gemacht werden.
Dabei werden Selektionen hierarchisch behandelt. Der Baum stellt sich wie folgt dar: Tabelle,Gruppe,Selektions-ID

Zeigen mehrere aufeinanderfolgende find() Anweisungen auf die gleiche Selektions-ID, so werden diese als Teilselektionen mit einem logischen ODER verknüpft.
Aufeinanderfolgende find() Anweisungen auf die gleiche Gruppe führen zu einer logischen UND-Verknüpfung der Selektions-IDs innerhalb der Gruppe. Das Ergebnis dieser UND-Verknüpfung steht als Eintrag ohne Selektions-ID bereit.

Beispiel:

tabelle="address" group="neukunden" id="kunden" select="Type=1" //Kennzeichen normaler Kunde tabelle="address" group="neukunden" id="kunden" select="Type=2" //Kennzeichen besonderer Kunde tabelle="address" group="neukunden" id="bestellt" select="LastOrder > 0" //Mindestens eine Bestellung durchgeführt

Es werden insgesamt 4 MKLs in tdb_find abgelegt, die drei Vollqualifizierten, so wie hier dargestellt und die folgende
tabelle="address" group="neukunden" id=""
welche letztlich die Verknüpfung der Teilmengen untereinander (mit logischem ODER) und innerhalb der Gruppe (mit logischem UND) abbildet.
Freilich ließe sich dieses Beispiel auch vereinfachen, indem die beiden Selektion auf die Selektions-ID "kunden" zu einer zusammenfassen würde (z.B. "Type IN [1,2]").
Im Anschluss kann mit jeder dieser 4 MKLs weiter verfahren werden.


Parameter

table
Dieser Parameter enthält den Namen der Tabelle, in der Datensätze gesucht bzw. markiert werden sollen.
Der Parameter table ist zwingend erforderlich.

group
Bestimmt die Gruppe, der die Markierungsliste angehören soll.

id
Die ID der Markierungsliste kann dazu verwendet werden, um bei mehreren Markierungslisten zu einer Tabelle und Gruppe, explizit auf exakt die gewünschte Teilmenge zuzugreifen.

mode
Per default ist dieser Parameter auf "findandmark" eingestellt. Ausserdem können hier noch angegeben werden: "complete", "empty", "reuse", "filter" und "fulltext".

select
Enthält die Selektionsanweisung für die Modi findandmark und fulltext, sowie die Filterbereichs-Einschränkung für den Modus "filter"

index
Wird für eine Selektion mit dem Modus "filter" benötigt und enthält den Dateinamen des zu verwendenden Indexes.


Ein find() kommt nie allein!
Die Funktion find() wird erst wirksam, wenn eine leere Parameterliste übergeben wird.
D.h. es wird immer mindestens eine find()-Anweisung mit Parametern und eine ohne benötigt.

Beispiel
VAR ADDRESS : INTEGER = openDB(getTablePath("ADDRESS")) find('table="ADDRESS" group="browser" id="teilmengeA" mode="findandmark" select="$PLZ = '+"'91126'"+"') //Teilmenge 1 bestimmen find('table="ADDRESS" group="browser" id="teilmengeB" mode="fulltext" select="Name:tdb*"') //Teilmenge 2 bestimmen find('') //Teilmenge 1 und 2 ermitteln und mit UND verknüpfen

esp:extensions:mkls:find, Rev. 6, Zuletzt geändert 2006-11-17 13:26, 724 Aufrufe
Wiki hosted for free at wikihost.org || RSS-Feed || GeboGebo 1.3.3 || 00.446 Sekunden || || PAGERANK TOOLS