tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル ACCESS+ODBCの時間差?
投稿日: 2010/03/13(Sat) 15:48
投稿者げんさん
現在A機とB機でLANを組んで作業を分担させるVB6PGMのテストをしています。
A機にACCESSのmdbファイルが有りODBCで参照します。
B機はリモートドライブ共有でA機のmdbファイルに接続しODBCで参照してます。
作業順は
1.B機のVB6からRDOでDBに計算用データを登録後コミットで確定し、直後にwinsock(TCP)にてA機に作業終了の連絡をいます。
2.その連絡を受けA機がDB内のデータを基に計算をして結果をDBに入れてコミットし、今度はB機に連絡を入れます。
3.連絡を受けたB機がDB内を検索し、結果を画面に書き出します。
という流れを繰り返します。
問題は、それぞれコミット後に相手に連絡をいれ相手がDBを読み込むのですが、その情報が一部最新情報になっていません。(コミットが出来ていないように見える)
確認して分かったことは
1.連絡を受けて0.3秒後ぐらいまでは以前に取ってきた古い情報がえられます。
0.3〜1.0秒後は不安定です。(新旧が不確定)
1.0秒後からは新データのようですが、確実でない場合がまれにあります。
2.DBが書込み確定できていないのかと思い、コミット後にDBコネクトを切断し、直ぐ再度コネクトをしてから連絡してみましたが、結果は同じでした。
3.既存の読込みバッファがあればそれを使用してしまうかと思い、連絡受信後DBコネクトを切断し、直ぐ再度コネクトしてからDBにアクセスするとうまく行きました。
以上で原因は、なんとなく分かったのですが、今の対策処理ではDBの接続切断を繰り返すという、あまりやりたくない結果です。
DB読込み時に強制的に再度DBを見に行く設定を探しましたが見つかりません。
ちなみに現在の読み込む設定は
    Set RDOキー = RDOコネクション.OpenResultset("SQL文", , , rdExecDirect)
    RDOキー .MoveNextとRDOキー .EOF
を使って情報を得ています
ODBCのパラメータを色々変更してもダメでした。何か言い知恵があればご教授をお願いします。
長文にて失礼いたしました。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。