entitySelection.drop( ) メソッドは、データストア内でデータクラスにリレートされているテーブルのエンティティセレクションに所属しているエンティティを削除します。エンティティセレクションはメモリ内に残ります。
注: エンティティの削除は恒久的なものであり、取り消しはできません。ロールバックで戻すことができるように、このアクションはトランザクション内で呼び出すことが推奨されています。
entitySelection.drop( ) の実行中にロックされたエンティティに遭遇した場合、そのエンティティは削除されません。デフォルトでは、メソッドはエンティティセレクション内の全てのエンティティを処理し、エンティティセレクション内にドロップ不可なエンティティを返します。最初に遭遇したドロップ不可なエンティティでメソッドの実行を止めたい場合は、mode 引数にdk stop dropping on first error 定数を渡します。
dk stop dropping on first error オプションを使用しない場合の例:
C_OBJECT($employees;$notDropped)
$employees:=ds.Employee.query("firstName=:1";"S@")
$notDropped:=$employees.drop()
If($notDropped.length=0)
ALERT("You have dropped "+String($employees.length)+" employees")
Else
ALERT("Problem during drop, try later")
End if
dk stop dropping on first error オプションを使用した場合の例:
C_OBJECT($employees;$notDropped)
$employees:=ds.Employee.query("firstName=:1";"S@")
$notDropped:=$employees.drop(dk stop dropping on first error)
If($notDropped.length=0)
ALERT("You have dropped "+String($employees.length)+" employees")
Else
ALERT("Problem during drop, try later")
End if