Informations générales (FireDAC)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Architecture (FireDAC)

FireDAC a une architecture souple, puissante et extensible.

FireDAC-Architecture.jpg

Informations générales

FireDAC a une architecture multi-couche associée de manière souple, dans laquelle les couches fournissent des services. Une API de services est une interface COM à laquelle d'autres couches accèdent en utilisant la fabrique d'interfaces.

Si une implémentation d'interface n'est pas trouvée, une exception est déclenchée. Pour lier l'implémentation dans une application, l'unité correspondante doit aussi être liée. Ces implémentations peuvent être obligatoires ou facultatives, et vous pouvez choisir entre plusieurs alternatives d'implémentations.



Exemple

Par exemple, l'interface IFDGUIxWaitCursor définit l'API pour le curseur d'attente de la souris (le sablier). Elle dispose de trois implémentations alternatives (fournisseurs) :

  • FireDAC.VCLUI.Wait - cette unité contient l'implémentation des applications GUI de la VCL.
  • FireDAC.FMXUI.Wait - cette unité contient l'implémentation des applications GUI de FireMonkey.
  • FireDAC.ConsoleUI.Wait - cette unité contient l'implémentation des applications console.

Une implémentation du curseur d'attente de la souris pour les applications GUI ou console est obligatoire et doit toujours être liée dans l'application. Sinon, l'exception suivante est déclenchée :

Object factory for class {3E9B315B-F456-4175-A864-B2573C4A2201} missing.
To register it, you can drop component [TFDGUIxWaitCursor] into your project

Remarque : Le message d'exception suggère le nom de l'unité qui doit être incluse dans votre projet afin de lier l'implémentation de l'interface standard.

Composants non visibles [Comp]

La couche de composants non visibles [Comp] représente les interfaces publiques de FireDAC comme les composants non visuels de Delphi, semblables à d'autres composants d'accès aux données de Delphi. Elle comprend des composants tels que TFDConnection (établissement de la connexion), TFDQuery (exécution de la requête), TFDStoredProc (exécution de la procédure stockée), TFDMemTable (ensemble de données en mémoire), TFDScript (le moteur de script SQL), etc.

Les principales unités sont :

Les composants visibles [GUIx]

La couche de composants visibles [GUIx] fournit un moyen d'interagir avec l'utilisateur final depuis une application FireDAC. C'est un ensemble de composants de haut niveau qui permet d'ajouter les dialogues de l'utilisateur final pour les opérations de bases de données élémentaires comme un dialogue de connexion ou d'attente. Elle comprend des composants tels que TFDGUIxWaitCursor (curseur d'attente), TFDGUIxLoginDialog (dialogue de connexion), TFDGUIxErrorDialog (dialogue d'erreur), etc. La couche fournit des implémentations pour les plates-formes VCL (VCL), FireMonkey (FMX) et console (Console).

Les principales unités sont :

Stockage des données locales [DatS]

Le stockage des données locales (Local Data Storage) [DatS] est une implémentation Local Data Storage qui est analogue à l'ensemble de données ADO.NET et ses objets associés (DataTable, DataRow, DataView, etc.). C'est un moteur de données en mémoire, qui stocke et gère toutes les données client et les métadonnées. Il a une API souple, qui vous permet d'utiliser DatS dans des applications.

L'unité principale est :

  • FireDAC.DatS

Adaptateur de données (Data Adapter) [DApt]

L'adaptateur de données [DApt] autorise à la fois l'automatisation et le réglage d'une opération de lecture avec des ensembles de résultats complexes (maître-détails, imbriqués, ADT, etc.) et la validation des mises à jour dans le système de base de données. Il est contrôlé principalement via les propriétés TField et UpdateOptions.

Les principales unités sont :

  • FireDAC.DApt.Intf
  • FireDAC.DApt

Moniteur de débogage et de performances (Debug and Performance Monitor) [Moni]

Le moniteur de débogage et de performances [Moni] représente les capacités de débogage de FireDAC qui implémentent les interfaces du moniteur de débogage. Vous disposez ensuite d'interactions de suivi et de surveillance entre l'application FireDAC et le système de gestion de bases de données (SGBD). Il est contrôlé par les propriétés du composant TFDMoniXxxxClientLink et par le paramètre de définition de connexion MonitorBy. Il comprend des composants comme TFDMoniRemoteClientLink (surveillance en utilisant FDMonitor), TFDMoniFlatFileClientLink (suivi d'un fichier), TFDMoniCustomClientLink (suivi personnalisé).

Les principales unités sont :

  • FireDAC.Moni.RemoteClient
  • FireDAC.Moni.FlatFile
  • FireDAC.Moni.Custom

API pilotes (Drivers API) [Phys]

L'API pilotes (Drivers API) [Phys] définit les interfaces pour les accès aux données physiques. Il les implémente dans des packages distincts en tant que pilotes. Chaque package de pilotes appartient à la couche Phys et implémente les interfaces requises en utilisant l'API SGDB appropriée. Voir Connectivité des bases de données pour plus de détails.

Les principales unités sont :

  • FireDAC.Phys.Infx
  • FireDAC.Phys

Par défaut, aucun des pilotes n'est lié dans l'application.

Pilotes natifs [Phys]

Les pilotes natifs (Native Drivers) [Phys] implémentent l'accès à un SGBD en utilisant une API de bas niveau à hautes performances, ce qui est recommandé par le fournisseur SGBD. Ils adaptent avec précision les fonctionnalités spécifiques au SGBD à l'API de FireDAC. Tous les pilotes natifs ont été testés et optimisés pour un SGBD. Ils incluent TFDPhys<SGBD>DriverLink ainsi que les composants de service.

Les principales unités sont :

  • FireDAC.Phys.<SGBD>Wrapper
  • FireDAC.Phys.<SGBD>Meta
  • FireDAC.Phys.<SGBD> :

Pilotes de pont [Phys]

Les pilotes de pont (Bridging Drivers) [Phys] implémentent l'accès générique à un SGBD en utilisant les API d'accès aux données génériques : ODBC et dbExpress. Les pilotes de pont utilisent des informations fournies par le pilote concernant les fonctionnalités du SGBD, ce qui ne couvre pas toutes les fonctionnalités SGBD susceptibles d'intéresser FireDAC. Ils incluent TFDPhysODBCDriverLink (pilote ODBC) et TFDPhysTDBXDriverLink (pilote dbExpress).

Les principales unités sont :