[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 メーリングリストの案内