PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → web service / delete sql 1 seul enregsitrement
web service / delete sql 1 seul enregsitrement
Débuté par Laurent HERMANN, 04 fév. 2025 22:51 - 4 réponses
Membre enregistré
296 messages
Posté le 04 février 2025 - 22:51
bonjour,

j'appele un web service
SI sID <> "" ALORS
QueryWSDelete("{""q"":18,""l"":""" + sID + """}")
FIN

PROCÉDURE QueryWSDelete(Jay est un JSON)

QUAND EXCEPTION DANS

restQuery est un restRequête
restQuery..Entête["TokenSoft"] = ChaîneVersUTF8(gsTokenSoft)
SI gbTest ALORS restQuery..Entête["basetest"] = ChaîneVersUTF8("test")
restQuery..AgentUtilisateur = "ista"
restQuery..ContentType = "application/json"
restQuery..Méthode = httpPost
restQuery..Contenu = ChaîneVersUTF8(Jay)
restQuery..URL = gsWSManta + "queryd"

restRep est un restRéponse = RESTEnvoie(restQuery)

//si enmodetest() alors info(restRep..contenu)

SELON restRep..CodeEtat
CAS 200 : RENVOYER restRep..Contenu
CAS 204 : RENVOYER "Rien"
CAS 401 : Info("Accès au webservice non autorisé")
CAS 500 : Info("Erreur d'exécution du webservice : " + RC + RC + restRep..Contenu)
AUTRE CAS
FIN

RENVOYER "error"


....

puis coté web service

PROCÉDURE Soft_Query_Delete()

SI PAS VérifierTokenSoft(Entête("TokenSoft")) ALORS
WebserviceEcritCodeHTTP(401,"Invalid token")
RENVOYER ""
FIN

Jay est un JSON
sQuery est une chaîne = "delete from "
sdReq est une Source de Données

Désérialise(Jay,WebserviceParamètre(paramBuffer),psdJSON)

SELON Jay.q
CAS 18
sQuery += "Projets_détail_D where ID in ({l})"
sdReq.l = Jay.l


AUTRE CAS
WebserviceEcritCodeHTTP(500,"Code non reconnu")
RENVOYER ""

FIN

SI HExécuteRequêteSQL(sdReq,IstaManta,hRequêteSansCorrection,sQuery) ALORS
WebserviceEcritCodeHTTP(200)
RENVOYER "{OK}"
SINON
WebserviceEcritCodeHTTP(500,sQuery)
RENVOYER sQuery
FIN


----------
SID contient une liste d'ID séparé par une ,
seul le 1er enregistrement de l'ID est supprimé dans le fichier

si je joue manuellement la requete dans la console HFCS alors toute la liste est bien supprimée

si quelqu'un à une piste ??? merci

--
LH
Membre enregistré
237 messages
Posté le 05 février 2025 - 15:07
Salut Lolo,

peut être un pb de temps de réponse entre chaque Delete ? je sais pas...
Posté le 06 février 2025 - 09:04
Bonjour,

J'essaierais d'utiliser le point-virgule comme séparateur dans sID.

Erick
Membre enregistré
296 messages
Posté le 06 février 2025 - 11:58
merci Erik

je vais tester mais pour l'instant dans un esprit de production, j'ai mis des delete unitaires dans la boucle


Erick a écrit :
Bonjour,

J'essaierais d'utiliser le point-virgule comme séparateur dans sID.

Erick


--
LH
Membre enregistré
237 messages
Posté le 06 février 2025 - 16:26
tu as essayé de placer un multitache() dans ta boucle ?