リモートデータベース(MsSql)と複数のWindows/Webクライアントを持つ自動化プロジェクトがあります。クライアントアプリケーションは、テーブル上の適切な行をチェックして選択し、その行を操作するために予約済みとしてマークします。
- 別のクライアントが同じ行を選択する前に、値を簡単に取得して選択した行を更新するにはどうすればよいですか?そのためにどのようなオプションがありますか?
TransactionScope
トランザクションブロック内で(異なるテーブルに対して)複数のselect-updateステートメントを実行したい場合、その目的で使用できますか?
編集:映画のチケットシステムを想像してみましょう(私のものはもう少し複雑です)。ユーザーは座席を選択してチケットを購入します。このユーザーの席を2分間予約して、購入に十分な時間を与えたいと思います。2分後、他のユーザーも利用できるようになります。行を更新する前に、selectクエリを実行して、最初の空いているシートを見つけます。私の質問は、同じユーザーのselectステートメントとupdateステートメントの間の少しの時間についてです。防止したい:User1のselectステートメントが実行され、その時点でUser1がシートを予約する前にUser2が同じselectを実行します。