掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
排他制御を実現できるDB (ID:114077)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
[歯痛さん / 2004/06/21(月) 10:39:32] > 複数のユーザーが同時に使用するのですが この時点で、Jetの採用はナンセンスと思われますので、 確かに、MSDEに移行された方が良いでしょうね。 《排他制御の罠》 http://www.naboki.net/access/achell/achell_01.html Jetで実現可能か不可能かと問われれば、「可能」ですが、 個人的には、MSDE 等を採用される事をお奨めします。 [歯痛さん / 2004/06/21(月) 13:52:55] > トランザクション機能がないMDBでは難しいのでしょうか? Jet にも『トランザクション 機能』は、実装されていますよ。 まぁ、「トランザクション ログ」はありませんけれども。 Jet であったとしても、BeginTrans 等はやはり必要とされます。 そもそも、トランザクションを張らずに mdb ファイルを更新するのは、 あまり良いコードとは言えませんし。(下記参照) 《Jet Engineのキャッシュとその制御》 http://www.canalian.com/workshop/access/JetCache.html [歯痛さん / 2004/06/21(月) 17:05:11] > adLockPessimistic(レコード単位での排他的ロック)が > サポートされているDBでないとダメということになりますでしょうか? > (jetは×、MSDEは○) Jetでも、adLockPessimistic はサポートされています。 ロック単位がレコード単位ではなく、ページ単位だというだけで。 > MDBの場合だと、FLG=1のUPDATEを複数ユーザーでほぼ同時に実行した場合 > 幾人かのユーザーが、同時にFLGをONにしたような状態に陥るときがあります。 リードキャッシュが更新されていなかったのでしょう。先述した 《Jet Engineのキャッシュとその制御》のページを参照してみてください。 ちなみに、MSDEならば常にレコード単位になるというわけでも無いので、 いずれにしても、特攻隊長まるるうさんが紹介されたURLなどを参考にして、 ロックについて十分に理解した上で、かつ、十分に実験を行った上で 採用しないと、期待した結果は得られないかと思います。 《Books Online - SQL Server のロック》 http://www.microsoft.com/japan/msdn/library/ja/acdata/ac_8_con_7a_7xde.asp 《魅惑(困惑)のSQL Server》 http://www.unisys.co.jp/club/net_view/20030129.html [特攻隊長まるるうさん / 2004/06/22(火) 19:57:25] > もっと書きますと、UPDATE の処理と表示の処理を分けます。 > つまり、2回SQL文を実行するという事です。ここは 36NET さんの書き込 > まれた内容をうまく利用すれば1回でできたりするのかな?…とも思います 更新 / データ取得等のビジネスロジックを、ストアドプロシージャとして データベース側(MSDE等)にまとめてしまうのも手かな。Jetだと無理ですけど。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.