4D v16.3SELECTION RANGE TO ARRAY |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
SELECTION RANGE TO ARRAY
SELECTION RANGE TO ARRAY
Der Befehl SELECTION RANGE TO ARRAY erstellt ein oder mehrere Arrays und kopiert Daten aus Feldern oder Datensatznummern aus der aktuellen Auswahl in die Arrays. SELECTION RANGE TO ARRAY gilt, im Gegensatz zu SELECTION TO ARRAY, die für die gesamte aktuelle Auswahl gilt, nur für den durch die Parameter Start und Ende festgelegten Bereich. Sie müssen für diesen Befehl in Start und Ende Datensatznummern übergeben. Verwenden Sie dafür die Formel 1 <= start <= end <= Records in selection ([...]). Übergeben Sie 1 <= start = end < Records in selection ([...]), werden Datenfelder bzw. die Datensatznummer des Datensatzes geladen, für den gilt Start = End. Übergeben Sie falsche Datensatznummern, führt der Befehl folgendes aus:
SELECTION RANGE TO ARRAY gilt wie SELECTION TO ARRAY für die Auswahl der Tabelle, die im ersten Parameter festgelegt wurde. Mit SELECTION RANGE TO ARRAY können Sie wie mit SELECTION TO ARRAY:
Jedes Array erhält den Typ des Datenfelds. Wenden Sie SELECTION RANGE 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) Datensatznummern werden in ein Array vom Typ Lange Ganzzahl geladen. Hinweis: Sie können den Befehl SELECTION RANGE TO ARRAY nur mit den Parametern Start und Ende aufrufen. Mit dieser speziellen Syntax können Sie für eine eingeschränkte Auswahl über den Parameter * eine gesammelte Reihe von SELECTION TO ARRAY Befehlen ausführen (siehe Beispiel 4). 4D Server: SELECTION RANGE 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 RANGE TO ARRAY erstellt u.U. umfangreiche Arrays, je nach dem in Start und Ende festgelegten Bereich 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. War der Befehl erfolgreich, ist die Größe jedes resultierenden Array gleich (Ende-Start)+1, außer der Parameter Ende ist größer als die Anzahl der Datensätze in der Auswahl. In diesem Fall enthält jedes resultierende Array (Records in selection([...])-Start)+1 Elemente. Folgender Code berücksichtigt die ersten 50 Datensätze aus der aktuellen Auswahl für die Tabelle [Invoices]. Er lädt die Werte aus dem Datenfeld [Invoices]Invoice ID und dem verknüpften Datenfeld [Customers]Customer ID. SELECTION RANGE TO ARRAY(1;50;[Invoices]Invoice ID;alInvoID; Folgender Code berücksichtigt die letzten 50 Datensätze aus der aktuellen Auswahl für die Tabelle [Invoices]. Er lädt die Datensatznummern aus [Invoices] sowie aus der Verknüpfung zu [Customers]: lSelSize:=Records in selection([Invoices]) Folgender Code erstellt, in Segmenten zu je 1000 Datensätzen, eine umfangreiche Auswahl, die nicht als ein Ganzes in Arrays geladen werden kann: lMaxPage:=1000 Die ersten 50 aktuellen Datensätze der Tabelle [Invoices] zum Laden verschiedener Arrays verwenden: // Anweisungen sammeln
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D GESCHICHTE
Erstellt: < 4D v6 ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||