Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
ARRAY TO SELECTION
|
ARRAY TO SELECTION {( ArrayName ; Feldname {; ArrayName2 ; Feldname2 ; ... ; ArrayNameN ; FeldnameN}{; *} )} | ||||||||
Parameter | Typ | Beschreibung | ||||||
ArrayName | Array |
![]() |
Array, das in die Auswahl kopiert werden soll | |||||
Feldname | Feld |
![]() |
Feld, das die Array-Werte erhält | |||||
* | Operator |
![]() |
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
Produkt: 4D
Thema: Arrays
Nummer:
261
Geändert: 4D v11 SQL
Geändert: 4D v13
4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)