C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 処理中のウインドウ表示について


(過去ログ 21 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■8888 / inTopicNo.1)  処理中のウインドウ表示について
  
□投稿者/ AKANE (1回)-(2007/10/12(Fri) 14:26:01)

分類:[VB6 以前] 

長いSQL処理を実行している間、処理中ウインドウを表示しておきたいのですが
どのように表示していいのかがわかりません。
EX.SQL処理中ウインドウを表示して、処理終了後結果用ウインドウを表示する。

どなたかわかればお教え願えないでしょうか?

宜しくお願いします。

実行環境 Windows2000+SP4 Visual Basic 6.0+SP5
引用返信 編集キー/
■8889 / inTopicNo.2)  Re[1]: 処理中のウインドウ表示について
□投稿者/ はつね (290回)-(2007/10/12(Fri) 14:46:08)
はつね さんの Web サイト
No8888 (AKANE さん) に返信
> 長いSQL処理を実行している間、処理中ウインドウを表示しておきたいのですが

基本的な考え方:
SQL処理を実行する前に処理中ウィンドウを表示して処理が終わったら閉じる。
または
処理中ウィンドウの中にSQL処理を実行するコードを書いておき、表示したら勝手にSQL処理を実行する

考慮点:
SQL処理を実行している間、その呼び出し元のスレッド(ものによってはプロセス)は処理終了待ち状態になり再描画なども行われません

考慮点対策の考え方:
SQL処理を細切れにして、SQL実行-完了間を短くして、完了したときにDoEventsする。で、それを何回か繰り返して完了
または
SQL処理を呼び出したスレッド(またはプロセス)とは別スレッド(またはプロセス)で処理中ウィンドウを開く

VB6での実現方法など:
例えば、親フォームからモードレスウィンドウで処理中ウィンドウを表示してから親フォームでSQL処理を実行する・・・・など

そんなに単純、簡単な事じゃないし、全体的な組み方とかも考慮して実現できる選択肢を探す必要があると思います。

引用返信 編集キー/
■8947 / inTopicNo.3)  Re[1]: 処理中のウインドウ表示について
□投稿者/ 魔界の仮面弁士 (470回)-(2007/10/15(Mon) 11:42:11)
No8888 (AKANE さん) に返信
> 長いSQL処理を実行している間、処理中ウインドウを表示しておきたいのですが
> どのように表示していいのかがわかりません。

こんな感じかな…?

Private WithEvents con As ADODB.Connection
Private Sub Command1_Click()
 '---------------------------------------------
 ' [処理中ウインドウ]を表示する処理を、ここに記述
 '---------------------------------------------

 ' 非同期実行のために、adAsyncExecute を指定する
 con.Execute SQL, , adCmdText Or adAsyncExecute
End Sub

' SQL 実行が終了した後に発生するイベント
Private Sub con_ExecuteComplete(……)
 '---------------------------------------------
 ' [処理中ウィンドウ]を閉じる処理を、ここに記述
 '---------------------------------------------
 ' SQL の実行後に行う処理を、ここに記述
 '(実行結果の画面表示、エラー時の対応など)
 '---------------------------------------------
End Sub
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -