4D v13.4SELECTION TO ARRAY |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v13.4
SELECTION TO ARRAY
|
SELECTION TO ARRAY {( field | table ; array {; aField ; array {; aField2 ; array2 ; ... ; aFieldN ; arrayN}}{; *})} | ||||||||
引数 | 型 | 説明 | ||||||
field | table | フィールド, テーブル |
![]() |
データを取得するフィールドまたは レコード番号を取得するテーブル | |||||
array | 配列 |
![]() |
フィールド値またはレコード番号を受け取る配列 | |||||
aField | フィールド |
![]() |
配列に値を取得するフィールド | |||||
array | 配列 |
![]() |
フィールドデータを受け取る配列 | |||||
* | 演算子 |
![]() |
実行をスタックする | |||||
SELECTION TO ARRAYコマンドは、1つ以上の配列を作成し、カレントセレクションのフィールドデータやレコード番号を配列にコピーします。
SELECTION TO ARRAYコマンドは第一引数 (テーブル参照またはフィールド参照) で指定されたテーブルのセレクションに適用されます。SELECTION TO ARRAYは以下のことを行います:
各配列は、そのフィールドタイプに応じてタイプ定義されます。ただし次の2つの例外があります:
レコード番号をロードする場合、配列のタイプは倍長整数となります。
* 引数を渡すと、4Dはその行の実行を遅延し、メモリに格納します。* で終わる行を使用して複数の行をスタックできます。スタックされた行は * なしのSELECTION TO ARRAY一回の呼び出しですべて実行されます。この目的のため、このコマンドを引数なしで呼び出すことができます。
これにより、QUERYコマンドのように、複雑な文を複数の行に分割して記述することができ、可読性が向上します。また途中の行の挿入も容易です (ARRAY TO SELECTION コマンドの例題2参照)。
4D Server: SELECTION TO ARRAYコマンドは4D Server用に最適化されています。各配列はサーバ上で作成され、配列全体がクライアントマシンに送信されます。
警告: SELECTION TO ARRAYコマンドは、カレントセレクションの大きさやロードするデータサイズによって非常に大きな配列を作成する場合があります。配列はメモリ上に存在します。そのためコマンドの実行後、結果をテストするのは良いことです。これを行うには、作成された配列のサイズをテストするか、ON ERR CALLを使用してコマンドの呼び出しをカバーします。
注: SELECTION TO ARRAYコマンドを呼び出した後、カレントセレクションとカレントレコードは同じままですが、カレントレコードはロードされていません。もしカレントレコードのフィールド値を使いたい場合はSELECTION TO ARRAYコマンドの後にLOAD RECORDコマンドを使用してください。
以下の例は、[People]テーブルと[Company]テーブルは自動リレーションを持ちます。2つの配列asLastNameとasCompanyAddrは、[People] テーブルのセレクションの数にリサイズされ、両テーブルからのデータを受け取ります:
SELECTION TO ARRAY([People]Last Name;asLastName;[Company]Address;asCompanyAddr)
以下の例は、[Clients]レコード番号を配列alRecordNumbersに、[Clients]Names フィールドの値を配列asNames代入します:
SELECTION TO ARRAY([Clients];alRecordNumbers;[Clients]Names;asNames)
プロダクト: 4D
テーマ: 配列
番号:
260
初出: < 4D v6
変更: 4D v13
ARRAY TO SELECTION
MULTI SORT ARRAY
ON ERR CALL
SELECTION RANGE TO ARRAY
SET AUTOMATIC RELATIONS