Modif 1 ligne d'1 TTable avec DBEdit

cs_naru Messages postés 19 Date d'inscription samedi 7 septembre 2002 Statut Membre Dernière intervention 10 août 2004 - 7 sept. 2002 à 08:14
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 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.

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
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.

May Delphi be with you.
Delphi advanced
0
cs_naru Messages postés 19 Date d'inscription samedi 7 septembre 2002 Statut Membre Dernière intervention 10 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.
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
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.

--- :sleepy) Nono du Moulin :sleepy) ---
0
Rejoignez-nous