Version 6.0
Die Befehle der folgenden Abschnitte, insbesondere RELATE ONE und RELATE MANY erstellen und verwalten automatische und manuelle Verknüpfungen zwischen Tabellen. Bevor Sie diese Befehle verwenden, lesen Sie im Handbuch 4th Dimension Designmodus nach, wie Sie Verknüpfungen zwischen Tabellen anlegen.
Operationen, die Verknüpfung aufrufen
Nachstehend finden Sie die Liste der Operationen, die automatisch eine Verknüpfung aufrufen und, gemäß der gewählten Verknüpfungsart, die aktuelle Auswahl der verknüpften Tabelle ändern:
Daten eingeben
Datensätze auf dem Bildschirm in Ausgabeformularen anzeigen
Berichte erstellen
Operationen, wie Such- und Sortierläufe oder Formeln auf Auswahl anwenden.
Befehle, wie QUERY oder APPLY TO SELECTION.
Zur Leistungsoptimierung macht 4th Dimension beim Einrichten von automatischen Verknüpfungen nur einen Datensatz zum aktuellen Datensatz für die Tabelle. Der Datensatz wird für jede der oben aufgelisteten Operationen folgendermaßen geladen:
Wählt eine Verknüpfung nur einen Datensatz aus einer verknüpften Tabelle, wird dieser Datensatz von der Festplatte geladen.
Wählt eine Verknüpfung mehrere Datensätze aus einer verknüpften Tabelle, wird für diese Tabelle eine neue Datensatzauswahl erstellt, der erste Datensatz dieser Auswahl wird von der Festplatte geladen.
Wir nehmen als Beispiel eine Datenbank mit zwei Tabellen, die miteinander verknüpft sind.
Laden Sie einen Datensatz der Tabelle [Mitarbeiter], wird der entsprechende Datensatz der Tabelle [Firmen] geladen. Der Inhalt des Datensatzes der Tabelle [Firmen] steht dem Datensatz der Tabelle [Mitarbeiter] zur Verfügung. Die aktuelle Auswahl der verknüpften Tabelle besteht also aus einem einzigen Datensatz, dem der Firma, zu der der Mitarbeiter gehört.
Wollen Sie einen Datensatz der Tabelle [Firmen] ändern, werden alle Mitarbeiter dieser Firma, die in der Mitarbeitertabelle gespeichert sind, in den Arbeitsspeicher geladen. Die aktuelle Auswahl der verknüpften Tabelle besteht also aus allen Mitarbeitern, die für diese Firma arbeiten.
Eine Verknüpfung kann eine Viele-zu-Eine-Relation oder eine Eine-zu-Viele-Relation sein. Viele Mitarbeiter können zu einer Firma gehören und eine Firma kann viele Mitarbeiter haben.
Es ist nicht immer möglich, dass die Tabelle ein einmaliges Datenfeld enthält, das für die Verknüpfung geeignet ist. So kann beispielsweise in der Tabelle [Firmen] das Datenfeld Name mehrere Firmendatensätze mit demselben Wert haben. Dieses Problem umgehen Sie, indem Sie ein einmaliges Feld einrichten, z.B. die Firmennummer und die Verknüpfung zu diesem Feld ziehen.
Folgende Tabelle zeigt Befehle, die beim Laden von Datensätzen mit automatischen Verknüpfungen arbeiten. Alle Befehle verwenden vorhandene automatische Viele-zu-Eine-Verknüpfungen. Nur die mit Ja gekennzeichneten Befehle verwenden automatische Eine-zu-Viele-Verknüpfungen.
Befehl | Eine-zu-Viele Relation |
ADD RECORD | Ja |
ADD SUBRECORD | Nein |
APPLY TO SELECTION | Nein |
DISPLAY SELECTION | Nein |
EXPORT DIF | Nein |
EXPORT SYLK | Nein |
EXPORT TEXT | Nein |
MODIFY RECORD | Ja |
MODIFY SUBRECORD | Nein |
MODIFY SELECTION | Ja (bei der Dateneingabe) |
ORDER BY | Nein |
ORDER BY FORMULA | Nein |
QUERY BY FORMULA | Ja |
QUERY SELECTION | Ja |
QUERY | Ja |
PRINT LABEL | Nein |
PRINT SELECTION | Ja |
REPORT | Nein |
SELECTION TO ARRAY | Nein |
SELECTION RANGE TO ARRAY | Nein |
Verknüpfungen über Befehle aufrufen
Automatische Verknüpfung heißt nicht, dass ein bzw. mehrere verknüpfte Datensätze für eine Tabelle bereits ausgewählt werden, weil ein Befehl einen Datensatz lädt. In manchem Fällen müssen Sie die verknüpften Datensätze explizit mit den Befehlen RELATE ONE oder RELATE MANY aufrufen, um darauf zugreifen zu können.
Einige der oben aufgeführten Befehle, z.B. die Suchbefehle laden den aktuellen Datensatz nach Beenden des Vorgangs. In diesem Fall wählt der geladene Datensatz nicht automatisch den verknüpften Datensatz. Sie müssen also, wenn Sie auf die verknüpften Daten zugreifen wollen, die Datensätze explizit mit RELATE ONE oder RELATE MANY aufrufen.
Referenz
CREATE RELATED ONE, GET SERIAL PORT MAPPING, OLD RELATED MANY, OLD RELATED ONE, RELATE MANY, RELATE MANY SELECTION, RELATE ONE, RELATE ONE SELECTION, SAVE OLD RELATED ONE, SAVE RELATED ONE, SET AUTOMATIC RELATIONS.