Bonjour et bienvenue,
Tout d'abord il ne s'agit pas forcément d'une spécificité FMX ni même Windows (forum et tag de la question de départ) mais plus une question "Base de Données" j'ai donc transféré le sujet dans le bon forum.
Ensuite, les éléments sont peu nombreux pour répondre clairement : composants utilisés pour la connexion, SGBD utilisé, description de la table sont autant d'indications permettant de mieux répondre
Soit une table STOCK(IDARTICLE INTEGER,QUANTITE INTEGER)
deux zones de "texte" edtIdArticle, edtQ
le SQL serait :
UPDATE STOCK SET QUANTITE=QUANTITE+:Q where IDARTICLE=:ID
remarquez que j'ai indiqué deux paramètres (Q et ID) signalés par un : devant
Avec une connexion Firedac à la base de données avec le FDConnection on peut déjà faire la mise à jour
lire http://docwiki.embarcadero.com/RADSt...ndes_(FireDAC)
FDConnexion1.ExecSQL('UPDATE STOCK SET QUANTITE=QUANTITE+:Q where IDARTICLE=:ID',[StrToIntDef(edtidArticle.Text),0), StrToIntDef(edtQ,0)]);
cette fonction renvoyant un entier (dans ce cas le nombre d'enregistrements mis à jour) un simple test sur le résultat permet donc de savoir si la commande s'est bien passée
1 2 3 4 5
| var r : Integer;
begin
r:=FDConnexion1.ExecSQL('UPDATE STOCK SET QUANTITE=QUANTITE+:Q where IDARTICLE=:ID',[StrToIntDef(edtidArticle.Text),0), StrToIntDef(edtQ,0)]);
if r=1 then showmessage('mise à jour faite')
else showmessage('erreur mise à jour'); |
Partager