2017-06-03 14 views
1

私のD7 dBExpressプロジェクトは、ローカルのInterbase XE7サーバに接続することになっています。 通常のDBXセットアップ:SqlConnection、SqlQuery、DataSetProvider、 ClientDataSetがあり、単純な「select * from mytable」を実行します。dBExpress経由でローカルサーバに接続

私はそれを使用して前回、それが正常に働いていたが、私はIDE、 の内側にそれを実行したときに、私は(その呼び出しが全体のコードである私のFormCreateに

ClientDataSet1.Open; 

を呼び出すと、今日、私は例外を取得しますプロジェクトのbtw)。 例外は、msgが "エラーコードが見つかりません"というEDatabaseErrorです。 TSqlConnection.DoConnectで発生します。

+0

IBConsoleを使用して接続しようとしましたか?それは何を言いますか? – MartynA

+0

私は今あります。 IBConsoleは実際には自分のデータベースを表示しません。ちょうど "ローカルサーバー - gds_b"です。私がそれをクリックすると、「リモートインターフェイスによって接続が拒否されました」というメッセージが表示されます。 –

+0

これはよく知られています。私のマシンにFirebirdが潜入していたことが判明し、通常IBのポートを乗っ取っていた。 FBサーバーが稼働しているかどうかを調べるには、「サービス」を参照してください。存在する場合は、それを終了します(IBサーバが起動していない場合は起動します)。 – MartynA

答えて

2

これはおなじみのようです。私は数週間後にIBプロジェクトに戻ったとき、私はそのエラーを一度も受けました。

私のマシンにFirebirdが潜入していて、通常は聞いているポートIBをハイジャックしていたことが判明しました。実際にこのFBサーバは、Interbaseのものではなく接続を拒否していました。

サービスの下でFBサーバーが動作しているかどうかを確認してください。存在する場合は、それを終了します(IBサーバが起動していない場合は起動します)。次に、DBXプロジェクトを再試行してください。

私はFB文書とIBサーバを共存させる方法があると思われたが、別の時に同様のトラップに落ちるのを避けるために、それらの1つをダウンして、もう一方を開始します。 1つは「UseIB」と呼ばれ、以下を含みます。

net stop "Firebird server - DefaultInstance" 
net start "InterBase XE7 Server gds_db" 

他の1つは、「UseFB」はもちろん逆です。

+0

興味深い決定。 + 1 Firebird(またはInterbase)のデフォルトポート3050を別のものに変更することもできます。次に、接続文字列のポートを変更するだけで、InterbaseまたはFirebirdに接続できます。 –