Connexion hors ligne (FireDAC)
Remonter à Utilisation des connexions (FireDAC)
Explique comment utiliser le mode hors ligne de FireDAC, qui vous permet d'utiliser des données sans connexion persistante à une base de données.
Informations générales
Le mode hors ligne de FireDAC est similaire à un client multiniveau qui, la majorité du temps, est déconnecté d'une base de données La connexion est uniquement active quand un client doit échanger des données avec une base de données. Cette fonction est utile quand une application fonctionne dans un environnement instable ou doit conserver les ressources du SGBD.
En mode hors ligne, une connexion à une base de données est fermée. En revanche, les ensembles de données sont ouverts.
Contrôle des connexions hors ligne
Pour passer une connexion en mode hors ligne, utilisez les options suivantes :
- Appelez la méthode TFDCustomConnection.Offline.
- Renvoyez AAction=amOfflineXxxx dans la méthode TFDCustomConnection.OnRecover.
FireDAC ne vous permet pas de passer automatiquement une connexion en mode hors ligne, car il ne sait pas à quel moment une application doit entrer en contact avec une base de données. Par conséquent, cela doit être réalisé par le code de l'application. Avant que la connexion soit définie en mode hors ligne, les ensembles de données actifs dont certains ensembles de résultats n'ont pas encore été extraits effectuent une action spécifiée par la propriété FetchOptions.AutoFetchAll.
Pour passer une connexion en mode en ligne, utilisez les options suivantes :
- Appel explicite de la méthode TFDCustomConnection.Online .
- Activation implicite, quand une connexion doit communiquer avec un SGBD, en exécutant une commande, en validant les mises à jour, etc. Notez que ResourceOptions.AutoConnect doit avoir la valeur True. Sinon, une exception est déclenchée.
Si un ensemble de données a la propriété ResourceOptions.PersistentFileName spécifiée, la connexion n'est pas requise à l'appel de la méthode Open. Il charge le contenu depuis le fichier spécifié.
Remarque : Le fait de faire passer une connexion en mode hors ligne puis en mode en ligne revient à récupérer d'une connexion interrompue, dans le sens où l'état de la session de la base de données est perdu. Pour plus de détails, lisez l'article Récupération d'une connexion.