Modifier une ligne selectionnee d'un dbgrid par la requete update

Résolu
mahz Messages postés 26 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 20 mai 2011 - 7 févr. 2011 à 19:04
jackblu19 Messages postés 5 Date d'inscription dimanche 16 janvier 2011 Statut Membre Dernière intervention 11 mai 2011 - 26 avril 2011 à 15:27
Bonsoir,
voila mon probleme.je fais une recherche avec la requete SELECT et j' affiche le reultat de la requete dans un dbgrid.
je veux maintenant, lorsqu'on selectionne une ligne de ce dbgrid faire une modification sur cette ligne seulement.
voici la requete que j'ai fait :

SQL.Add('UPDATE MATABLE SET ETAT :etat WHERE ENERGIE :Gaz');
ParamByName('etat').AsString := 'occupee';
ParamByName('Gas').AsString := 'ene';
ExecSQL;

Pour moi, sans le WHERE la modification se passe sur toute la table c'est pourquoi j'ai mis la condition sur un autre cahmp de ma table en attendant d'avoir de l'aide
Cordialemnt!

7 réponses

madcap Messages postés 77 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 22 février 2011
8 févr. 2011 à 22:07
Tu mets la clé primaire dans le DBGrid, après à toi de gérer si tu veux qu'elle soit visible ou pas.

Lorsque l'utilisateur sort de la ligne qu'il a modifiée, fais un update de type :
UPDATE MATABLE SET COL_1 val_1, COL_2 val_2, COL_3 = val_3 WHERE COL_PRIMARY_KEY = cle_primaire_de_la_ligne_modifiee

Est-ce que c'est plus clair pour toi comme ça ?

Bonne soirée
3
madcap Messages postés 77 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 22 février 2011
8 févr. 2011 à 14:08
Salut,

Est-ce une simple faute de frappe ? :

SQL.Add('UPDATE MATABLE SET ETAT :etat WHERE ENERGIE :Gaz');
ParamByName('etat').AsString := 'occupee';
ParamByName('Gas').AsString := 'ene';
ExecSQL;
0
mahz Messages postés 26 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 20 mai 2011
8 févr. 2011 à 16:30
Bonsoir,c'est une faute de frappe. je m'excuse.
pour moi dans la clause where j'ai fixer a 'ene'
Supposons que si dans la colonne ENERGIE on a ene,den,fen,...
donc je veux modifier la colonne ETAT en fonction de ce qui a ete choisit.

SQL.Add('UPDATE MATABLE SET ETAT :etat WHERE ENERGIE :Gas');
ParamByName('etat').AsString := 'occupee';
ParamByName('Gas').AsString := 'ene';
ExecSQL;
Cordialemnt!
0
madcap Messages postés 77 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 22 février 2011
8 févr. 2011 à 16:39
Et bien tu auras tous les enregistrements qui on "ene" comme ENERGIE qui auront comme valeur "occupee" dans la colonne ETAT.

Si ton problème est résolu, penses à cliquer sur réponse acceptée. Merci

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mahz Messages postés 26 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 20 mai 2011
8 févr. 2011 à 16:53
Ce que va retourner comme resutat de la requete que j'ai fait c'est ce que vous dite.
Mais moi ce n'est pas ce que je veux faire.c'est parceque je ne vois pas comment faire que j'ai fait la requete precedente.
je veux lorsqu'on selectionne une ligne du dbgrid contenant des resultats faire une modification sur cette ligne seulement qui a ete modifier. je pensais a la cle primaire mais comment recuperer cette cle ou la ligne a ete selectionnee.
Cordialement!
0
mahz Messages postés 26 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 20 mai 2011
9 févr. 2011 à 12:13
Merci pour votre aide
A plus
0
jackblu19 Messages postés 5 Date d'inscription dimanche 16 janvier 2011 Statut Membre Dernière intervention 11 mai 2011
26 avril 2011 à 15:27
salut tous les amis, je vien de developper une aplication qui gère une base de donnée en acces en arabe
j'ai un probleme de l'intallation de la langue rabe dans mon delphi 5
aidez moi les amis et merci a l'avance pour tous les amis
0
Rejoignez-nous