DELPHI XE6(32bit)です。FMXで”FireDAC”から、Firebird Embededに接続を試みていますが、次の様なエラーになります。
=====================
Loading driver FB ...
Error: [FireDAC][Phys][FB]-314. ベンダ ライブラリ [fbclient.dll or fbembed.dll] を読み込めません。指定されたファイルが見つかりません。
ヒント: PATH またはアプリケーションの EXE ディレクトリに含まれているか、x86 ビットであるかを確認してください。
DBMS クライアントの読み込みに失敗しました!
=====================
以前、VCLでFirebirdと接続した事があります。その時はあっさり繋がりそれほど難しいとは感じなかったのですが、今回は素直に繋がりません。
使い方での支持の通り、”fbembed.dll”は”gds32.dll”にファイル名変更しています。また、FBのDLL等はアプリケーションの実行ファイルのあるフォルダーに置いてあります。現在、開発中なので、”Win32”フォルダの”Debug”フォルダーに置いてあります。
また、用いているFirebird Embededは32bitのものを使用しています。
FireDACは初めて用います。
気になっているのは、先のエラー内で、”fbembed.dll”を読み込めないとなっている点です。FBEmbededの使い方では”gds32.dll”へファイル名を変更する様になっています。
FireDACでは”fbembed.dll”を参照しているのでしょうか?
試しに”fbembed.dll”へファイル名を戻してみると、上記エラーは出なくなりましたが、”プロセスはファイルにアクセスできません。別のプロセスが使用中です。”となって、設定しているDataBaseファイルへアクセス出来ないエラーが出ます。
Firebird Embededへは接続できたと言う事でしょうか?
また、他にDataBaseへアクセスするソフトは起動させていないにも関わらず、別のプロセスが使用中となっているのは、不可解です。
どの辺りをチェックすると良いでしょう?
アドバイス頂けると助かります。
自己レスです。
どうも”fbclient.dll”が正しく参照されていない様な感じです。
アプリケーションと同じフォルダーにコピーしたのは、指定の通り
gds32.dll
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll
firebird.conf
firebird.msg
intl\fbintl.dll
intl\fbintl.conf
udf\fbudf.dll
の10個です。
この中に”fbclient.dll”は含まれていません。
Embarcadero社のサポートの様なページで”fbclient.dll”へのパスは、FDDrivers.iniファイルで定義されるとありました。
このFDDrivers.iniファイルはどこへ配置すべきなのでしょう?
また、以前VCL版でFB Embededへ接続できた時には”fbclient.dll”や”FDDrivers.ini”ファイルを設定した事はなかったと思います。
これも、FireDACの場合の特徴になるのでしょうか?
ただ、未だ、接続できていません。
Firebird Embeded は、使ったことがないので、外しているかもしれませんが・・・・
FDPhysFBDriverLink の Embedded プロパティは、Trueですか?
igyさん
アドバイスをありがとうございます。
FDPhysFBDriverLinkのプロパティに”Embeded”はみつかりませんでしたが、”VendorLib”と言うプロパティにDLLを登録出来る様です。
こちらに”fbclient.dll”のパスを指定したら、エラーが解消されました。
助かりました。
ただ、FDPhysFBDriverLinkのプロパティには”DriverID”や”VendorHome”等のプロパティがみつかりますが、今のところ空欄で、しかし、接続エラーは出なくなっています。
これで、少し進めてみます。
ツイート | ![]() |