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が切れた場合などの再接続はどのように行って
いるのでしょうか・・・。ご教授頂けないでしょうか。
IBDatabaseはLocalDBサーバなのに、なぜLANを切るとエラーになるのでしょうか?
すみません。間違えました。
ネットワークでした・・・。(;;
IBDatabaseのDBConnectionで再接続すればどうですか?
元が切れると、IBQueryをいくら操作しても駄目でしょう。
補足させて頂きます。
ネットワークから切断された時にIBDatabaseのConnectedをFalseにしてみたのですが、そこでもエラーとなってしまいます。
HOtaさんのIBDatabaseのDBConnectionを再接続するということは、IBDatabeseのConnectedをFalse→Trueにするということでしょうか?
それともIBClientDataSetを使用してDBConnectionプロパティに
IBDatabeseを設定することなのでしょうか?
よろしくお願いします。
ForceClose はどうでしょう。
一度切断されてしまいますとForceCloseでも
エラーになってしまいます。
IBDatabaseとIBQueryを使用してのDBへの再接続は
可能なのでしょうか?
先ほどテストしたら、
なぜか再接続できるようになっていました…。
うーん…
HOtaさん
えーとねさん
ありがとうございました。
板を汚してスミマセンでした。
ツイート | ![]() |