PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Requête résultat différent entre Windev et Windev Mobile Android
Requête résultat différent entre Windev et Windev Mobile Android
Started by Sauveur CONSALVI, Sep., 16 2020 11:57 AM - 7 replies
Registered member
372 messages
Popularité : +7 (7 votes)
Posted on September, 16 2020 - 11:57 AM
Bonjour,
Voici ma requête, sur un fichier de la base de données sur le serveur KALANDA
SELECT
tabSMS.IDtabSMS AS IDtabSMS,
tabSMS.IDtabSociete AS IDtabSociete,
tabSMS.SMSTel AS SMSTel,
tabSMS.SMSMsg AS SMSMsg,
tabSMS.SMSStatut AS SMSStatut,
tabSMS.SMSDateSaisie AS SMSDateSaisie,
tabSMS.SMSDateEnvoi AS SMSDateEnvoi
FROM
tabSMS
WHERE
tabSMS.IDtabSociete = {ParamIDtabSociete}
AND tabSMS.SMSStatut = {ParamSMSStatut}

En mode test, sous émulateur Android, je peux faire des sélections à l'aide des paramètres
Mais en exécution sous Android, c'est à dire une fois installé sur mon smartphone, je n'ai plus de sélection ! C'est le fichier complet qui est lu !!!

Comment faut-il faire ?

--
Cordialement
SC
Registered member
1,623 messages
Popularité : +100 (114 votes)
Posted on September, 16 2020 - 3:40 PM
Bonjour,

Il faudrait s'assurer que ce soit la bonne base qui soit lue dans un premier temps.
Ensuite il faudrait verifier que les parametres soient bien passés a la requete.
Registered member
372 messages
Popularité : +7 (7 votes)
Posted on September, 16 2020 - 5:20 PM
C'est la bonne base qui est lue
Mais comment vérifier que les paramètres sont bien passés ?
S'ils le sont en émulation, cela doit être de même sous Android ?

--
Cordialement
SC
Registered member
1,623 messages
Popularité : +100 (114 votes)
Posted on September, 17 2020 - 5:17 PM
Pas forcément, entre l'environement de test et en réel il peut y avoir des différences.
Pour tester les valeurs, mettre une trace avec un Info() pour s'assurer deja que tout soit bien passé en parametres.
Registered member
372 messages
Popularité : +7 (7 votes)
Posted on September, 18 2020 - 1:54 PM
Bonjour à tous,
Désolé de vous avoir sollicité pour rien ...
J'ai du faire de grosses bêtises, car maintenant tout marche correctement ...
Cordialement
SC

--
Cordialement
SC
Registered member
372 messages
Popularité : +7 (7 votes)
Posted on September, 18 2020 - 2:55 PM
Non, j'ai répondu trop vite !!!!

Bonjour à tous,
Je croyais avoir résolu le problème, mais non .....
Je dois être aveugle et ne pas voir ce qui est évident !!!!
Info("avant req MaJ Société "+gnNocieteIdentDeCrypte+" Statut "+gbStatut)
SI HExécuteRequête(REQ_SMS_Lecture,gNomConnexion,hRequêteDéfaut,gnNocieteIdentDeCrypte,gbStatut) = Faux ALORS
Erreur("Erreur requête lecture SMS" + RC + HErreurInfo(hErrComplet))
RETOUR
SINON
ToastAffiche("Nombre de SMS à envoyer : "+HNbEnr(REQ_SMS_Lecture),toastCourt,cvMilieu,chCentre)
HLitPremier(REQ_SMS_Lecture)
TANTQUE PAS HEnDehors()
// Traitement sur l'enregistrement de la requête
SMS.Numéro = REQ_SMS_Lecture.SMSTel
SMS.Message = REQ_SMS_Lecture.SMSMsg
gnIDtabSociete=REQ_SMS_Lecture.IDtabSociete
Info("SMS Requète "+REQ_SMS_Lecture.SMSTel+" "+REQ_SMS_Lecture.SMSMsg,REQ_SMS_Lecture.IDtabSociete,"Nombre enregistrement "+HNbEnr(REQ_SMS_Lecture))

HLitSuivant(REQ_SMS_Lecture)
FIN
FIN

