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

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

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

Re[3]: VB.NETから実行中のSQLをキャンセルするには(Ora)


(過去ログ 40 を表示中)

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

■20775 / inTopicNo.1)  VB.NETから実行中のSQLをキャンセルするには(Ora)
  
□投稿者/ ぐっちょん (12回)-(2008/06/16(Mon) 10:12:58)

分類:[.NET 全般] 

2008/06/16(Mon) 10:13:54 編集(投稿者)

OS:WINDOWSXP SP2
使用言語:VB.NET2005
ORACLE:Oracle9i Oracle10g

VB.NETからOracleに対してSQLを実行して、結果を表示する処理を作成しています。
重いSQLを実行した時に、結果が返ってこない為、SQLを実行している間は何も動作できない状態となります。

そこで、重いSQLが実行された時に、何らかの方法でSQL実行中にキャンセルできればと考えています。
何か良い方法、もしくは参考となるサイトがあれば教えて頂けますでしょうか?


VB6で使用しているADODB.Recordsetであれば、robjRs.CursorLocationプロパティを使用する事で、
上記の処理を実装できるようですが、同じ機能をVB.NET側では見つけられませんでした(存在しない?)

引用返信 編集キー/
■20794 / inTopicNo.2)  Re[1]: VB.NETから実行中のSQLをキャンセルするには(Ora)
□投稿者/ ネタ好き (452回)-(2008/06/16(Mon) 17:21:07)
No20775 (ぐっちょん さん) に返信
>重いSQLを実行した時に、結果が返ってこない為、SQLを実行している間は何も動作できない状態となります。

そういうときのためのマルチスレッドです。
ここは大人しくマルチスレッドプログラミングを行いましょう。
引用返信 編集キー/
■20795 / inTopicNo.3)  Re[2]: VB.NETから実行中のSQLをキャンセルするには(Ora)
□投稿者/ 鶏唐揚 (191回)-(2008/06/16(Mon) 17:29:15)
No20794 (ネタ好き さん) に返信
> ■No20775 (ぐっちょん さん) に返信
> >重いSQLを実行した時に、結果が返ってこない為、SQLを実行している間は何も動作できない状態となります。
>
> そういうときのためのマルチスレッドです。
> ここは大人しくマルチスレッドプログラミングを行いましょう。
あるいはOracle側のタイムアウト値を設定してやるのもいいかもです。

キャンセルさせたい時間に設定してやって、VB側で例外をキャッチして
Oracleエラーでタイムアウトの場合のみ「キャンセルした」ことにすれば問題ないかと思います。

引用返信 編集キー/
■20839 / inTopicNo.4)  Re[3]: VB.NETから実行中のSQLをキャンセルするには(Ora)
□投稿者/ ぐっちょん (13回)-(2008/06/18(Wed) 09:38:00)
返信遅れました。
ネタ好きさん、鶏唐揚さんありがとうございます。

>そういうときのためのマルチスレッドです。
>ここは大人しくマルチスレッドプログラミングを行いましょう。
ふむふむ、マルチスレッドプログラミングですか。
実際に試したことはないので、挑戦してみます。

>キャンセルさせたい時間に設定してやって、VB側で例外をキャッチして
>Oracleエラーでタイムアウトの場合のみ「キャンセルした」ことにすれば問題ないかと思います。
ユーザにキャンセルを行わせたいので、Oracle側のタイムアウト値を設定では、厳しいかもです。

マルチスレッドの事について調べてやってみます。ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -