- - PR -
キーボードを入力してDO〜LOOPをぬけたい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-20 15:53
お世話になります。
VisualStudio 2005 言語VisualBasic SQLServerプロジェクト で、現在作成中です。 DO LOOP文の中で、ESCキーを押すとぬける(脱出する) というのを作りたいのですが、(↓作成途中のコードです) Do If ??? Then Exit Do Using cnn As New SqlConnection("context connection=true") cnn.Open() (省略) cnn.Close() End Using End If Loop IF文にどう記述すればよいのかわかりません。 KeyCodeプロパティを使えばよいらしいのですが、 どう記述すれば良いのでしょうか? | ||||||||
|
投稿日時: 2006-05-20 16:33
えーとif文一つだけで解決できるわけではありませんので
悪しからず。 まずESCキーのイベントを受け取る必要があります。 初期状態ですとESCキー押下してもイベントを受け取れません。 イベントを受け取るためにIsInputKey等のメソッドをオーバーライドする必要があります。 IsInputKeyオーバライド参考@IT そしてKeyDown等のキーイベントを受け取り、ここでやっとdo-loopを抜け出す条件を作るという感じです。 ↓はその際の参考になるかと。 CPU負荷を消費せずタイマー割り込みを待つ方法(C#) | ||||||||
|
投稿日時: 2006-05-20 17:29
SQLServerプロジェクトということはストアド プロシージャですよね?
なので、不可能です。 | ||||||||
|
投稿日時: 2006-05-20 17:40
SQLServerのプロジェクトは作ったことが無いけれど
これがどこで動いて、誰がキーを押すのかを考えるとできないような気がする。 | ||||||||
|
投稿日時: 2006-05-20 17:48
はい、ストアドプロシージャです。 ということは、DO〜LOOPをぬけるならば、FOR 〜 NEXT を使うか、 Windowsアプリケーションで作り直すしかないということでしょうか? | ||||||||
|
投稿日時: 2006-05-20 17:53
むぅ???Exit Do の後って、実行されるの? | ||||||||
|
投稿日時: 2006-05-20 18:02
Do
If ??? Then Exit Do End If Using cnn As New SqlConnection("context connection=true") cnn.Open() (省略) cnn.Close() End Using Loop こう...ですかね? | ||||||||
|
投稿日時: 2006-05-20 18:08
どういう要求のシステムかわからないのでおおよそですが Windowsのアプリが処理制御用のデーブルに終了フラグ を立ててそれをこの更新プログラムの終了判定とすればできるかな |