version 3
SELECTION TO ARRAY (field | table; array{; field2 | table2; array2; ...; fieldN | tableN; arrayN})
| 引数 | 型 | 説明 | |
| field | table | フィールドまたはテーブル | データを取得するフィールドまたは | |
| レコード番号を取得するテーブル | |||
| array | 配列 | フィールド値またはレコード番号を取得する配列 |
説明
SELECTION TO ARRAY コマンドは、1つ以上の配列を作成し、カレントセレクションのフィールドデータやレコード番号を配列にコピーします。
SELECTION TO ARRAYコマンドは、1番目の引数として指定したテーブルのセレクションに対して適用され、次の事柄を実行します:
・1つまたは複数のフィールドから値をロードします。
・構文...;[テーブル];配列;...を用いてレコード番号をロードします。
・テーブル間にn対1の自動リレートが設定されている場合や、SET AUTOMATIC RELATIONSを事前に呼び出してn対1のマニュアルリレートを自動に変更した場合は、リレートフィールドの値をロードします。いずれの場合も、複数レベルのn対1リレートを経てテーブルから値がロードされます。
各配列は、そのフィールドタイプに応じてタイプ定義されます。ただし次の2つの例外があります:
・ASCII互換モードのとき、テキストフィールドを文字列配列にコピーした場合、その配列は文字列配列のままになります。
・時間フィールドは倍長整数配列にコピーされます。
レコード番号をロードする場合、配列のタイプは倍長整数となります。
4D Server: SELECTION TO ARRAYコマンドは4D Server用に最適化されています。各配列はサーバ上で作成され、配列全体がクライアントマシンに送信されます。
警告: SELECTION TO ARRAYコマンドは、カレントセレクションの大きさやロードするデータサイズによって非常に大きな配列を作成する場合があります。配列はメモリ上に存在します。そのためコマンドの実行後、結果をテストするのは良いことです。これを行うには、作成された配列のサイズをテストするか、ON ERR CALLプロジェクトメソッドを使用してコマンドの呼び出しをカバーします。
Note: SELECTION TO ARRAYコマンドを呼び出した後、カレントセレクションとカレントレコードは同じままですが、カレントレコードはロードされていません。もしカレントレコードのフィールド値を使いたい場合は、SELECTION TO ARRAYコマンドの後にLOAD RECORDコマンドを使用してください。
例題
1. 以下の例は、[People]テーブルと[Company]テーブルは自動リレーションを持ちます。2つの配列asLastNameとasCompanyAddrは、[People] テーブルのセレクションの数にリサイズされ、両テーブルからのデータを受け取ります:
SELECTION TO ARRAY ([People]Last Name;asLastName;[Company]Address;asCompanyAddr)
2. 以下の例は、[Clients]レコード番号を配列alRecordNumbersに、[Clients]Names フィールドの値を配列asNames代入します:
SELECTION TO ARRAY([Clients];alRecordNumbers;[Clients]Names; asNames)
参照
ARRAY TO SELECTION, MULTI SORT ARRAY, ON ERR CALL, SELECTION RANGE TO ARRAY, SET AUTOMATIC RELATIONS.