FireDACからInterBaseへ接続すると、unavailable databaseエラーが発生する

提供: Support
移動先: 案内検索

対象となるIDE製品

  • RAD Studio/C++Builder/Delphi XE3~XE5

問題

FireDACからInterBaseへ接続すると、unavailable databaseエラーが発生することがあります。

Thumb03000030ujpn.jpg

原因

原因として考えられるのは、以下の2つです。

  1. InterBaseサーバープロセスを起動していない
  2. 同一PC内に複数のInterBaseがインストールされている

特に(2)に該当するケースとしては、XE3、XE4、XE5 にはすべて InterBase XE3 Developer エディションが付属しており、デフォルトのインストールオプションでは、InterBase XE3をそれぞれインストールします。通常、PC内にインストールしているInterBaseが1つであれば、特に問題はありませんが、同一PC内に複数バージョンのInterBaseをインストールされている(共存している)場合には、マルチインスタンスの機能が適用されるため、アクセスする方法が少し複雑になります。

マルチインスタンスとは、InterBase 7.5から導入された同一PC内に複数のInterBaseプロセスを実行するための仕組みで、異なるインスタンス名とポート番号によって登録し、他のInterBase(プロセス)のインスタンスと競合しないように管理されています。例えば、XE3=>XE4=>XE5の順番でインストールを行なうと、インスタンス名とポート番号は以下のように登録されます。

インスタンス名 ポート番号 対応するバージョン
gds_db 3050 XE3
rad_xe4 3054 XE4
rad_ibxe3 3054 XE5

但し、インストールしているバージョンやその順番によって、対応するインスタンス名とポート番号が異なることがあります。

なお、XE3、XE4、XE5のどれか1つをインストールしている場合は、gds_db 3050(デフォルト)のインスタンスが作成されます。このように、同一PC内に複数のインスタンスが存在し、そのうちのどれか1つのインスタンスが実行されているとIDE ツールおよびアプリケーションからInterBaseのローカルクライアントを利用して接続できないことがあります。

解決

もし同一PC内に複数の InterBase インスタンスが存在する場合、一度全てのInterBaseインスタンスの実行を停止してください。InterBaseインスタンスの起動/停止は、InterBaseのサーバーマネージャから行なうことができます。

Windows 7の場合は、Windowsスタートメニューの[Embarcadero InterBase XE3]-[Interbase Server Manager]から実行できます

Thumb03000031ujpn.png

Windows 8の場合は、スタートメニューの[すべてのアプリ]から実行できます

Thumb03000032ujpn.png

なお、Windows サービスとしてセットアップしてある場合は、システムの[サービス]コントロール パネルでプロセスを停止し、スタートアップの種類を”手動”に変更してください。

Thumb03000033ujpn.png

そして、どのInterBaseインスタンスを実行するか決めて、そのインスタンスを再起動してください(ここでは、インスタンス名=gds_db、ポート番号=3050のInterBaseインスタンスを起動します)。

最後にFireDACのアプリから InterBaseへの接続は、TCP ループバックを介して接続します。FireDACでTCP ループバックを指定するには、TFDConnection.ParamプロパティのServerパラメータを以下のように設定します。

Thumb03000034ujpn.jpg

(ここでは、”localhost/3050”として設定します。)


もし上記の設定でもInterBaseへ接続できない場合は、

  1. 指定したポート番号が間違っている
  2. 指定したInterBaseインスタンスを実行していない

といった理由が考えられますので、もう一度、実行しているインスタンスや設定を確認してください。

関連情報

RAD Studio/Delphi/C++Builder XE3/XE4/XE5に付属するInterBase XE3 Developer Editionに関する注意事項は ここを参照してください。