掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
排他制御を実現できるDB (ID:114078)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
皆様 連絡が遅くなり申し訳ございません。 おかげさまで、JETでどうにか排他制御を実現することができました! ・UPDATE句を[cn.BeginTrans][cn.CommitTrans]で明示的に TRANをおこなうようにしました。 ・処理対象のチェックと、FLGのONを1つのUPDATE句でおこなうようにしまし た。(それまでは、ますSELECT句でFLGの有無をチェックし、FLGが無ければ その対象にUPDATE句を発行しFLGをONするという2つに分かれていました。) ・使用中かそうでないかの判別は上記でUPDATEされたものがあるかどうかによ りおこなうようにしました。 ・リードキャッシュを更新するようにしました。 Dim JE As New JRO.JetEngine '・・宣言部分 JE.RefreshCache cn (参考)ひとつにまとめたSQLとFLG有無判断部分 cn.BeginTrans mysql = "Update GOGO set GOGO.使用中FLG = '1', " _ & "TBLKAIIN.最終更新日時 = NOW, " _ & "TBLKAIIN.担当者 = '" + username + "' " _ & "WHERE GOGO.識別NO = '" & txt識別NO.Text & "' " _ & "and GOGO.使用中FLG = '0' " cn.Execute mysql, cnt cn.CommitTrans If cnt = 0 Then Call AFG Call BFG MsgBox "この識別NOは" + userST + "が使用中!" & Chr(13) & txt識別NO.Text.Text Call movenext Else ・ ・ 教えていただいた手法を全て適用しましたので、一体どれが効いたのかは よくわからないことと、リードキャッシュの更新をおこなうのにどの箇所が 適切なのかよくわかっていないのでやたらめったに付与している状態ではありますが、とにかくマルチユーザーで使用してもいまのところ排他が100%実現できています。 クリティカルな処理にACCESSは不向きであることはよくわかりましたので このシステムの重要度が増すようであれ、商用RDBMSに移行したいと思います。 何とは友あれ、ACCESSでも排他制御(擬似?)ができるということで とても感動しました!(よかったあ〜。) ありがとうございました。 ※MSDEは同時接続5USERという制限があるというような話を聞きましたので MSDEへの移行は見送りました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.