[Inhalt] [Zurück] [Weiter] [Thema] [Index]

Search()


Syntax:

Search (Relation R, String s [, String index]) : Tupel
R: Relation, die durchsucht werden soll
s: Muster, nach dem gesucht werden soll
index: optional der zu benutzende Schlüssel (nicht für dBase)

Beispiel:

t := Search(stamm, "Bestadt")

Beschreibung:

Sucht das Tupel, das auf das Muster s passt. Dazu wird als Voreinstellung der Schlüsselindex oder der Sortierindex herangezogen, der vorher erstellt wurde (siehe CreateIndex() und CreateSortIndex()). Sind mehrere passende Tupel vorhanden, dann wird eines (aber nicht ein bestimmtes) geliefert. Ist kein passendes Tupel vorhanden, so wird ein invalid Tupel zurückgegeben.

Da key ein String ist, muss bei Nicht-String-Feldern auf das Format geachtet werden. Für numerische Felder muss key dem Format des Feldes entsprechend formatiert sein, also z.B. 13.70, falls nach der Zahl 13.7 gesucht werden soll und das Format des Feldes 5.2N ist. Für Datumsfelder ist das Format JJJJMMTT und für Zeitfelder das Format HH:MM:SS zu verwenden. Siehe dazu die Funktionen RStr() und ZPStr().

Statt nach dem voreingestellten Index kann auch nach einem beliebigen Index gesucht werden. Der Feldname (oder die Feldnamen) wird dazu als Parameter index übergeben.

Wenn sich der Schlüssel über mehrere Felder erstreckt, dann werden die einzelnen Felder im Muster mit + getrennt. Beispiel:

       tup := Search (R, "3001005+19902306", "DBMSNR+DATVON")
    

Wenn einem Index eine Tilde (~) vorangestellt wird, erfolgt die Suche ohne Berücksichtigung der Groß-/Kleinschreibung. Beispiel:

       tup := Search (R, "igelsheim+w00", "~ORT+GEBERNR")
    
Es wird auch ein Tupel mit Ort= Igelsheim und Geber= W00 gefunden.

Wenn R eine Memory-Relation ist (siehe NewMemRelation()), so liefert Search unmittelbar das Tupel aus R (also keine Kopie). Änderungen auf diesem Tupel wirken sich also direkt auch auf R aus.

Siehe auch SearchAll().



toposoft 19.04.2024