ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
APPLY TO SELECTION
|
APPLY TO SELECTION ( aTable ; statement ) | ||||||||
引数 | 型 | 説明 | ||||||
aTable | テーブル |
![]() |
ステートメントを適用するテーブル | |||||
statement | 命令文 |
![]() |
1行のコードで記述されたメソッド | |||||
APPLY TO SELECTION は、aTableのカレントセレクションに対してstatementを適用します。statementは1行のステートメントまたはメソッドのどちらでも構いません。statementがaTableのレコードを修正した場合、そのレコードをディスクに保存されます、レコードを修正しない場合には保存しません。カレントセレクションが空の場合、APPLY TO SELECTION は何も行いません。リレーションが自動であれば、statementはリレート先のテーブルのフィールドを含むことができます。
警告: 引数($1...$n) はstatement 引数ではサポートされていません。
APPLY TO SELECTION は、カレントセレクションの情報 (例えば合計等) を求めるため、あるいはセレクション中のレコードを修正するため (例えばフィールドの頭文字を大文字に変える等) に使用します。このコマンドをトランザクション内で使用されている場合、トランザクション処理が取り消されると、すべての変更は無効とされます。
4D Server: statementに渡されるコマンドはサーバでは実行されません。セレクションの各レコードは修正のためローカルのワークステーションに送り返されます。
APPLY TO SELECTION を実行している間、処理の進捗を表すサーモメータが表示されます。APPLY TO SELECTION を呼び出す前に、MESSAGES OFF を使用してサーモメータの表示を取り消すことができます。サーモメータが表示されると、ユーザは処理をキャンセルすることができます。
以下の例題はテーブル [Employees] 中のカレントセレクションのレコードを大文字に変更します:
APPLY TO SELECTION([Employees];[Employees]Last Name:=Uppercase([Employees]Last Name))
APPLY TO SELECTION実行中にレコードを修正して、そのレコードがロックされていると、更新は保存されません。ロックされたレコードはLockedSetと呼ばれるセットに格納されます。APPLY TO SELECTION実行後、LockedSetをテストしてロックされたレコードがなかったか確認します。以下のループはすべてのレコードが更新されるまで処理を実行します:
Repeat
APPLY TO SELECTION([Employees];[Employees]Last Name:=Uppercase([Employees]Last Name))
USE SET("LockedSet") ` ロックされたレコードのみを選択
Until(Records in set("LockedSet")=0) ` ロックされたレコードがなくなれば終了
この例題ではメソッドを使用します:
ALL RECORDS([Employees])
APPLY TO SELECTION([Employees];M_Cap)
ユーザが進捗サーモメータの停止ボタンをクリックすると、OKシステム変数に0が設定されます。そうでなければ1が設定されます。
プロダクト: 4D
テーマ: セレクション
番号:
70
変更: 4D v11 SQL
ランゲージリファレンス ( 4D v20 R7)