Version 6.0.2
Sie können mit Interprozess-, Prozess- oder lokalen Mengen arbeiten. Weitere Informationen dazu finden Sie im Handbuch 4th Dimension Programmiersprache im Kapitel Mengen.
Prozessmengen: Eine Prozessmenge gilt nur für den Prozess, der die Menge erzeugt hat. Sie wird bei Beginn der Methodenausführung aktiv und bleibt es, bis die Methode vollständig ausgeführt ist. Dann ist die Prozessmenge gelöscht. Prozessmengen benötigen keine spezielle Kennzeichnung im Namen. UserSet und LockedSet sind Mengen mit reservierten Namen.
Interprozessmengen: Eine Interprozessmenge gilt für alle Prozess auf der Arbeitsstation, welche diese Menge erzeugt hat. Ihr Name beginnt mit den Zeichen <> ( "kleiner als" gefolgt von "größer als").
Hinweis: Diese Schreibweise gilt für Windows und Macintosh. Auf Macintosh kann auch das Zeichen <> benutzt werden. Tippen Sie dazu bei gedrückter Umschalt- und Wahltaste den Buchstaben v ein.
Lokale Mengen/Client Mengen: Der Name von lokalen bzw. Client Mengen beginnt mit dem Dollarzeichen ($). Auch die Systemmenge UserSet gehört zu den lokalen bzw. Client Mengen, obwohl Sie nicht mit einem Dollarzeichen $ beginnt.
Interprozess- und Prozessmengen werden auf dem Server Rechner verwaltet, lokale Mengen auf den Client-Rechnern.
Hinweis: Sie verwenden normalerweise Interprozess- und Prozessmengen, da diese die Verwaltung in der Client/Server Architektur optimieren.
4D Server und Befehle für Mengen
Dieser Abschnitt beschreibt das Verhalten von Befehlen für Mengen in der Client/Server Architektur bei der Ausführung auf dem Client Rechner:
Eine leere Menge wird auf dem Server Rechner erstellt. Eine lokale Menge wird dann über das Netzwerk vom Server-Rechner auf den Client-Rechner kopiert. Interprozess- oder Prozessmengen bleiben auf dem Server-Rechner und werden auch dort gepflegt.
Eine Menge wird auf dem Server Rechner erstellt. Eine lokale Menge wird dann über das Netzwerk vom Server-Rechner auf den Client-Rechner kopiert. Interprozess- oder Prozessmengen bleiben auf dem Server-Rechner und werden auch dort gepflegt.
USE SET
Eine lokale Menge wird zuerst vom Client-Rechner über das Netzwerk auf den Server-Rechner kopiert, und dann auf dem Server verwendet, um die Tabellenauswahl zu ändern. Interprozess- oder Prozessmengen werden lokal auf dem Server-Rechner verwendet, um die Tabellenauswahl zu ändern.
SAVE SET
Eine lokale Menge wird lokal auf dem Client-Rechner gesichert.
Interprozess- oder Prozessmengen werden zuerst über das Netzwerk vom Server-Rechner auf den Client-Rechner kopiert und dann lokal auf dem Client-Rechner gesichert.
LOAD SET
Eine lokale Menge wird von der Festplatte lokal auf den Client-Rechner geladen.
Interprozess- oder Prozessmengen werden zuerst von der Festplatte lokal auf den Client-Rechner geladen und dann über das Netzwerk vom Client-Rechner auf den Server-Rechner kopiert.
Diese fünf Befehle greifen auf lokale Mengen zu, die lokal auf dem Client-Rechner liegen. Bei Interprozess- oder Prozessmengen wird über das Netzwerk eine Anfrage an den Server-Rechner gesendet, um die Information zu erhalten bzw. die Aktion auszuführen.
UNION
Für diese drei Befehle müssen die dazugehörigen Mengenparameter auf demselben Rechner liegen. Folglich müssen entweder alle oder keiner davon lokale Mengen sein.
COPY SET
Mit COPY SET können Sie jede Menge in eine andere kopieren. Sie können zum Beispiel eine lokale Menge in eine Interprozess- oder Prozessmenge kopieren. Die Menge wird dann über das Netzwerk vom Client-Rechner auf den Server-Rechner kopiert.
4D Server und die Menge UserSet
4D Client erstellt die Menge UserSet als lokale Menge (auch wenn der Name nicht mit einem $-Zeichen beginnt), um das Erstellen der Menge zu optimieren. UserSet enthält die Datensätze, die der Anwender in einer mit den Befehlen MODIFY SELECTION oder DISPLAY SELECTION erzeugten Liste angeklickt hat.
Wollen Sie UserSet als Parameter für die Befehle DIFFERENCE, INTERSECTION oder UNION übergeben, wenn die anderen Parameter Interprozess- oder Prozessmengen sind, müssen Sie UserSet (eine lokale Menge) zuerst in eine Interprozess- oder Prozessmenge kopieren, um diese Menge mit dem Befehl benutzen zu können.
Beispiel:
ALL RECORDS ([Tabelle]) ` Lass den Benutzer einige Datensätze auswählen MODIFY SELECTION ([Tabelle];*) ` Prüfe, ob der Benutzer einige Datensätze ausgewählt hat If (Records in set("UserSet")>0) ` Suche die Datensätze, die auszuschließen sind QUERY([Tabelle];[Tabelle]Flag#0) ` Erstelle eine Menge aus der sich ergebenden Auswahl CREATE SET([Tabelle];"auszuschließen") If (Application type = 4D Client) ` UserSet ist lokale Menge, kopiere sie in eine nicht-lokale Menge COPY SET ("UserSet";"Benutzerauswahl") ` über das Netzwerk kopiert ` Rufe DIFFERENCE auf und übergebe 3 nicht-lokale Parameter vom Typ Menge DIFFERENCE ("Benutzerauswahl";"auszuschließen";"Benutzerauswahl") Else ` Rufe DIFFERENCE DIFFERENCE ("UserSet";"auszuschließen";"Benutzerauswahl") End if CLEAR SET("auszuschließen") USE SET("Benutzerauswahl") CLEAR SET("Benutzerauswahl") End if
Sie können die Operation auch mit folgendem Code ausführen:
ALL RECORDS ([Tabelle]) ` Lass den Benutzer einige Datensätze auswählen MODIFY SELECTION ([Tabelle];*) ` Prüfe, ob der Benutzer einige Datensätze ausgewählt hat If (Records in set("UserSet")>0) ` Suche die Datensätze, die auszuschließen sind QUERY([Tabelle];[Tabelle]Flag#0) ` Erstelle eine Menge aus der sich ergebenden Auswahl CREATE SET([Tabelle];"auszuschließen") If (Application type = 4D Client) ` UserSet ist lokale Menge, kopiere sie in eine nicht-lokale Menge CREATE SET([Tabelle];"$auszuschließen") ` kopiere vom Server auf den Client ` Rufe DIFFERENCE auf und übergebe 3 nicht-lokale Parameter vom Typ Menge DIFFERENCE ("UserSet";"$Auszuschließen";"UserSet") Else ` Erstelle eine nicht lokale Menge aus der sich ergebenden Auswahl CREATE SET([Tabelle];"auszuschließen") ` Rufe DIFFERENCE DIFFERENCE ("UserSet";"auszuschließen";"Benutzerauswahl") End if CLEAR SET("$auszuschließen") USE SET("UserSet") ` kopiere vom Client zum Server End if
Im ersten Beispiel werden drei Mengen erstellt und eine über das Netzwerk kopiert. Im zweiten Beispiel werden zwei Mengen erstellt und zwei über das Netzwerk kopiert. Wählen Sie je nach Ihrem Bedarf eine ähnliche Programmierung.
4D Server und die Menge LockedSet
LockedSet ist eine Menge, die auf dem Server-Rechner erstellt und gepflegt wird.
Referenz
COPY SET, Einführung, Einführung in Mengen.