Je pensais que l'interêt du datamodule était de séparer les composants d'accès à une base, du reste de l'application mais j'en suis pas convaincu.
Soit l'exemple suivant:
un module de données "DataModule1" sur lequel je place un CLientDataset1(MyBase) et un Datasource1.
une fiche "Form1" sur laquelle je place un DBGrid1.
une fiche "Form2" sur laquelle je place un DBGrid2.
A.Séparer l'accès aux données des fiches
Je créé une instance de TDataModule1 dans ma fiche Form1. Si je souhaite effectuer des actions avant la sauvegarde d'un enregistrement, je dois donc ajouter mon code dans l'évènement 'BeforePost' du ClientDataSet1, ce qui me lie donc mon module et ma fiche, même chose avec le datasource1 si je souhaite réagir au changement d'état(dsInsert, dsBrowse...), sur l'évènement 'OnStateChange'.
Ma Form1 et mon datamodule1 vont donc se retrouver liés de manière importante.
B. Réutiliser mon Datamodule1 sur d'autres fiches.
Je créé une instance de TDataModule1 dans ma fiche Form2. Si je souhaite effectuer des actions avant l'ajout d'un enregistrement, je dois donc à nouveau ajouter mon code dans l'évènement 'BeforePost' du ClientDataSet1, dans lequel est déjà présent le code qui le lie à la fiche Form1, je devrais donc mettre des conditions pour ne pas avoir d'erreurs.
je trouve ça plutôt lourd à gérer, avec un risque important d'erreurs.
N'est'il pas plus simple de mettre les composants d'accès aux données directement sur les fiches en ayant besoin ?
Y'a un truc que j'ai pas dû saisir ?
Si quelqu'un peut m'éclairer, ce serait sympa !
Partager