4D Server und Mengen

4D - Documentation   Français   English   German   4D Server, Inhalt   Index   Back   Previous   Next

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:

CREATE EMPTY SET

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.

CREATE SET

CREATE SET FROM ARRAY

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.

CLEAR SET

ADD TO SET

REMOVE FROM SET

Is in set

Records in set

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.

DIFFERENCE

INTERSECTION

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.


4D - Documentation   Français   English   German   4D Server, Inhalt   Index   Back   Previous   Next