Syntax
MarkTable(Table, IndexTable: Integer; SearchExpr: String; ExtABC, Operators: String; Mask: Integer; RelTable: Integer): Integer
Kategorie
Datenbank-Befehl
Erklärung
Die Funktion MarkTable stellt die Volltextsuche für die Programmierung unter TurboPL zur Verfügung. Voraussetzung ist selbstverständlich die Existenz eines Volltextindex für die betreffende Tabelle. Über die TurboDB Studio-Oberfläche wird die Volltextsuche über den Menüpunkt Suchen/Nach Stichwörtern... des Datenfensters gestartet.
Datensätze, die der übergebenen Suchbedingung entsprechen, werden markiert. Die Anzahl der Treffer kann mit der Funktion NMarks ermittelt werden.
Table
|
Ist die Tabelle, für die eine Volltextsuche durchgeführt werden soll.
|
IndexTable
|
Ist die Stichworttabelle, die für die Suche herangezogen werden soll.
|
SearchExpr
|
Hier wird die Suchbedingung als Zeichenkette übergeben. Gesuchte Feldinhalte können dabei mit den logischen Operatoren UND, ODER und NICHT, symbolisiert durch die Zeichen , + - verknüpft werden. Die Symbole für die Operatoren können mit dem Parameter Operators der Funktion umbelegt werden. Der ODER-Operator hat dabei die niedrigste Priorität, AND und NICHT sind gleichrangig. Es können auch die Joker * und ? in der Suchbedingung erscheinen.
|
ExtABC
|
Ist eine Zeichenkette, die Erweiterungen des herkömmlichen Alphabets enthalten kann. Falls keine Erweiterung erforderlich ist, wird einfach ein Leerstring übergeben.
|
Operators
|
Hier kann eine Zeichenkette mit den anzuwendenden Zeichen für die logischen Operatoren übergeben werden. Die Vorgaben sind: ',' für UND, '+' für ODER und '-' für NICHT. Soll die Vorgabe erhalten bleiben, hier einfach einen Leerstring übergeben.
|
Mask
|
Wird zur Zeit nicht benutzt. Übergeben Sie hier einfach 0.
|
RelTable
|
Name der Relationstabelle für die aktuelle Abfrage. Da zwischen Table und IndexTable theoretisch mehrere Relationen bestehen können muss hier angegeben werden, auf welche sich die Auswertung beziehen soll. Diese Relationstabelle hat den selben Namen wie das betreffende Relationsfeld in Table.
|
Das Funktionsergebnis ist im Erfolgsfall 0 oder einer der folgenden Fehlernummer:
201
|
Ungültige Index-Tabelle
|
202
|
Ungültige Relation
|
203
|
Schließende Klammer erwartet
|
204
|
Ungültiges Zeichen
|
Beispiel
Der folgende Aufruf sucht im Volltextindex, der für die Tabelle LITERATUR in Form der Stichworttabelle VTINDEX erstellt wurde, nach einem Eintrag, der die Begriffe Anhalter und Marvin enthält, aber nicht den Begriff ADAC.
ActivateForm("LITERATUR.Formular")
DelMarks(LITERATUR)
MarkTable(LITERATUR, VTINDEX, "Anhalter Marvin -ADAC", "", "", 0, STICHWORT)
IF NMarks(LITERATUR) > 0
SetSortOrder("Markierung")
END
Siehe auch
Volltextindex, ScanRecs, ScanRec
|