4

以下のクエリについて、誰か助けてくれたり、提案をくれたりできますか?

Web フォーム (議事録) と、この Web ページにアクセスして自分のエリアを更新する必要がある 8 人のユーザーがいます。ユーザーは更新する領域が複数ある場合があり、基本的に、ユーザーが使用しているときに可能であれば Web ページをロックダウンして、joe bloggs が完了するまで他のユーザーがこの Web ページを更新できないようにしたいと考えています。

サイトをそのユーザー グループのみに制限するように Active Directory セキュリティ グループを設定していますが、上記の解決策を考える必要がありますか?

Web コントロールまたは SQL 経由でこれを行う方法はありますか?

4

3 に答える 3

2

There must be better ways to do it. However, Is it possible for you to introduce a sql table column similar to "UpdateInProgress" (bit). Any update process sees that column, If 0 then It updates to 1 and after It saves the changes and updates back to 0 so that the form is available for other to update. If update process sees 1, It can't update the web form because update is in progress.

I also suggest to introduce another column named "UpdateInProgressBy" to check who has opened it for editing.

于 2012-06-28T13:09:42.897 に答える
2

まず第一に、ユーザーがデータを読み取り、それをページに取り込み、変更し、書き戻そうとする瞬間から大きな時間がかかることに注意する必要があります。したがってlock、SQL のコマンドについて話しているのではなく、ミリ秒単位で発生し、スレッドの同期に役立つその他のロックについて話しているわけではありませんが、ここでは、人とその書き込みを同期する必要があります。

ユーザーが何らかの理由でページを離れた場合にも問題があり、これによりデータが永久にロックされる可能性があります.

この問題は、2 つのアプローチで解決できます。

簡単なもの、ユーザーがデータを保存しようとするとき、同じデータが途中で変更されたかどうかを確認し、警告するか、マージダイアログを表示するか、プログラムでマージするか、または同様のことを行う必要があります-私はあなたが何を獲得したかわかりません.

難しい方法は、データを読み取ったり変更したりするページを常に監視し、この監視結果をデータベース内の共通テーブルに保持することです。ユーザーがページにアクセスして滞在した場合、残りのユーザーは警告を受けて読み取りますユーザーが行くまで、データのみ。

このモニターは javasript で作成する必要があり、ユーザーがページを放棄した場合でも認識できる必要があります。

于 2012-06-28T13:15:54.623 に答える
0

トランザクション分離レベルを次のように設定しますSERIALIZABLE

詳細については、次のリンクを確認してください:http: //msdn.microsoft.com/en-us/library/ms173763.aspx

于 2012-06-28T13:02:45.520 に答える