dポイントプレゼントキャンペーン実施中!

http://oshiete1.goo.ne.jp/kotaeru.php3?q=2435971


こちらで、SQL問合せ中にプログレスバーを表示したい
という質問をしました。

ADOを非同期で実行して
実行中はループでまわして、DoEventsを行うことで
解決しました。

しかし、問合せ中のStateに5が返ってきます。
実行中なら、4のはずですよね?
(具体的には、Delete処理です。)

0 adStateClosed 閉じている
1 adStateOpen オープン
2 adStateConnecting 接続中
4 adStateExecuting 実行中
8 adStateFetching 行を取得

Openして、実行中だから、1+4で5?

ご存知の方、教えて下さい!

A 回答 (1件)

>Openして、実行中だから、1+4で5?



正解です。
参考URLにありますが、
|オブジェクトの State プロパティの値は組み合わせることができます。
|たとえば、ステートメントが実行中のときは、プロパティの値は adStateOpen と adStateExecuting の組み合わせになります。

ということになっています。

参考URL:http://msdn.microsoft.com/library/ja/default.asp …

この回答への補足

実行中は、

Do While AdoConn.State = 5
DoEvents
Loop

としましたが、変でしょうか?

Do While AdoConn.State <> adStateOpen
DoEvents
Loop

かな?
どっちでも同じでしょうか・・・。

補足日時:2006/10/02 23:29
    • good
    • 0
この回答へのお礼

ありがとうございます!!

とっても勉強になりました。

お礼日時:2006/10/02 22:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!