cs_naru
Messages postés19Date d'inscriptionsamedi 7 septembre 2002StatutMembreDernière intervention10 août 2004
-
7 sept. 2002 à 08:14
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 2006
-
7 sept. 2002 à 22:30
bonjour, voila mon prob:
il est facile de modifier les champs d'une ligne d'une TTable avec une DBgrid mais je voudrais le faire avec des DBEdit.
J'ai donc une série de DBEdits dont l'utilisateur est censé pouvoir modifier les données et, en validant, ces nouvelles données doivent s'inscrire dans la bdd. La fonction .insert marche mais écrit les nouvelles données dans les champs du 1er enregistrement. Comment dire au curseur de se placer sur l'enregistrement que je souhaite? (en excluant les .next .Last ect qui ne me servent à rien). Ou bien quelle serait la bonne procedure?
J'ai testé les DBEditFieldsName qui sont censés réécrire en temps réel mais ça ne marche pas.
Merci d'avance.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 7 sept. 2002 à 08:49
Quand tu utilises un SGBD, la gestion des enregistrements est déléguée à ce SGBD. Or, tu veux controler la position des enregistrements dans une table.
Pourquoi veux-tu absolument écrire à un endroit précis dans ta table ?
Si c'est un problème d'affichage de l'ordre de la table, alors utilises les indexes (TTable) ou la clause OrderBy (TQuery).
NB : les composants TDbEdit écrivent les données dans la table, quelque soit le mode de fonctionnement (écriture immédiate ou en différé). C'est toi qui décide du mode d'écriture en utilisant ou pas les CachedUpdates.
Vas faire un tour sur les pages consacrées aux SGBD sur le site Developpez.com. Il y a d'excellents tutoriaux.
cs_naru
Messages postés19Date d'inscriptionsamedi 7 septembre 2002StatutMembreDernière intervention10 août 2004 7 sept. 2002 à 20:38
et bien , je voudrais réécrire sur la bonne ligne de la table en fait. par ex mettre à jour le profil d'un utilisateur, mais les nouvelles données ne se mettent pas sur la ligne de cet utilisateur mais sur celle du 1er enregistrement, soit un autre utilisateur.
c'est tout le prob de mes DBEdit.
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 7 sept. 2002 à 22:30
Les DBEdit comme tous les composants orientés données écrivent sur la ligne en cours de la Table. C'est au programme ( First, Last, Next, Prior, FindKey(), Locate() .... ) ou à l'utilisateur ( via un DBNavigator ) de se positionner sur la bonne ligne de la table en ensuite seulement de saisir les donneés. Quand ensuire les données sont valisées par un Post ou un déplacement dans la table, alors elles sont bien écrites sur la ligne voulue.