PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Soucis avec Hajoute accès natif MySQL
Soucis avec Hajoute accès natif MySQL
Iniciado por erbl, 20,abr. 2020 15:30 - 10 respuestas
Miembro registrado
275 mensajes
Publicado el 20,abril 2020 - 15:30
Bonjour

Je me permets d'écrire un post sur le forum car je rencontre un problème étrange dans une application de type webservice Windows en production.

On fait une mise à jour d'une table MySQL via la fonction Hajoute . Cette dernière ne renvoit pas Faux.
Pourtant aucun enregistrement n'est ajouté, je ne comprends pas pourquoi.
Est ce que cela vous est déjà arrivé ? Avez vous trouvez une solution ? C'est d'autant plus étrange que c'est un traitement qui est effectué de très nombreuses fois et ça ne le fait que sur un enregistrement. Je ne vois pas ce qui pourrait causer problème surtout qu'Hajoute ne renvoit pas d'erreur

--
Ce n'est pas l'outil le plus important mais la manière de s'en servir
Publicado el 21,abril 2020 - 09:15
erbl avait prétendu :
Bonjour

Je me permets d'écrire un post sur le forum car je rencontre un problème
étrange dans une application de type webservice Windows en production.

On fait une mise à jour d'une table MySQL via la fonction Hajoute . Cette
dernière ne renvoit pas Faux.
Pourtant aucun enregistrement n'est ajouté, je ne comprends pas pourquoi. Est
ce que cela vous est déjà arrivé ? Avez vous trouvez une solution ? C'est
d'autant plus étrange que c'est un traitement qui est effectué de très
nombreuses fois et ça ne le fait que sur un enregistrement. Je ne vois pas ce
qui pourrait causer problème surtout qu'Hajoute ne renvoit pas d'erreur


Etes-vous certain qu'il n'y a pas de clef double ?
Avez-vous essayé de réparer ou d'optimiser la BDD ?

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Miembro registrado
275 mensajes
Publicado el 21,abril 2020 - 10:09
Bonjour
Je suis parti du principe qu'il n'y a pas de clé double car le résultat d'Hajoute n'est pas Faux
Dans le cas d'un doublon, Hajoute doit renvoyer Faux et on doit avoir un Herreur et un Herreurdoublon or je teste le résultat de Hajoute qui ne renvoie pas Faux => D'où ma perplexité
J'ai préféré ne pas modifier la base sur le server pour l'instant car le soucis ne s'est présenté qu'une fois et je ne maîtrise pas les effets de bord d'une réparation / optimisation

--
Ce n'est pas l'outil le plus important mais la manière de s'en servir
Miembro registrado
4.365 mensajes
Publicado el 21,abril 2020 - 10:29
Bonjour,
Que donne le traitement de exceptions ? La plupart du temps, le "Faux" est renvoyé en cas d'erreur, mais pas en cas d'exception.

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
275 mensajes
Publicado el 21,abril 2020 - 11:08
Bonjour
Merci pour le conseil, à priori pas d'exception non plus cf petit bout de code ci dessous. Pas d'erreur ni exception mais pas d'enregistrement dans ma table MySQL
QUAND EXCEPTIONEXCEPTION DANS
bRC = HAjoute(table_cible)
SI bRC=Faux ALORS
Log_Str_Allways("L'enregistrement dans la Table cible n'a pas pu se faire erreur SQL "+HErreur())
FIN
FAIRE
Log_Str_Allways("Résultat ajout la Table cible "+bRC+" erreur "+ExceptionInfo()+" erreur SQL "+HErreur())
FIN


--
Ce n'est pas l'outil le plus important mais la manière de s'en servir
Miembro registrado
275 mensajes
Publicado el 18,junio 2020 - 12:09
Je reviens vers vous
Je rencontre toujours le soucis, j'ai rajouté un sinon à SI bRC = faux, et pas de log qui remonte non plus
Impression tout ce blog de code n'est pas executé ! et rien n'est ajouté à ma table, mais ça le fait que de de temps en temps, je comprends pas vais devenir fou !

--
Ce n'est pas l'outil le plus important mais la manière de s'en servir
Miembro registrado
499 mensajes
Publicado el 18,junio 2020 - 12:18
Bonjour erbl,

Plusieurs questions pour trouver une cause éventuelle :
- Avez-vous des logs d'erreur du côté MySQL ? (vous pouvez trouver où se trouve ce log en exécutant la requête [0])
- Y a-t-il des clés uniques dans cette table ?
- Comment est gérée la clé primaire de cette table (Id automatique, AUTO_INCREMENT, ou autre chose encore ?)
- Est-ce que ce code est exécuté dans le cadre d'une transaction ? Qui serait peut-être rollback à un autre endroit du projet ?

[0] : Requête SQL
SHOW GLOBAL VARIABLES WHERE variable_name LIKE 'log_error';
Miembro registrado
275 mensajes
Publicado el 18,junio 2020 - 15:00
Merci beaucoup !
Finalement j'ai réussi à trouver ! Il y avait bien une erreur côte MySQL qui n'est pas du tout catchée par Hajoute, problème résolu youpi

--
Ce n'est pas l'outil le plus important mais la manière de s'en servir
Miembro registrado
170 mensajes
Publicado el 18,junio 2020 - 15:46
Bonjour,

C'est très bien, mais peux-tu donner plus de détail sur l'erreur qui n'était pas catchée.

Merci pour la postérité.

--
Hth,
Padbrain
Miembro registrado
182 mensajes
Publicado el 19,junio 2020 - 08:01
Alors, de ce que je peux te dire sur MySQL avec les fonctions H, c'est que ces dernières ne fonctionnent pas super bien (lenteurs, erreurs, et j'en passe).
Au final, j'ai préféré tout réécrire en requêtes pures. Et là, ce n'était que du bonheur.
Miembro registrado
275 mensajes
Publicado el 08,septiembre 2020 - 10:57
Padbrain a écrit :
Bonjour,

C'est très bien, mais peux-tu donner plus de détail sur l'erreur qui n'était pas catchée.

Merci pour la postérité.

--
Hth,
Padbrain

En fait, je croyais avoir réglé le problème mais quedalle, j'ai toujours le soucis qui est revenu et je sais toujours pas pourquoi...

--
Ce n'est pas l'outil le plus important mais la manière de s'en servir