FATS - Fast Access Tree System
Inhaltsverzeichnis
Befehlsübersicht
"MC" Create Matchcode File

"MC" Create Matchcode File


Syntax des Kommandostrings:

CMND$ = "MC\{FileName}\{Flags}\{FileNo}\{Col1def}[\{Col2def}]"

FileNameName der Datei, eventuell mit Pfadangabe
(z.B. C:/DATEN/ARTIKEL.FMS oder ARTIKEL.FMS)
FlagsMomentan noch nicht benutzt
FileNoNummer der Indexdatei
Col#defDefinition der Datenspalte # (Flags, durch Komma getrennt).
Der Inhalt der entsprechenden Datenspalten wird später den Befehlen "MB", "MI" und "MD" in der durch diesen Befehl festgelegten Reihenfolge übergeben.
I#Spalteninhalt in der Suchgruppe # (1-32) indizieren. Sie können mehrere Spalten zu einer logischen Suchgruppe zusammenfassen (z.B. Vorname, Nachname).
CDer Inhalt der Datenspalte wird für wortübergreifende Suche aufbereitet, d.h. eine Suche nach "Mobiltel" findet z.B. "Mobiltelefon" und "mobil telefonieren"
NZahlen werden wie Wörter behandelt, d.h. bei einer Suche nach "150" wird z.B. auch "12150" gefunden.
LDurch diesen Schalter erhalten Wörter, die am Beginn der Datenspalte stehen, höhere Priorität innerhalb der Ergebnistabelle einer Matchcodesuche, d.h. der entsp. Datensatz wird an den Anfang der Tabelle gestellt.
K#:#Dieser Schalter aktiviert die Verwaltung eines Primärschlüssels für diese Matchcode-Indexdatei. Der erste Wert nach dem "K" steht für die Position der Datenspalte innerhalb des Schlüssels (1 == erster Teil), der zweite Wert gibt die für den Schlüssel gültige Länge der Datenspalte an.
S#:#:#Der Inhalt der Datenspalte wird Teil eines Sortierschlüssels, der gemeinsam mit einem evt. generierten Primärschlüssel in einer externen Datei gespeichert wird. Die erste Zahl hinter dem "S" gibt die Nummer des Sortierschlüssels (1-4), die zweite Zahl die Position der Spalte innerhalb des Schlüssels und die dritte Zahl die für den Schlüssel gültige Länge an.

Zusammenfassung:

Matchcode-Indexdatei definieren, erstellen und öffnen.

Beschreibung:

Dieser Befehl erstellt eine Matchcode-Indexdatei und ordnet diese der Dateinummer "FileNo" zu. Eine eventuell bereits bestehende Datei mit demselben Dateinamen wird dabei überschrieben.

Mit diesem Befehl werden bereits beim Erstellen der Matchcode-Indexdatei die wichtigsten Abfragemöglichkeiten festgelegt. So können durch die Suchgruppen (Flag "I#") mehrere logisch zusammengehörige Datenspalten in einem gemeinsamen Index erfaßt werden, damit sich Abfragen auf diesen Index bzw. diese Suchgruppe automatisch über alle diese Spalten erstrecken. Eine Matchcodedatei verwaltet bis zu 32 Suchgruppen, in denen bei späteren Abfragen "UND-verknüpft" gesucht werden kann. Es ist auch möglich, den Inhalt aller Datenspalten in nur einer gemeinsamen Gruppe zu erfassen - dabei muß lediglich bei der Definition jeder Datenspalte die Suchgruppe 1 ("I1") angegeben werden.

Das folgende Beispiel soll die Verwendung der Suchgruppen verdeutlichen:

