Q102:複数検索ルーチンを作っている場合で、ある一つの検索しか通らない場合、startUpdateを各検索ルーチンにセットすることは可能でしょうか?
A102:
StartUpdate,FinishUpdateは『今から検索する結果(ResultSet)を利用した更新を行う/終了する』ことを宣言するものです。
@StartUpdate
A更新の対象としたいデータをSelectする
BUpdateRow等のメソッドでAのSelect結果のテーブルデータを更新
CFinishUpdate
の順で行います。
AでSelectしたテーブルデータはFinshUpdateが宣言されるまで保持されるため、非常に大量のデータをSelectした場合、処理速度に影響が出る恐れがあります。@〜Cはなるべく連続して行い、FinishUpdateを小まめに宣言して頂くのが理想です。FinishUpdateの実行により保持していた検索結果データは開放されます。
直前にSelectした結果に対しての更新処理ですので、例えばprojectとtaskの2つのテーブルがあり、
StartUpdate
Select * from task
Select * from project
UpdateRow
・・・
とした場合、Projectテーブルからの検索結果が更新対象となります。
ご質問の意味が、複合した検索結果に対して更新をしたいということであれば、検索文を工夫して頂くことになりますし、StartUpdateを一箇所でなく各箇所に配置して良いかということであれば、FinishUpdateと組み合わせて適切に配置して頂く方がむしろ理想的です。