|
| 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 |
| |
| |
| | | |
|
| | | | |
| | |
|