TurboPL Referenz

MarkTable Prozedur

Top  Previous  Next

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