- 203 名前:181 mailto:sage [2009/05/26(火) 23:58:45 ]
- >>193 >>201
select .... for update してレコードが取得できたかどうかをせずに、 いきなり update 文を実行した場合、 update 文の結果(PreapredStetement#exeucte())で、0 が返って来た場合、 version_id がずれて更新できなかったのか、 そもそも、当該受注番号のレコードが、一瞬先に別ユーザによって消されたのかわからない。 select .... for update してレコードが取得できたかチェックしておいて、レコードが得られなかったら、 「他のユーザがすでに更新しました or 他のユーザがそのデータを消しました」 とエラーメッセージを出すことが出来る。 とここまで書いたが、いきなり update 文を実行して、update 文の結果が 0 だったら、 同じようなメッセージを出せばいいのか。 画面で、ユーザにもう一度画面を開いてもらい、当該受注番号のレコードが消されたら、 画面を開き直したときに、そのレコードは現れなくなるし。
|

|