PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Requette SQL qui s'arrete toute seule....mais pourquoi?
Requette SQL qui s'arrete toute seule....mais pourquoi?
Débuté par Fred2355, 13 avr. 2019 12:59 - 2 réponses
Membre enregistré
231 messages
Popularité : +7 (7 votes)
Posté le 13 avril 2019 - 12:59
Bonjour à tous,

J'ai écrit une petite routine pour mettre à jour la table SQL de ma BdD. Dans cette routine, je fait appel à deux tables de façon a mettre à jour l'une des deux en fonction de l'autre. Voici de ce que j'ai ecrit:

SI NumConnexion <> 0 ALORS
SI SQLExec("SELECT T1.quantité, T2.reference1 FROM stockdispo AS T1 INNER JOIN prepa AS T2 ON T1.numproduit1 = T2.numproduit1 ", "REQ5")= Vrai ALORS
TANTQUE SQLAvance("REQ5") = 0 // Il y a encore une ligne à lire
refproduit=SQLLitCol("REQ5", 2)
qtestock=SQLLitCol("REQ5", 1)
SI SQLExec("UPDATE prepa SET stock = '"+ qtestock+"' WHERE refarticle = '"+refproduit+"'" , "REQ5")=Vrai ALORS
//
SINON
SQLInfoGene("SQL_Ajout")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
FIN
FIN
SINON
Info("PB")
FIN
SQLFerme("REQ5")

Mon probleme est que le premier article traité est bien mis à jour en terme de quantité en stock mais ça s'arrete la.
Alors que si je remplace :

SI SQLExec("UPDATE prepa SET stock = '"+ qtestock+"' WHERE refarticle = '"+refproduit+"'" , "REQ5")=Vrai ALORS
//
SINON
SQLInfoGene("SQL_Ajout")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN

par

info(refproduit,qtestock)

je vois bien tout mes produits et toutes mes quantités.

J'en déduit que ma requête UPDATE est soit mal écrite, soit que WEBDEV ne sait pas gérer une requête inclus dans une autre.
A moins que WEBDEV ne sait pas gerer la mise à jour d'une table appelée en INNER JOINT?

Qui peut me dire ou je me suis trompé?

Merci à vous
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 15 avril 2019 - 09:21
Bonjour,

Il y a bien un problème dans ton update. Tu as donné comme nom pour tes requêtes "REQ5" dans les 2 cas. Une fois que tu as fait l'update, Il n'y a plus rien à parcourir dans REQ5 puisque remplacé par le résultat de l'update.

Change le nom de la requête pour l'update et je pense que ça ira mieux

--
Cordialement,

Philippe SAINT-BERTIN
Membre enregistré
231 messages
Popularité : +7 (7 votes)
Posté le 15 avril 2019 - 10:11
Bonjour

OK, merci pour ton explication.
Je vais corriger cela.

Merci