Bonjour à tous, J’ai un gros souci qui me rend complètement fou. Je fais une petite application sur windev mobile 20. Une table unique sur laquelle je fais la requête ci-dessous : SELECT TRACEUR.IDTRACEUR AS IDTRACEUR, TRACEUR.NO_IMMATR AS NO_IMMATR, TRACEUR.DIRECTION_SCE AS DIRECTION_SCE, TRACEUR.MARQUE_MODELE AS MARQUE_MODELE, TRACEUR.IMEI AS IMEI, TRACEUR.NO_SIM AS NO_SIM, TRACEUR.NO_FACTURE AS NO_FACTURE, TRACEUR.DATE_INSTALLATION AS DATE_INSTALLATION, TRACEUR.NO_PROFORMA AS NO_PROFORMA, TRACEUR.ANNEE AS ANNEE, TRACEUR.RESEAU AS RESEAU, TRACEUR.NO_BC AS NO_BC FROM TRACEUR WHERE TRACEUR.NO_IMMATR = {sNoImmatr} AND TRACEUR.DIRECTION_SCE = {sDirectionContient} AND TRACEUR.IMEI = {sIMEIContient} AND TRACEUR.NO_SIM = {sSimContient} AND TRACEUR.NO_FACTURE = {sFactureContient} AND TRACEUR.NO_PROFORMA = {sProforma} AND TRACEUR.ANNEE = {sAnnee} AND TRACEUR.RESEAU = {sReseau} AND TRACEUR.NO_BC = {sBC} AND TRACEUR.MARQUE_MODELE = {sMarqueContient} ORDER BY NO_FACTURE ASC J’ai donc un écran de filtrage qui contient des champs. Par exemple : Zone de saisie IMEI. Avec un bouton qui exécute la requête en passant la valeur saisie dans la zone de saisie IMEI. REQ_LISTE_VEHIC_CHERCHE.sNoImmatr = RNO_IMMATR REQ_LISTE_VEHIC_CHERCHE.sMarqueContient = RMARQUE_MODELE REQ_LISTE_VEHIC_CHERCHE.sDirectionContient = RDIRECTION_SCE REQ_LISTE_VEHIC_CHERCHE.sIMEIContient = RIMEI REQ_LISTE_VEHIC_CHERCHE.sSimContient = RNO_SIM REQ_LISTE_VEHIC_CHERCHE.sFactureContient = RNO_FACTURE REQ_LISTE_VEHIC_CHERCHE.sAnnee = RANNEE REQ_LISTE_VEHIC_CHERCHE.sProforma = RNO_PROFORMA SELON Sélecteur CAS 1 REQ_LISTE_VEHIC_CHERCHE.sReseau = Null CAS 2 REQ_LISTE_VEHIC_CHERCHE.sReseau = 1 CAS 3 REQ_LISTE_VEHIC_CHERCHE.sReseau = 2 CAS 4 REQ_LISTE_VEHIC_CHERCHE.sReseau = 3 FIN HExécuteRequête(REQ_LISTE_VEHIC_CHERCHE,hRequêteDéfaut) HLitPremier(REQ_LISTE_VEHIC_CHERCHE) SI HEnDehors(REQ_LISTE_VEHIC_CHERCHE) ALORS Sablier(Faux) Info("Aucune ligne correspondant aux critères entrés !") RETOUR SINON ……… Mais la requête ne renvoie rien du tout. La valeur recherchée existe bel et bien Aucune ligne correspondant aux critères entrés ! NB. La description du champ de saisie IMEI, dans l’onglet Détails, Retourner null si vide est coché… Je ne sais pas ce que je fais mal… mais cela me rend fou. Prière de m’aider.
"Mais la requête ne renvoie rien du tout. La valeur recherchée existe bel et bien" Quand je vois 10 paramètres sur une requête, je doute que les 10 existe. As tu testé la requête directement dans l'éditeur avec tes 10 paramètres ?
Merci Popoy pour ta promptitude. En fait, tous les paramètres ne sont pas utilisés en même temps. Effectivement quand je teste dans le simulateur de WM tout marche c'est après génération de l'apk et installation sur un android que la requête marche mal. J'ai même pris les paramètres un à un en mettant les autres en commentaires. La requête ne marche toujours pas.
Ton HExécuteRequête n'as pas de si avant Tu devrais vérifier si ta requête est bien exécuter. Ensuite tu fais un HLitPremier Je ne comprends pas alors ton SI HEnDehors Car il n'y a pas de boucle. Il ne peut être en dehors si il arrive à lire le premier enregistrement de la requête. Je trouve ton code un peu bizarre surtout qu'il n'y a pas de gestion des erreurs ( A moins que ce soit dans la partie que tu n'as pas mis voir le ……… après le sinon)
Merci Popoy. J'ai rajouté si erreurdetecté après hexecuterequete. Aucune erreur n'apparaît. Le Hlitpremier renvoie vrai à Hendehors () si la requête ne renvoie aucune ligne. aide windev. Après l'exécution de la fonction HLitPremier, plusieurs cas peuvent se présenter : le fichier de données est vide ou il n'existe pas d'enregistrement correspondant ...... : aucune lecture n'est effectuée et la fonction Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! renvoie Vrai. ..... dans le cas contraire c'est qu'il des enregistrements trouvés. J'ai plutôt pensé à la gestion des NULL mais je les gère. Merci pour ton temps.
Je sais lire l'aide Mais l'exemple serait plutôt Code (Windev): // Initialise la requête SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(REQ_MaRequête) = Faux ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Erreur d'initialisation de la requête" + RC + Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()) RETOUR FIN // Lecture du premier enregistrement de la requête Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(REQ_MaRequête) TANTQUE PAS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() // Traitement sur l'enregistrement de la requête ... // lecture de l'enregistrement suivant Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() FIN