4D v16.3

ARRAY TO SELECTION

Home

 
4D v16.3
ARRAY TO SELECTION

ARRAY TO SELECTION 


 

ARRAY TO SELECTION {( ArrayName ; Feldname {; ArrayName2 ; Feldname2 ; ... ; ArrayNameN ; FeldnameN}{; *} )} 
Parameter Typ   Beschreibung
ArrayName  Array in Array, das in die Auswahl kopiert werden soll
Feldname  Feld in Feld, das die Array-Werte erhält
Operator in Auf Ausführung warten

Der Befehl ARRAY TO SELECTION kopiert eine oder mehrere Arrays in eine Auswahl von Datensätzen. Alle angezeigten Datenfelder müssen zur gleichen Tabelle gehören.

Besteht zur Zeit des Aufrufs eine Auswahl, werden die Array-Elemente in der Reihenfolge des Array und der Datensätze übertragen. Gibt es mehr Elemente als Datensätze, werden neue Datensätze angelegt. Sowohl die neuen als auch die bestehenden Datensätze werden automatisch gesichert. Alle Arrays müssen dieselbe Anzahl Elemente enthalten. Sind die Arrays von unterschiedlicher Größe, wird ein Syntax Fehler generiert.

Hinweis: Da dieser Befehl neue Datensätze erstellen kann, berücksichtigt er nicht den evtl. vorhandenen Status Nur-Lesen der Tabelle. Weitere Informationen dazu finden Sie im Abschnitt Überblick zu Datensatz sperren.

Dieser Befehl führt das Umgekehrte von SELECTION TO ARRAY aus. ARRAY TO SELECTION akzeptiert jedoch nicht Datenfelder aus verschiedenen Tabellen. Das gilt auch für verknüpfte Tabellen, selbst wenn sie automatisch sind.

Ü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. All diese auf Ausführung wartenden Zeilen werden durch eine abschließende Anweisung ARRAY TO SELECTION ohne den Parameter * ausgeführt. Aus diesem Grund lässt sich der Befehl jetzt ohne weitere Parameter aufrufen.
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.

WARNUNG: Verwenden Sie ARRAY TO SELECTION mit Vorsicht, da er die Information in vorhandenen Datensätzen überschreibt. Ist beim Aufruf von ARRAY TO SELECTION ein Datensatz durch einen anderen Prozess gesperrt, wird er nicht geändert. Gesperrte Datensätze werden in die Prozessmenge mit Namen LockedSet gelegt. Diese Menge kann nach dem Ausführen des Befehls überprüft werden.

Hinweis: Dieser Befehl berücksichtigt nicht den Status Nur-Lesen bzw. Lesen-Schreiben der Tabelle zum jeweiligen Feld.

4D Server: Der Befehl wurde für 4D Server optimiert. Arrays werden vom Client-Rechner zum Server gesendet. Die Datensätze werden auf dem Server-Rechner geändert oder erstellt. Da diese Anfrage synchron bearbeitet wird, muss der Client-Rechner warten, bis die Operation erfolgreich abgeschlossen ist. Gesperrte Datensätze werden in der Multi-User bzw. Multi-Prozessumgebung nicht überschrieben.

Im folgenden Beispiel legen die beiden Arrays asLastNames und asCompanies Daten in die Tabelle [People]. Werte aus dem Array asLastNames werden in das Datenfeld [People]Last Name gelegt, Werte aus dem Array asCompanies in das Datenfeld [People]Company:

 ARRAY TO SELECTION(asLastNames;[People]Last Name;asCompanies;[People]Company)

Eine Datensatzauswahl mit den durch den Wert Option festgelegten Feldern kopieren:

 ARRAY TEXT($_name;0)
 ARRAY TEXT($_firstname;0)
 ARRAY TEXT($_cv;0)
 ARRAY PICTURE($_photo;0)
 
 SELECTION TO ARRAY([Candidate]Name;$_name;*)
 SELECTION TO ARRAY([Candidate]Firstname;$_firstname;*)
 If(withCV) //Das CV Feld laden
    SELECTION TO ARRAY([Candidate]cv;$_cv;*)
 End if
 If(withPhoto) //Das Feld Photo laden
    SELECTION TO ARRAY([Candidate]photo;$_photo;*)
 End if
 SELECTION TO ARRAY //Kopie ausführen
 
 REDUCE SELECTION([Candidate_Archive];0)
 ARRAY TO SELECTION($_name;[Candidate_Archive]Name;*)
 ARRAY TO SELECTION($_prenom;[Candidate_Archive]Firstname;*)
 If(withCV)
    ARRAY TO SELECTION($_cv;[Candidate_Archive]cv;*)
 End if
 If(withPhoto)
    ARRAY TO SELECTION($_photo;[Candidate_Archive]photo;*)
 End if
 ARRAY TO SELECTION



Siehe auch 

SELECTION TO ARRAY
Systemvariablen

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays
Nummer: 261

Dieser Befehl ändert die Systemmenge LockedSetDieser Befehl ändert die aktuelle AuswahlThis command can be run in preemptive processesIm remote Modus anderes Verhalten

 
GESCHICHTE 

Geändert: 4D v11 SQL
Geändert: 4D v13

 
ARTIKELVERWENDUNG

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