ikremnitz
Messages postés10Date d'inscriptionlundi 21 mars 2005StatutMembreDernière intervention19 novembre 2009 19 nov. 2009 à 14:04
Bonjour,
merci zwyx pour ta réponse, mais ce n'était pas tout à fait ce que je voulais.
J'ai une table:
NomChamp | Valeur
'Champ1' 'toto'
'Champ2' 'titi'
Je recherche à remplir un record en faisant
MonRecord.NomChamp := Valeur
mais cela ne donne rien.
J'ai résolu mon problème, grâce à un collègue, qui m'a proposé de créer une classe TObjet qui contient un attribut Nom et un attribut Valeur.
Puis de créer une classe TRecord avec un attribut Contenu qui est un tableau de TObjet. Et de rajouter une fonction ChampParNom qui à partir d'un nom renvoie l'attribut Valeur, qu'il n'y a plus qu'à mettre à jour.
zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016 18 nov. 2009 à 21:42
Salut ikremnitz,
Il faudrait que tu définisse des identifiants de type simple (chaîne ou nombre) qui identifient chaque donnée de ta table, des clés primaires en quelques sortes.
Tu crées ensuite deux méthodes: une qui met à jour les données de ton record avec celle de ta table, par exemple
SetData(const ADonneesEnregistrees: TMonRecord);
et sa réciproque, qui met à jour les données de ta table avec celles du record, par exemple:
GetData(var ADonneesPerimees: TMonRecord);
Dans ces méthodes, tu peux parcourir tous les champs de ta structures ou toutes les valeurs de ta table et faire correspondre les deux grâce à l'identifiant que tu auras choisi pour chaque champs.
Voilà, je sais pas si c'est très clair, mais c'est à peu près comme ça que j'envisage la solution.