PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → AgendaAffiche - requête SQL échouée
AgendaAffiche - requête SQL échouée
Débuté par GUY, 24 juin 2022 10:58 - 6 réponses
Membre enregistré
12 messages
Posté le 24 juin 2022 - 10:58
Bonjour,

J'utilise un timer pour régulièrement mettre à jour un agenda avec AgendaAffiche, dont la source est une requête SQL.
La fonction AgendaAffiche efface tout le contenu de l'agenda, puis rempli l'agenda avec le résultat de la requête.
Cela fonctionne bien.

Mais quand la requête échoue (quelque soit la raison), comment peut-on le savoir ?
L'agenda est vidé - j'aimerai pouvoir détecter l'erreur pour relancer l' AgendaAffiche.
Je pourrai tester le nombre d'event dans l'agenda, mais j'ai aussi des agendas vides, donc comment faire la différence ?

Merci pour votre aide

--
Guy De Smet

www.gdsmc.be
Membre enregistré
39 messages
Popularité : +2 (2 votes)
Posté le 24 juin 2022 - 11:58
Vous pourriez utiliser la fonction HNbEnrg(votre requete) pour savoir si elle a des enregistrement.
Ou, effectuez un SI HexécuteRequete(votre requete) = faux, alors votre requête ne s'est pas exécuter.
Membre enregistré
12 messages
Posté le 24 juin 2022 - 12:42
Merci.

Mais cela ne peut pas marcher ,car le HExecuteRequete va faire la requête, qui peut s'exécuter, mais rien ne dit que le AgendaAffiche, qui va réexécuter la requête va fonctionner. J'ai un souci de course en fait.
Vérifier si le nombre d'enregistrements est à 0 ne m'aide pas car certains agendas sont vides de toutes façons, et donc ce ne serait pas une erreur.

Ce AgendaAffiche ne retourne rien et ne semble pas déclencher d'erreur - est-ce que le HErreurInfo donnerait une réponse ?

--
Guy De Smet

www.itplace.com
Membre enregistré
39 messages
Popularité : +2 (2 votes)
Posté le 24 juin 2022 - 14:00
AgendaAffiche ne retournera pas d'erreur si la requête exécutée n'a aucun enregistrement.
Quel type d'erreur attendez-vous ?
Une erreur de paramétrage ? Une erreur d'exécution ? Une erreur de lecture ?...
Membre enregistré
12 messages
Posté le 24 juin 2022 - 21:33
Une erreur d'exécution. Parfois l'agenda se vide, sans explication. La plupart du temps cela fonctionne. C'est du HFSQL client / serveur.
Mais aucune information renvoyée par Windev. Mon alternative est de remplir un tableau de variable qui serait pris comme source pour l'agenda, du coup je peux avoir un HErreurInfo de HExecuteRequete et voir ce qui se passe, mais ce n'est pas franchement optimal.

--
Guy De Smet

www.itplace.com
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 25 juin 2022 - 13:46
Bonjour,
Dans un premier temps, plutôt que d'utiliser un timer, j'utiliserais un trigger AFTER sur les tables composant la requête, cela allège les accès au système.

Dans un deuxième temps, rien n'empêche d'exécuter la requête avant l'AgendaAffiche et de traiter les erreurs sur la requête

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 25 juin 2022 - 13:47
Membre enregistré
12 messages
Posté le 27 juin 2022 - 11:19
Bonjour,

Bonne idée le trigger, je vais tester cela.

En tout cas il devrait y avoir une erreur retournée par le AgendaAffiche, cela simplifierait les choses.

Merci pour votre aide.

--
Guy De Smet

www.itplace.com