Modifier une ligne selectionnee d'un dbgrid par la requete update [Résolu]

Signaler
Messages postés
26
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
20 mai 2011
-
Messages postés
5
Date d'inscription
dimanche 16 janvier 2011
Statut
Membre
Dernière intervention
11 mai 2011
-
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

Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011

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
Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011

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;
Messages postés
26
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
20 mai 2011

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!
Messages postés
77
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
22 février 2011

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+
Messages postés
26
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
20 mai 2011

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!
Messages postés
26
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
20 mai 2011

Merci pour votre aide
A plus
Messages postés
5
Date d'inscription
dimanche 16 janvier 2011
Statut
Membre
Dernière intervention
11 mai 2011

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