Comment utiliser les composants de données et faire de la programmation orientée objet
Bonjour messieurs,
Je développe une application delphi7 qui utilise une base de données Ms Sql Server 2005. Je fais de la programmation orientée Objet. Je crée mes objets métiers que je renseigne puis j'enregistre par des méthodes Store(), Update() et Delete() qui font appel à des procédures stockées dans la base de données.
Exemple de manipulation d'objet:
Code:
1 2 3 4 5
|
Obj_Client:=TClient.create();
Obj_Client.nom:=dbedit_Nom.text;
Obj_Client.prenom:=dbedit_Prenom.text;
Obj_Client.store();// enregistre le client dans la base |
Voici comment je procède pour manipuler mes données de la base.
Maintenant je souhaite utiliser des composants de données liés à une source de données (MyDataSource) et lier un composant DBNavigator pour naviguer entre mes données.
Mon problème est que quand je dois faire une insertion,modification je ne peux pas utiliser mes Objets métier directement car mes composants de données sont liés au DataSource. Je suis donc obligé d'ouvrir ma table en faisant MyDataSet.insert ou MyDataSet.Edit. Ce qui me permet de saisir dans mes champs de données, puis je dois faire un post
pour enregistrer les données dans la table.
Moi je souhaiterais ne pas faire de Mydataset.insert ou Mydataset.edit ou encore Mydataset.post mais plutôt :
Citation:
Obj_Client:=TClient.create();
Obj_Client.nom:=dbedit_Nom.text;
Obj_Client.prenom:=dbedit_Prenom.text;
Obj_Client.store();// enregistre le client dans la base
Voici un peu ce que je souhaite faire: charger mes enregistrements dans une dbgrid,dbedit, naviger entre les données, saisir de nouveaux objets, modifier et enfin les mettre à jour en utilisant mes méthodes Obj_Client.store(),Obj_Client.Update() et Obj_Client.Delete().
Je souhaite naviguer entre les données(premier,précedent,suivant,dernier).
Je souhaiterais que que vous m'aidiez à trouver un bonne solution.
Es-ce que je dois utiliser les composants de données ou utiliser de simple composants?
Comment dois-je procéder?
Merci pour votre compréhension.