PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → SQL Update par websevice
SQL Update par websevice
Started by Frédéric BLANC, Nov., 20 2017 2:57 PM - 1 reply
Registered member
6 messages
Popularité : +1 (1 vote)
Posted on November, 20 2017 - 2:57 PM
Bonjour,

Je développe une application Android qui enregistre un TAG NFC et le lie à un client (+sa position GPS).
Au démarrage, l'application fait un SELECT sur le serveur et insère les données dans une table locale de l'application via les services Web de Windev (serveur vers Android). Pas de souci.

Maintenant la table locale a été modifiée et je souhaite donc mettre à jour la table sur le serveur (Android vers serveur).
Voici mon code:
Procedure UpdateProteckSites()
sdLocaledb est une Source dede Données
sReqUP est une chaîne


sRequete = [
SELECT
SitesDBLocale.IDSite AS IDSite,
SitesDBLocale.NFCTagSite AS NFCTagSite,
SitesDBLocale.Latitude AS Latitude,
SitesDBLocale.Longitude AS Longitude
FROM
SitesDBLocale
WHERE
SitesDBLocale.NFCTagSite <> 'NULL' AND Sitesdblocale.Latitude <> '0.000000' AND Sitesdblocale.Longitude <> '0.000000'
ORDER BY
IDSite Asc
]

sReqUP = [
UPDATE
sites
SET
SiteTAG = '%1', SiteLatitude = '%2', SiteLongitude = '%3'
WHERE
sites.IDSite = '%4'
]



HExécuteRequêteSQL(sdLocaledb,hRequêteDéfaut,sRequete)
HLitPremier(sdLocaledb,IDSite)
TANTQUE HEnDehors() = Faux
nIDSite = sdLocaledb.IDSite
sSiteTag = sdLocaledb.NFCTagSite
sLatitude = sdLocaledb.Latitude
sLongitude = sdLocaledb.Longitude

SI nConnexionDB <> 0 ALORS //nConnexionDB est un entier = SQLConnecteWS("http://srv-ws/WDSOAPDB_WEB/","srv-ws","admin","xxxxxxxxxxx","XXXXX","MYSQL")

sReqUP = ChaîneConstruit(sReqUP,sSiteTag,sLatitude,sLongitude,nIDSite)

// info(sReqUP) --> donne la bonne requête

SQLExec(sReqUP,"MonUpdate")
SQLDéconnecte()

SINON
SQLInfoGene()
Erreur(SQL.MesErreur)
ChangeEtatRondierPlus(3)
FIN
HLitSuivant(sdLocaledb,IDSite)

FIN


Pas d'erreur mais en revanche la table du serveur n'est pas mise à jour. En mode test par Windev Mobile et en entrant des valeurs en dur dans la requête, cela fonctionne. Je ne comprends pas pourquoi cela ne fonctionne pas. J'ai fais différents tests avec SQLExec CREATE TABLE, SELECT, c'est ok. Mais UPDATE, ça ne veut pas...

Je remercie la communauté par avance.

Fred
Registered member
6 messages
Popularité : +1 (1 vote)
Posted on November, 21 2017 - 8:07 AM
OK, ok,

Mauvaise utilisation de SQLExec...