version 11 (Modified)
ARRAY TO SELECTION (array; field{; array2; field2; ...; arrayN; fieldN})
| 引数 | 型 | 説明 | |
| array | 配列 | コピー元の配列 | |
| field | フィールド | 配列データを受け取るフィールド |
説明
ARRAY TO SELECTION コマンドは、1つ以上の配列をレコードのセレクションにコピーします。すべてのフィールドは同一テーブルのものでなければなりません。
コマンド呼び出し時にセレクションが存在する場合、配列の並び順とレコードの並び順に基づき、配列要素はレコードに書き込まれます。要素数がレコード数よりも多い場合、新しいレコードを作成します。レコードは、既存でも新規でも、自動的に保存されます。
すべての配列は同じ要素数でなければなりません。配列のサイズが異なる場合、シンタックスエラーが生成されます。
このコマンドは、SELECTION TO ARRAY コマンドとは逆の動作を行います。しかし、ARRAY TO SELECTION コマンドは、たとえ自動リレートが設定されていても、リレートテーブルを含む他のテーブルのフィールドを使用することはできません。
警告: ARRAY TO SELECTION コマンドは、既存のレコードの情報を上書きします。十分に注意して使用してください。ARRAY TO SELECTIONコマンド実行中、レコードが他のプロセスによりロックされていると、そのレコードは更新されません。ロックされたレコードは、LockedSetというプロセスセットに入れられます。ARRAY TO SELECTIONコマンド実行後に、LockedSetセットをテストして、ロックされていたレコードの存在を知ることができます。
4D Server: このコマンドは4D Server用に最適化されています。配列はクライアントマシンからサーバへ渡され、レコードの修正や追加はサーバ上で実行されます。この処理は同期的に行われるため、クライアントマシンは処理が正常に終了するまで待機しなくてはなりません。マルチユーザ・マルチプロセス環境では、ロックされたレコードは上書きされません。
例題
以下の例は、asLastNamesとasCompaniesの2つの配列のデータを[People]テーブルにコピーします。配列asLastNamesのデータは[People]Last Nameフィールドに、配列asCompaniesのデータは[People]Companyフィールドに、それぞれ書き込まれます:
ARRAY TO SELECTION (asLastNames;[People]Last Name;asCompanies;[People]Company)
参照