[seasar-dotnet:892] VERSION_NOの扱いについて
五十嵐 大士
[E-MAIL ADDRESS DELETED]
2008年 7月 22日 (火) 19:01:47 JST
お世話になります。五十嵐と申します。
DBFlute-V0.7.6を利用して開発しております。
レコードの排他制御をVERSION_NOで行おうとしております。
UPDATE処理でVERSION_NO違いがあれば、
「他の端末からも変更がありました。上書きしますか?」
のようなメッセージを出力し、YESであれば上書き処理を行う予定です。
※上書き処理はBehaviorのUpdateNonstrict()を利用
AユーザとBユーザが同じタイミングで同じ画面を開くとき
1)Aユーザが更新するときにVERSION_NOは1から2に登録される。
2)Bユーザが更新するときに上書き確認のメッセージが表示され、
OKしたときにVERSION_NOは2で登録される。
3)Aユーザが再度更新するときにVERSION_NOは2から3に登録するため、
上書き確認のメッセージが表示されない。
と言う現象が起こります。
現状ではVERSION_NOをメモリ中でインクリメントし、UPDATE文を発行している
と思いますが、VERSION_NOのインクリメントをUPDATE文の中で、
「VERSION_NO = VERSION_NO + 1」のように行えなえば回避可能です。
ご検討よろしくお願いいたします。
以上です。
--
株式会社ビルドシステム
五十嵐大士 <[E-MAIL ADDRESS DELETED]>
seasar-dotnet メーリングリストの案内