DatenspalteCol#defBemerkung
KD-NrI1,C,NDie Kundennummer wird in der ersten Suchgruppe ("I1") indiziert. Eine wortübergreifende Suche ist erwünscht ("C") & numerische Bestandteile der Nummer sollen nicht als Zahlen behandelt werden ("N"), dadurch wird bei der Eingabe von "1230" auch "812 3044" gefunden.
NameI2Die Datenspalten Name und Vorname werden in der zweiten Gruppe ("I2") indiziert.
VornameI2
StraßeI3Straße, PLZ & Ort kommen in die gemeinsame Suchgruppe 3 ("I3"), dadurch ist bei einer Suchmaske nur ein Eingabefeld für die Adresse nötig.
PLZI3
OrtI3
InformationenI4Informationen werden in Gruppe 4 indiziert.

Der Kommandostring des obigen Beispieles:

CMND$ = "MC\kunden.fms\\1\I1,C,N\I2\I2\I3\I3\I3\I4"

Nachdem die Datei mit diesem Befehl erstellt wurde, werden die Inhalte der Datenspalten mit Hilfe des Befehls  Build Matchcode (MB) in den Matchcode Index eingefügt.

Das Flag "K#:#" ermöglicht die Verwaltung eines Primärschlüssels innerhalb der Matchcodedatei. Normalerweise verwendet FATS bei der Erstellung einer Ergebnistabelle nur die Datensatznummer und gibt auch nur diese bei Abfrage- bzw. Browserbefehlen an die Applikation zurück (RECNO).
In bestimmten Situationen, wenn z.B. die physikalische Satznummer nicht bekannt ist oder nicht der beim "MB"-Befehl angegebenen ID entspricht, wird die Generierung eines Primärschlüssels notwendig. FATS Matchcode-Befehle stellen der Applikation daraufhin zusätzlich zur Datensatz- bzw. ID-Nummer auch diesen Schlüssel über die FATSKEY zur Verfügung. Bei der Verwendung dieses Flags erstellt FATS eine zusätzliche Datei mit der Datei-Extension ".FMK", die der sequentiellen Ablage des Schlüssels dient. Zusätzlich wird innerhalb der Matchcodedatei ein FATS-Index verwaltet. Der vom Matchcode benötigte Festplatten-Speicherbedarf vergrößert sich entsprechend.

Wenn Sie eine alphanumerische Sortierung der Ergebnistabelle benötigen, dann kann diese mit Hilfe des Flags "S#:#:#" realisiert werden. FATS speichert den Inhalt der mit diesem Flag markierten Datenspalten in einer externen Datei mit der Dateiextension ".FMK", um nach einer Suchabfrage anhand dieser Information eine Sortierung durchzuführen. Bei der Verwendung sequentieller Datenbestände ist es allerdings wesentlich effizienter, die Sortierung der Ergebnistabelle innerhalb der Applikation vorzunehmen, da dadurch eine doppelte Speicherung der Datenspalten vermieden wird.

Beachten Sie bei der Dateipfadangabe, daß der Backslash (\) von FATS als Trennzeichen behandelt wird und daher im Pfad durch einen normalen Schrägstrich ersetzt werden sollte.
Alternativ dazu können Sie auch das Trennzeichen umdefinieren, indem Sie dieses als erstes Zeichen im Befehlsstring angeben, z.B. CMND$ = "&MC&C:\ARTIKEL.FMS&&1&I1,C&I2" (das Trennzeichen muß ein ASCII-Zeichen kleiner als 48 sein).

Dieser Befehl gehört zur Gruppe der Matchcode-Befehle und wird nur in der erweiterten Version von FATS unterstützt.

Rückgabe:

ERRORCODE:Fehlercode oder 0 (kein Fehler)
RECNO:undefiniert
FATSKEY:undefiniert

Beispiel:

Erstellen einer Matchcodedatei mit 3 Suchgruppen:

CMND$ = "MC\ARTIKEL.FMS\\1\I1\I2\I3"

Nach dem erfolgreichen Erstellen der Datei können Sie mit der Dateinummer 1 über den Befehl "MB" diesen Matchcode-Index aufbauen.

 BASIC Beispiel
 Pascal Beispiel
 C Beispiel

Siehe auch:

 "O" Open Indexfile; Seite 4-88
 "K" Close Indexfile; Seite 4-43
 "Y" Auto Refresh; Seite 4-113


 

© 2008  GCS Software, Udo Gertz