タイトル | : ACCESS+ODBCの時間差? |
記事No | : 14543 |
投稿日 | : 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のパラメータを色々変更してもダメでした。何か言い知恵があればご教授をお願いします。 長文にて失礼いたしました。
|