2017-10-11 20 views
2

私のアプリケーションのソースコードは、TFDConnectionTFDPhysFBDriverLinkです。これは、Firebird組み込みモードで開かれる場合と開かれない場合があります(その場合はFDPhysFBDriverLink.VendorLib := 'fbembed.dll'が設定されます(32ビット))。2番目のTFDPhysFBDriverLinkをセットアップする - 可能であり、必要ですか?

私はFirebirdのは、PC(私たちのセットアップ用品fbembed.dll)にインストールされている場合、我々は知らないので、Firebirdの組み込み必見使用ランタイム・ターゲットTFDConnectionを作成します。

どうすれば設定できますか?実行時に別のTFDPhysFBDriverLinkを作成し、そのVendorLibを設定することができますが、FireDACはどのような関連する接続を知っていますか?または、アプリケーション内に1つだけFDPhysFBDriverLinkを使用できますか?

これは私がDirectSQLを使用して変換している旧式のコードで、これはターゲットデータベースに対してのみ有効と思われた魔法のSDFib.SqlApiDLL := FBEMBEDプロパティを設定するためにも使用されます。

答えて

1

Firebirdがインストールされているため、1つの接続がインストールされているサーバーインスタンスに接続され、埋め込まれたサーバーインスタンスに接続されます。そのためには、1つの物理的なドライバオブジェクトを持つだけで十分ですが、それ以上の問題はありません。

そこで、それは場合には実用的な意味を持たない(フォームまたは一意の名前にDataModuleのとセットアップそのDriverIDプロパティ上の一TFDPhysFBDriverLink(それは、任意のドライバのベースドライバIDとして使用されていない)をドロップし、Embeddedとしてマーク現時点でVendorLibを指定してもドライバを識別するために使用できますが、FireDACはこのプロパティを使用してデフォルトライブラリをロードするかどうかを決定します)。一つの接続は、あなたが定義したDriverIDを使用するため、そのBaseDriverIDを使用してFirebirdのドライバ設定をデフォルトに他の1回の使用フォールバック(私はこの作業のために、不要な設定を省略しました)のために次に

FDPhysFBDriverLink1.DriverID := 'FBEmbedded'; { ← ID not used by any BaseDriverID } 
FDPhysFBDriverLink1.Embedded := True; { ← not mandatory when VendorLib is specified } 
FDPhysFBDriverLink1.VendorLib := 'C:\fbembed.dll'; { ← client library file name } 

FDConnection1.Params.DriverID := 'FB'; { ← driver's BaseDriverID } 
FDConnection1.Open; { ← this will connect to the installed server } 

FDConnection2.Params.DriverID := 'FBEmbedded'; { ← driver's DriverID } 
FDConnection2.Open; { ← this will connect to the embedded server } 

しかし、私2つの別個のドライバオブジェクトを持つ方が好きです.1つはインストールされたサーバ用(基本ドライバのようなデフォルト設定)と1つは組み込みサーバ用です。例:

+0

埋め込みプロパティの機能は何ですか? –

+0

'VendorLib'が設定されていない場合に' fbclient.dll'の代わりに 'fbembed.dll'ライブラリを読み込むだけです。(* Embarcadero Technologiesは現在何も追加情報*を持っていません)この場合、 'VendorLib'を指定するので無駄ですが、将来の追加のために使用しています(ドライバを識別するために使用することもできます)。 – Victoria

+0

OK、これは、ありがとうございます。私は2つの異なるTFDPhysFBDriverLinksを使用しています。私が指摘したことの1つ:DriverNameとDriverIDの両方を*割り当てるべきではありません。 –

関連する問題