DOBON.NET DOBON.NETプログラミング掲示板過去ログ

同時実行制御について

環境/言語:[VS.2005 C# Win2000]
分類:[.NET]

いつもお世話になっております。

同時実行制御について頭を悩ませております。
お知恵をお貸しください。

やりたいことは、同時実行(Fillしたとき以降に他のユーザーによってDBが変更されている)はメッセージを出力して、OKを選択したら、後入力優先にしたいのですがうまくいきません。
最悪MSDN「ADO.NETにおけるデータ同時実行制御の概要」にのっている”最新操作の優先”でもいいのですが、どのオブジェクトの何を変えたら”最新操作の優先”になるのでしょうか?
(デフォルトでは、オブティミスティック制御になっているようです。)

現状は、同時更新の場合Update処理でエラー(期待通り)、
メッセージを出力してOKを押下したら再度Updateしていますが、エラーではじかれてしまいます。
MSDNのサンプルをそのまま動かしているのですが、期待どおりには動きませんでした。


ご存じの方がいらっしゃいましたら、どうかお力をお貸しください。
現状、楽観的ロックになっているという事でしたら、
更新時にtimestamp列またはwhere句での全列チェックなりを行っていると思います。

>メッセージを出力して、OKを選択したら、後入力優先にしたい

にするのであれば楽観的ロックチェック時にメッセージボックスを出して、
OKを選択すればtimestamp列またはwhere句での全列チェックの部分を
updateするSQLからはずして更新すればいいのではないでしょうか?
medaka さん

返信が遅くなってすみません。

>楽観的ロックチェック時にメッセージボックスを出して、
OKを選択すればtimestamp列またはwhere句での全列チェックの部分を
updateするSQLからはずして更新すればいいのではないでしょうか?

特にプログラムでは、チェックなどは行っていないのですが、FrameWork2.0で、他ユーザーの変更を認識してエラーにしているようなんです。
データアダプタの、オプティミスティックというフラグをはずしたら、後入れ優先になりエラーにならなくなりました。

ベストなプログラミングではないかもしれませんが、当面これで開発を進めます。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板