掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
排他制御を実現できるDB (ID:114071)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
MSDE(正式名称はMicrosoft SQL Server 2000 Desktop Engine) 自体は使ったこと無いですが、SQL Server 2000と完全な互換性が あると言うことですので SQL Server の知識から書込みしたいと 思います。ただボクは、複雑な処理は極力避けるようにプログラム してきましたので、データベースに関して深く理解があるわけでは ありません。簡単な処理で実現できそうな方法を提案します。 トランザクション処理に関して正しく理解されたなら、データベース の整合性は取れるでしょう。ただし、お望みの機能を実現するには 多少の工夫が必要と思います。 トランザクション処理とロックの概要として次のリンクページの 内容に目を通してみてください。 http://www2p.biglobe.ne.jp/~sakurait/cstrue/chap5main.htm このページで『応答を待つロック』と言う表現の機能に近いものを 実現しようとされていると解釈しましたが、同じページでリスクが 紹介されているように、今のデータベースが目指している概念とは 違っているように思います。特に[VB.NET]などではデータベースへの 接続は非接続型となっており、ユーザがテーブルを占有する時間は 最小になるよう考えられているようです…で、 >また、UPDATEを発行せず、単に、「その行を他のものが既に参照していたら」というような >判断は可能なものでしょうか? と言う内容も含めてデータベースの機能に求めるよりは、フラグを 立てて…の処理のほうが確実だと思います。 トランザクション処理内で自分の処理対象となる条件のテーブルに フラグを立てる。但し、フラグだけでは複数ユーザがアクセスする データベースでその後も処理を続けるには何かと都合悪いです。 端末で固有の端末名やユーザ名を利用して UPDATE した方が良い でしょう。ここまでを1つのSQL文で実行してしまいます。 トランザクション処理終了。 その後(処理対象のフラグをすべて立てた後)、自分の立てたフラグ のテーブルのみ表示…などで実現できるのではないでしょうか?。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.