Suivant les recommandation, je visualise les paramètres avant de lancer la requête : c'est OK !!!
Mais je ne filtre pas la société !!!
Alors que lorsque je suis sous l'émulateur je ne trouve que deux enregistrements (Les deux de la société demandée), sous ANDROID je lis toute la base !!
De plus, j'ai modifié manuellement le statut des enregistrements sur la base
Sous émulateur, je ne trouve plus rien, alors que sous Android il trouve quand même tous les enregistrements !
Je suis sure maintenant que le problème vient de ce que la valeur des paramètres que je passe est mal interprétée
gnNocieteIdentDeCrypte est un entier
gbStatut est un boolean
J'ai fait un test avec une lecture "classique"
POUR TOUT tabSMS AVEC IDtabSocieteSMSStatut = [ gnNocieteIdentDeCrypte,gbStatut]
Info("SMS lu "+tabSMS.SMSTel+" "+tabSMS.SMSMsg,"Nombre enregistrement "+HNbEnr(tabSMS),tabSMS.IDtabSociete)
FIN

Là, c'est OK !!!
Je n'y comprend rie ....
Cordialement
SC

--
Cordialement
SC
Registered member
372 messages
Popularité : +7 (7 votes)
Posted on September, 23 2020 - 8:17 AM
Bonjour,
Résolu ....
Il ne faut pas indiquer le nom de la connexion dans la requête
Voici tous les codes possibles
// ************ A Requête en garnissant avant les paramètres OK ***********************"
REQ_SMS_Lecture.ParamIDtabSociete = gnIDtabSociete
REQ_SMS_Lecture.ParamSMSStatut = gbStatut
SI PAS HExécuteRequête(REQ_SMS_Lecture,hRequêteDéfaut) ALORS // SI PAS HExécuteRequête(REQ_SMS_Lecture,gNomConnexion,hRequêteDéfaut) ALORS
Erreur("Erreur requête lecture SMS" + RC + HErreurInfo(hErrComplet))
SINON
Info("Exemple A Société "+gnIDtabSociete,"Requête en garnissant avant les paramètres Nombre de SMS à envoyer : "+HNbEnr(REQ_SMS_Lecture))
HLitPremier(REQ_SMS_Lecture)
TANTQUE PAS HEnDehors()
// Traitement sur l'enregistrement de la requête
Info("Exemple A","Requête normale SMS "+REQ_SMS_Lecture.SMSTel+" "+REQ_SMS_Lecture.SMSMsg)
HLitSuivant(REQ_SMS_Lecture)
FIN
FIN


// ************ B Requête "normale" ***********************"
//SI HExécuteRequête(REQ_SMS_Lecture,gNomConnexion,hRequêteDéfaut,gnIDtabSociete,gbStatut) = Faux ALORS
SI HExécuteRequête ( REQ_SMS_Lecture , hRequêteDéfaut , gnIDtabSociete , gbStatut ) = Faux ALORS
Erreur("Erreur requête lecture SMS" + RC + HErreurInfo(hErrComplet))
RETOUR
SINON
Info("Exemple B Société "+gnIDtabSociete,"Requête normale Nombre de SMS à envoyer : "+HNbEnr(REQ_SMS_Lecture))
HLitPremier(REQ_SMS_Lecture)
TANTQUE PAS HEnDehors()
// Traitement sur l'enregistrement de la requête
Info("Exemple B","Requête normale SMS "+REQ_SMS_Lecture.SMSTel+" "+REQ_SMS_Lecture.SMSMsg)
HLitSuivant(REQ_SMS_Lecture)
FIN
FIN

// ****** C Requête en SQL 1 *************** OK
sdSMSnonEnvoyé est une Source dede Données
SI HExécuteRequêteSQL(sdSMSnonEnvoyé, ...
"SELECT * FROM Table_SMS " + ...
"WHERE Table_SMS.IDtabSociete = "+gnIDtabSociete + ...
"AND Table_SMS.SMSStatut = "+gbStatut) = Faux ALORS
Erreur("Erreur à la requête ",ErreurInfo(errComplet))
SINON
Info("Exemple C Société "+gnIDtabSociete,"Requête en SQL Nombre enregistrement "+HNbEnr(sdSMSnonEnvoyé))
HLitPremier(sdSMSnonEnvoyé)
TANTQUE PAS HEnDehors()
// Traitement sur l'enregistrement de la requête
Info("Exemple C","2 Requête en SQL SMS "+sdSMSnonEnvoyé.SMSTel+" "+sdSMSnonEnvoyé.SMSMsg)
HLitSuivant(sdSMSnonEnvoyé)
FIN
FIN

Cordialement
SC

--
Cordialement
SC
Registered member
81 messages
Popularité : +2 (4 votes)
Posted on September, 25 2020 - 10:06 AM
merci du retour.