全般(FireDAC)
アーキテクチャ(FireDAC) への移動
目次
FireDAC は、柔軟性の高い強力かつ拡張可能なアーキテクチャを備えています。
概要
FireDAC は疎結合の多層アーキテクチャを備えており、各レイヤでサービスが提供されます。それぞれのサービス API は、他のレイヤからインターフェイス ファクトリを使って要求できる COM インターフェイスとして定義されています。
インターフェイスの実装が見つからない場合は、例外が発生します。実装をアプリケーションにリンクするには、対応するユニットもリンクする必要があります。これらの実装は必須の場合もオプションの場合もあり、実装の選択肢から選択することができます。
例
たとえば、IFDGUIxWaitCursor インターフェイスでは、(砂時計形の)待機カーソルの API を定義しています。これには、実装の選択肢(プロバイダ)が以下の 3 つあります。
- FireDAC.VCLUI.Wait -- このユニットには VCL GUI アプリケーションの実装が格納されています。
- FireDAC.FMXUI.Wait -- このユニットには FireMonkey GUI アプリケーションの実装が格納されています。
- FireDAC.ConsoleUI.Wait -- このユニットにはコンソール アプリケーションの実装が格納されています。
GUI アプリケーションまたはコンソール アプリケーションの待機カーソル実装は必須で、必ずアプリケーションにリンクする必要があります。そうでなければ、次のような例外が発生します。
Object factory for class {3E9B315B-F456-4175-A864-B2573C4A2201} missing. To register it, you can drop component [TFDGUIxWaitCursor] into your project
メモ: この例外メッセージは、標準のインターフェイス実装をリンクするためにプロジェクトに組み込む必要があるユニットを示唆しています。
非表示コンポーネント [Comp]
非表示コンポーネント [Comp] 層では、FireDAC の公開インターフェイスを Delphi の非表示コンポーネント として表しています。これは、他の Delphi データ アクセス コンポーネントと似ています。これには、TFDConnection(接続の確立)、TFDQuery(クエリの実行)、TFDStoredProc(ストアド プロシージャの実行)、TFDMemTable(インメモリ データセット)、TFDScript (SQL スクリプト エンジン)などのコンポーネントが含まれています。
主なユニットは次のとおりです。
表示コンポーネント [GUIx]
表示コンポーネント [GUIx] 層では、FireDAC アプリケーションからエンド ユーザーとやり取りするための手段を提供します。これは、ログインや待機などの標準的なデータベース操作のエンド ユーザー用ダイアログを追加できるようにする高レベル コンポーネントのセットです。これには、TFDGUIxWaitCursor(待機カーソル)、TFDGUIxLoginDialog(ログイン ダイアログ)、TFDGUIxErrorDialog(エラー ダイアログ)などのコンポーネントが含まれています。このレイヤでは、VCL(VCL)、FireMonkey(FMX)、コンソール(Console)の各プラットフォーム用の実装が用意されています。
主なユニットは次のとおりです。
- FireDAC.UI.Intf
- FireDAC.<プラットフォーム>UI.Xxxx
- FireDAC.Comp.UI
ローカル データ ストレージ [DatS]
ローカル データ ストレージ [DatS] 層はローカル データ ストレージの実装で、ADO.NET の DataSet とそれに関連するオブジェクト(DataTable、DataRow、DataView など)に相当します。これはインメモリ データ エンジンで、すべてのクライアント データおよびメタデータを格納し処理します。柔軟性の高い API が用意されているので、アプリケーションで DatS を使用することができます。
主なユニットは次のとおりです。
- FireDAC.DatS
データ アダプタ [DApt]
データ アダプタ [DApt] 層は、複雑な結果セット(マスタ/詳細、ネスト、ADT など)を伴う読み取り操作の自動化および微調整と、元のデータベース システムへの更新のポストを可能にします。ほとんどが、TField
と UpdateOptions
プロパティを介して制御されます。
主なユニットは次のとおりです。
- FireDAC.DApt.Intf
- FireDAC.DApt
デバッグおよびパフォーマンス監視 [Moni]
デバッグおよびパフォーマンス監視 [Moni] 層は、デバッグ モニタ インターフェイスを実装した FireDAC デバッグ機能を表しており、FireDAC アプリケーションとデータベース管理システム(DBMS)の間のやり取りを監視し追跡できるようにします。このレイヤは、TFDMoniXxxxClientLink コンポーネントのプロパティと接続定義パラメータ MonitorBy で制御されます。これには、TFDMoniRemoteClientLink(FDMonitor を使用した監視)、TFDMoniFlatFileClientLink(ファイルへの追跡結果の出力)、TFDMoniCustomClientLink(カスタム追跡)などのコンポーネントが含まれます。
主なユニットは次のとおりです。
- FireDAC.Moni.RemoteClient
- FireDAC.Moni.FlatFile
- FireDAC.Moni.Custom
ドライバ API [Phys]
ドライバ API [Phys] 層では、物理的なデータ アクセスのインターフェイスを定義しています。それらのインターフェイスは、ドライバとして別個のパッケージに実装されています。各ドライバ パッケージは Phys レイヤに属し、必要なインターフェイスを適切な DBMS API を使って実装しています。詳細については、「データベース接続」を参照してください。
主なユニットは次のとおりです。
- FireDAC.Phys.Intf
- FireDAC.Phys
デフォルトでは、アプリケーションにはどのドライバもリンクされていません。
ネイティブ ドライバ [Phys]
ネイティブ ドライバ [Phys] 層では、(DBMS ベンダにより推奨されている)パフォーマンスの高い低レベル API を使って DBMS へのアクセスを実装しています。各ドライバでは、DBMS 固有の機能が FireDAC API に正確に適合化されています。すべてのネイティブ ドライバはテストされ、DBMS に最適化されています。このレイヤには、TFDPhys<DBMS>DriverLink のほか、サービス コンポーネントが含まれています。
主なユニットは次のとおりです。
- FireDAC.Phys.<DBMS>Wrapper
- FireDAC.Phys.<DBMS>Meta
- FireDAC.Phys.<DBMS>:
ブリッジ ドライバ [Phys]
ブリッジ ドライバ [Phys] では、汎用データ アクセス API(ODBC や dbExpress)を使用して、DBMS への汎用的なアクセスを実装しています。ブリッジ ドライバは、DBMS の機能に関する情報はドライバ提供のものを使用しており、そこでは、FireDAC についての DBMS 機能はすべてカバーされているわけではありません。このレイヤには、TFDPhysODBCDriverLink(ODBC ドライバ)や TFDPhysTDBXDriverLink(dbExpress ドライバ)が含まれています。
主なユニットは次のとおりです。