データベースの再接続について

解決


こたろう  2006-07-04 16:53:34  No: 22365  IP: 192.*.*.*

Firebird  1.5.3  <->  Delphi7
上記環境でIBDatabaseを使用中に、Lan環境の不具合などで
接続が切れた場合の、再接続ができずに困っております。

<現象例>
  1.IBDatabaseの接続先-LocalDBサーバ(Firebird)
  2.IBQuery.database-IBDatabase
  3.IBQueryのOpen  ->  成功
  4.Lanの線を抜く(強制的に切断)
  5.IBQueryのClose(Open)でエラー  ->  Tryでキャッチ
  6.Try中にLanの線を接続
  7.IBQueryのClose(Open)でエラー  <-接続されているはずでは?

7番のところで、接続されているはずなのでエラーにはならないはずでは
ないかと思うのですが、接続できずにエラーとなってしまいます。
IBQuery.freeをしてもエラーとなってしまいます。
再接続はどのように行えばよろしいのでしょうか?


また、皆さんはDBConnectionが切れた場合などの再接続はどのように行って
いるのでしょうか・・・。ご教授頂けないでしょうか。

編集 削除
HOta  2006-07-05 07:40:42  No: 22366  IP: 192.*.*.*

IBDatabaseはLocalDBサーバなのに、なぜLANを切るとエラーになるのでしょうか?

編集 削除
こたろう  2006-07-05 09:45:10  No: 22367  IP: 192.*.*.*

すみません。間違えました。
ネットワークでした・・・。(;;

編集 削除
HOta  2006-07-05 09:50:01  No: 22368  IP: 192.*.*.*

IBDatabaseのDBConnectionで再接続すればどうですか?
元が切れると、IBQueryをいくら操作しても駄目でしょう。

編集 削除
こたろう  2006-07-05 11:34:00  No: 22369  IP: 192.*.*.*

補足させて頂きます。

ネットワークから切断された時にIBDatabaseのConnectedをFalseにしてみたのですが、そこでもエラーとなってしまいます。

HOtaさんのIBDatabaseのDBConnectionを再接続するということは、IBDatabeseのConnectedをFalse→Trueにするということでしょうか?
それともIBClientDataSetを使用してDBConnectionプロパティに
IBDatabeseを設定することなのでしょうか?

よろしくお願いします。

編集 削除
えーとね  2006-07-05 13:49:06  No: 22370  IP: 192.*.*.*

ForceClose はどうでしょう。

編集 削除
こたろう  2006-07-05 14:23:28  No: 22371  IP: 192.*.*.*

一度切断されてしまいますとForceCloseでも
エラーになってしまいます。

IBDatabaseとIBQueryを使用してのDBへの再接続は
可能なのでしょうか?

編集 削除
こたろう  2006-07-07 19:15:44  No: 22372  IP: 192.*.*.*

先ほどテストしたら、
なぜか再接続できるようになっていました…。
うーん…

HOtaさん
えーとねさん
ありがとうございました。

板を汚してスミマセンでした。

編集 削除