お久しぶりです。困ったときにしか顔をださないビギナです。
また教えてほしいことがありまして...厚顔承知でお尋ねします。
教えてください。今度は絶対おかしい(自信ないが)のです。
環境はRAD STUDIO XE5 ENT on Windows 7 Pro 64bitです。
Firebird 2.5.4をローカル接続(embedではなく)使おうとしています。
インストールをしたのは32bit版のFirebirdです。アプリケーションは
FMX64bit FireDACとして作成をし始めました。手始めは定番の方法で行
ったつもりですフォーム上にはFDConnection1,FDQuery1,FDGUIxWaitCursor1,
FDPhysFBDriverLink1を貼り、FDConnection1にとりあえずですがパラメー
タをセットしQueryとConnectionをつなげました。忘れずにFDGUIxWaitCursor1
のVendorLibにFirebirdのfbclient.dllを指定しました。そしてFDConnection1
で接続テストを試みました。成功しました。次にQueryから'select * from
<table name>'とやって空のデータベースをだし、サンプルデータを入力
できました。連番自動入力のジェネレータ・トリガも正常動作しているのを確
認しました。これで一安心ということで、メインフォームに多少のレイアウト
(Stringgridなど)を配置しグリッドに表示させフォームレイアウトを作ろう
としたとたんエラーとなりました。[F9]で走らせて見たところ「EFDException
がモジュールXXXXXの000000000076801Cで発生しました。」とでてその下にと
てもよく見るメッセージなのですが「[FireDac][Phys][FB]-314 Cannot load
Vendor Library...」と出てくるのです。OKをおすとプログラムはターミネー
トします。通常はVendor Libraryの場所を確認し、delphiのパスが通っている
かをチェックしますが、バラックでテストしたときには機能していたのですか
ら大丈夫のはずですよね(もちろん確認はしました)これはいったい何が起き
ているのでしょう?対策はあるでしょうか?form.createイベントにトラップ
をいれ調べてみましたが、ひっかからないのでform.create以前に起きている
のではないかと思うのですが...(トラップとはshowmessage('this');と
form.createに入れているだけです)
アプリケーションをWindows 64-bitで動かしてませんか?
その場合は64ビット版のFirebirdのクライアントDLLが必要ですし、
VenderLibにもそれを指定することになります。
できました...私はIDEは32bitなので、とにかくFirebirdは32bitを使うのだ
と思い込んでいました。すみませんお手間を取らせてしまいました。ありがとうございました。>通りすがりさん。
ところでそれならば(懲りない+めげない...)1台のPCに32bitと64bitの開発
環境を整えることは無理ということでしょうか?両版を出したいと思っているのですがFirebirdのサーバーは
同一PCにインストールは不可?なんでしょうか。ご存知でしたら教えてください。
特に問題なくできますよ。Firebirdはサーバとクライアントが分かれていますので、サーバはサーバで32bit版でも64bit版でも
好きなほうを入れて(普通はOSが64bitなら64bitを入れるでしょうけど)、それとは別にアプリケーションに合わせて
クライアントをインストール("instclient.exe i g|f")すればいいのです。サーバとクライアントDLLの間は通常
TCP/IPで通信しますので、どっちが32bitでどっちが64bitとか関係ありません。ちなみに64bit版サーバをインストールした
環境ではインストール先のbinの下に64bit版のinstclient.exeが、WOW64の下に32bit版のinstclient.exeがあります。
https://www.petitmonte.com/bbs/answers?question_id=8391
も目を通しておくといいでしょう。
なるほどよくわかりました。思い込みが2日ほどの作業停滞を引き起こしていたようです。
ありがとうございました。
ツイート | ![]() |