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