DelphiでOracleDBにSQLを発行した際、長時間の待ちが発生している場合には発行したSQLをキャンセルしたいと思っています。
解決方法として調べた結果、TTimer等で一定時間経過後にOCIBreakを発行すれば良いらしいということまではわかりました。
しかし、具体的な資料等が見つからず、OCIBreakの使用方法も全くわからない状態です。
OCIBreakの使用方法(又は代替方法)を教えて頂けないでしょうか。
宜しくお願い致します。
■使用環境
Delphi7
WinXP Pro
Oracle9
返信がないところをみると、やはり難しいのでしょうか。。。
又は、そもそも根本的に何かが間違っている…?
ちなみに、OCIBreak()云々というのは、以下の資料から読み取りました。
http://hp.oracle.co.jp/mc3/pdf/3.0.RAC-Client.pdf
TSQLConnection.Closeとかじゃ駄目ですよね。。。
どうぞお知恵をお貸し下さい。
宜しくお願い致します。
この辺は?
http://www.oracle.co.jp/forum/thread.jspa?threadID=28000406
ご無沙汰してます。
-----
ささ様
貴重な情報ありがとうございます。
が、そもそもそこまで至っていません。
DelphiでOCI関数(OCIBreakに限らず)について記載しているWebサイトや書籍等に心当たりがありましたら、宜しくお願い致します。
-----
あれから2週間・・・3週間・・・経ってしまいました。
ずっとコレを考えているわけではありませんが、未だわからない状況です。。。
とりあえず、OCI関数を使用したSQL文の発行から・・・と思って試行錯誤しているのですが、、、それさえも上手く動いてくれません。。
というか、コンパイルさえ。。。
Delphi以外の資料なら転がっているのですが、Delphiでは全く。。
----
ここまで書いてふと思ったのですが、Sessionのタイムアウトを設定した場合、長時間の参照、更新時に規定時間を超過した場合にエラーで返ってきてくれたりはしないのでしょうか。。。?
とりあえず、近日中に試してみたいと思います。
-----
取り急ぎ?近況報告 + 泣きつきでした;
今はRemObjectsに回収されてしまいましたが
da-softでDelphiからOCIを直接コールしているコンポーネントが
あります。(英語ですが..)
http://www.da-soft.com/products/products.html
このページのNCOCI8がそうです。
昔(2000年くらいだったか)はソースコードが添付されて
参考にした記憶があります。