XE6のデータエクスプローラからInterBase XE3 Developerに接続できない
問題
RAD Studio/C++Builder/Delphi XE6のデータエクスプローラからInterBase XE3 Developerへ接続しようとすると、以下のようなエラーが発生し、接続できないことがあります。
- 図1: データエクスプローラ(FireDAC)
- 図2: データエクスプローラ(dbExpress)
原因
環境変数PATH内にInterBaseの旧バージョンのクライアントドライバ(gds32.dll)を含むパスがあり、それがInterBase XE3のgds32.dllよりも先に参照されていると、XE6のIDE(Windowsの実行プログラム)はInterBaseの旧バージョンのgds32.dllをロードするため、バージョン間の互換性の問題で、InterBase XE3へ接続できません。
例えば、FireDACでロードしているInterBaseのクライアントドライバ(gds32.dll)のパスとバージョンを確認する方法は、TFDConnectionをフォーム上に配置し、接続パラメータを設定した後、[情報]タブを選択してください。
解決
InterBaseの旧バージョンのgds32.dllよりも先に、InterBase XE3のgds32.dllが参照されるように環境変数PATHの順序を変更する必要があります。環境変数PATHを変更する簡単な手順は、以下の通りです。
- [コントロールパネル]-[システム]-[システムの詳細設定]を選択
- [環境変数]ボタンをクリックし、システム環境変数の変数 Pathの先頭に以下のパスを追加
- Windows 32ビットOS:
- C:\Program Files\Embarcadero\Studio\14.0\InterBaseXE3\bin
- Windows 64ビットOS:
- C:\Program Files (x86)\Embarcadero\Studio\14.0\InterBaseXE3\bin
- [OK]ボタンを押して、システム設定を保存
- XE6を再起動
本件は、XE6以前のバージョンをご利用のケースでも同様の症状が発生することがあります。その場合は、環境変数Pathに追加するInterBaseのパスを変更してください。