4D v16.3

SELECTION TO ARRAY

Home

 
4D v16.3
SELECTION TO ARRAY

SELECTION TO ARRAY 


 

SELECTION TO ARRAY {( Feld | Tabelle ; ArrayName {; Feldname ; ArrayName {; Feldname2 ; ArrayName2 ; ... ; FeldnameN ; ArrayNameN}}{; *})} 
Parameter Typ   Beschreibung
Feld | Tabelle  Feld, Tabelle in Feld zum Holen von Daten oder Tabelle zum Holen von Datensatznummern
ArrayName  Array in Array, das Feldwerte oder Datensatznummern erhalten soll
Feldname  Feld in Wiederzufindendes Feld in Array
ArrayName  Array in Array zum Empfangen von Felddaten
Operator in Auf Ausführung warten

Der Befehl SELECTION TO ARRAY erstellt ein oder mehrere Arrays und kopiert Daten in Feldern oder Datensatznummern aus der aktuellen Auswahl in die Arrays.

SELECTION TO ARRAY gilt für die Auswahl der Tabelle, die im ersten Parameter (Tabellenname oder Feldname) angegeben ist. Damit können Sie:

  • Werte aus einem oder mehreren Datenfeldern laden.
  • Mit der Syntax ...;[table];array;... Datensatznummern laden.
  • Werte aus verknüpften Datenfeldern laden, wenn zwischen den Tabellen eine automatische Viele-zu-Eine Verknüpfung besteht oder zuvor SET AUTOMATIC RELATIONS aufgerufen wurde, um manuelle Viele-zu-Eine Verknüpfung zu automatisieren. In beiden Fällen werden Werte aus Tabellen mit mehrstufigen Viele-zu-Eine Verknüpfungen geladen.

Jedes Array erhält den Typ des Datenfeldes.

Wenden Sie SELECTION TO ARRAY auf ein Feld vom Typ Zeit an, müssen Sie beachten, dass diese Befehle nur ein Array vom Typ Zeit anlegen, wenn für das Array noch kein anderer Typ definiert wurde. So bleibt zum Beispiel im folgenden Kontext myArray ein Array vom Typ Lange Ganzzahl:

 ARRAY LONGINT(myArray;0)
 SELECTION TO ARRAY([myTable]myTimeField;myArray)

Datensatznummern werden in ein Array vom Typ Lange Ganzzahl geladen.

Übergeben Sie den Parameter *, führt 4D die entsprechende Zeile der Anweisung nicht sofort aus, sondern legt sie stattdessen in den Speicher; auf diese Weise können Sie Zeilen, die mit * enden, stapeln. Die auf Ausführung wartenden Zeilen werden durch eine abschließende Anweisung SELECTION TO ARRAY ohne den Parameter * ausgeführt. Aus diesem Grund lässt sich der Befehl jetzt ohne weitere Parameter aufrufen.
Die Arraytypen werden beim Ausführen der letzten Zeile (ohne *) geprüft.
Analog zum Befehl QUERY können Sie so eine komplexe Anweisung in eine Reihe von Zeilen aufteilen, die leichter zu lesen und zu pflegen ist. Sie können auch Anweisungen dazwischen einfügen oder ein Array innerhalb einer Schleife anlegen. Weitere Informationen dazu finden Sie im 2. Beispiel des Befehls ARRAY TO SELECTION.

4D Server: SELECTION TO ARRAY wurde für 4D Server optimiert. Jedes Array wird auf dem Server erstellt und dann komplett auf den Client-Rechner übertragen.

WARNUNG: SELECTION TO ARRAY erstellt u.U. umfangreiche Arrays, je nach der Größe der aktuellen Auswahl bzw. Typ und Umfang der zu ladenden Daten. Da Arrays im Speicher bleiben, empfehlen wir, das Ergebnis nach Ende des Befehls zu testen. Prüfen Sie die Größe jedes resultierenden Array oder sichern Sie den Aufruf dieses Befehls mit einer Projektmethode ON ERR CALL.

Hinweis: Nach Aufrufen von SELECTION TO ARRAY bleiben die aktuelle Auswahl und der aktuelle Datensatz gleich, der aktuelle Datensatz wird jedoch nicht länger geladen. Benötigen Sie die Werte der Datenfelder im aktuellen Datensatz, verwenden Sie nach Aufrufen von SELECTION TO ARRAY den Befehl LOAD RECORD.

Im folgenden Beispiel besteht eine automatische Verknüpfung von der Tabelle [People] zur Tabelle [Company]. Die beiden Arrays asLastName und asCompanyAddr werden gemäß der Anzahl der in der Tabelle [People] ausgewählten Datensätze dimensioniert und enthalten Informationen aus beiden Tabellen:

 SELECTION TO ARRAY([People]Last Name;asLastName;[Company]Address;asCompanyAddr)

Folgendes Beispiel gibt die Datensatznummern von [Clients] im Array alRecordNumbers zurück und die Datenfeldwerte aus [Clients]Names im Array asNames:

 SELECTION TO ARRAY([Clients];alRecordNumbers;[Clients]Names;asNames)

Dasselbe Beispiel können Sie auch so schreiben:

 SELECTION TO ARRAY([Clients];alRecordNumbers;*)
 SELECTION TO ARRAY([Clients]Names;asNames;*)
 SELECTION TO ARRAY



Siehe auch 

ARRAY TO SELECTION
LONGINT ARRAY FROM SELECTION
MULTI SORT ARRAY
ON ERR CALL
SELECTION RANGE TO ARRAY
SET AUTOMATIC RELATIONS

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays
Nummer: 260

This command can be run in preemptive processesIm remote Modus anderes Verhalten

 
GESCHICHTE 

Erstellt: < 4D v6
Geändert: 4D v13

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)