FireDAC アプリケーションを実行時用に準備する
FireDAC への移動
このトピックでは、FireDAC アプリケーションでの TFDGUIxWaitCursor コンポーネントと TFDPhys*DriverLink 系コンポーネントの使用について説明します。
概要
FireDAC は疎結合の多層アーキテクチャを備えており、各レイヤでサービスが提供されます。それぞれのサービス API は、他のレイヤからインターフェイス ファクトリを使って要求できる COM インターフェイスとして定義されています。
FireDAC を適切に動作させるには、いくつかのインターフェイスの実装をアプリケーションにリンクする必要があります。
IFDGUIxWaitCursor インターフェイス
FireDAC では、IFDGUIxWaitCursor インターフェイスを使用してエンド ユーザーにフィードバックを提供しています(砂時計形のカーソルを使用)。
TFDGUIxWaitCursor コンポーネントを使用すると、アプリケーションに IFDGUIxWaitCursor インターフェイス実装を追加できます。この実装は FireDAC アプリケーションには必須です。
TFDGUIxWaitCursor の Provider プロパティにより、ユーザーは GUIx コンポーネントの実装を選択できます。
値 |
説明 |
Forms |
FireDAC.VCLUI.Wait ユニット内の VCL ベースの実装(Delphi/C++Builder の場合)。 |
FMX |
FireDAC.FMXUI.Wait ユニット内の FireMonkey ベースの実装(Delphi/C++Builder XE2 以降の場合)。 |
Console |
FireDAC.ConsoleUI.Wait ユニット内のコンソール ベースの実装。 |
設計時に Provider プロパティを設定しフォームを保存すると、対応する実装ユニットがフォームの uses セクションに自動的に追加されます。
実行時には、対応する実装ユニットを uses セクションに手動で追加する必要があります。対応する実装がアプリケーションにリンクされていない場合は、例外が発生します。
メモ: この例外メッセージでは、標準のインターフェイス実装をリンクするためにプロジェクトに組み込む必要があるユニットを指定しています。
Provider プロパティの値が変更された場合、ユーザーは、古い Provider 値に対応する実装ユニットを uses セクションから削除する必要があります。たとえば、Forms から FMX に切り替えるには、FireDAC.FMXUI.Wait ユニットを削除する必要があります。
Provider プロパティのデフォルト値は、FireMonkey ベースのアプリケーションの場合は FMX、Windows コンソール アプリケーションの場合は Console、それ以外の場合は Forms です。
IFDPhysDriver インターフェイス
FireDAC ドライバは IFDPhysDriver インターフェイスを実装しています。これらのドライバは DriverID パラメータで識別されます。
さまざまな TFDPhys*DriverLink コンポーネントを使用すると、IFDPhysDriver インターフェイス実装をアプリケーションに追加できます。この実装は FireDAC アプリケーションには必須です。
TFDPhysDriverLink コンポーネントは、あらゆるドライバ リンク コンポーネントの基底クラスです。TFDPhysDriverLink には以下の機能が実装されています。
- FireDAC DBMS ドライバをアプリケーションにリンクします。
- VendorHome プロパティ、VendorLib プロパティ、Release メソッドを使って、実行時に FireDAC DBMS ドライバを構成できます。
- DriverID、BaseDriverID、ActualDriverID の各プロパティを使って、実行時に FireDAC 仮想ドライバを作成できます。
- DriverIntf、DriverState、OnDriverCreated、OnDriverDestroying の各プロパティを使って、FireDAC ドライバ API やライブ サイクルにアクセスできるようにします。
- Services、ServicesCount の各プロパティを使って、FireDAC DBMS 固有のサービスを管理します。
アプリケーションで TFDPhysDriverLink コンポーネントを直接使用しないでください。ただし、TFDPhysDriverLink の多数の下位コンポーネントのいずれか(たとえば以下など)を使用することはできます。
TFDPhysIBDriverLink コンポーネントをアプリケーションに追加して変更内容を保存すると、FireDAC.Phys.IBBase ユニットと FireDAC.Phys.IB ユニットがフォームの uses セクションに自動的に追加されます。
これらのユニットは IB ドライバに必須のもので、アプリケーションに必ずリンクする必要があります。そうでなければ、次のような例外が発生します。
メモ: この例外メッセージでは、標準のインターフェイス実装をリンクするためにプロジェクトに組み込む必要があるユニットを指定しています。
関連項目
- TFDPhys*DriverLink ファミリ:
- TFDPhysDriverLink
- TFDPhysADSDriverLink
- TFDPhysASADriverLink
- TFDPhysDB2DriverLink
- TFDPhysFBDriverLink
- FDPhysInfxDriverLink
- FDPhysIBDriverLink
- TFDPhysMSAccessDriverLink
- TFDPhysMSSQLDriverLink
- TFDPhysMySQLDriverLink
- TFDPhysODBCDriverLink
- TFDPhysODBCBaseDriverLink
- TFDPhysOracleDriverLink
- TFDPhysPgDriverLink
- TFDPhysSQLiteDriverLink
- TFDPhysTDataDriverLink
- TFDPhysTDBXDriverLink
- TFDPhysTDBXBaseDriverLink