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

解決


こたろう  2006-07-05 01:53:34  No: 22365

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 16:40:42  No: 22366

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


こたろう  2006-07-05 18:45:10  No: 22367

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


HOta  2006-07-05 18:50:01  No: 22368

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


こたろう  2006-07-05 20:34:00  No: 22369

補足させて頂きます。

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

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

よろしくお願いします。


えーとね  2006-07-05 22:49:06  No: 22370

ForceClose はどうでしょう。


こたろう  2006-07-05 23:23:28  No: 22371

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

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


こたろう  2006-07-08 04:15:44  No: 22372

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加