Bonjour,
J'utilise Zope 2.11.1 avec le produit ZPyODBCDA.
Je suis confronté au problème suivant:
Si j'exécute une requête SQL à partir de l'interface de développement et qu'une erreur survient, j'ai un message d'erreur _utile_, du type:
Request URL http://********/sql_my_query/manage_test
Exception Type instance
Exception Value ('42P01', '[42P01] Error while executing the query;\nERROR: relation "toto" does not exist (7) (SQLExecDirectW)')En rechanche, si j'utilise cette methode SQL dans une page et que je veux afficher la page, le message d'erreur devient complètement inutile:
Et même au niveau du traceback ce n'est guère plus intéressant car je n'ai même pas le nom de l'objet SQL qui provoque mon erreur (sql_my_query):
Traceback (innermost last):
Module ZPublisher.Publish, line 119, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 42, in call_object
Module OFS.DTMLDocument, line 132, in __call__
<DTMLDocument at /*******/page_test>
URL: http://*******/page_test/manage_main
Physical Path:/*******/page_test
Module DocumentTemplate.DT_String, line 478, in __call__J'ai essayé de voir s'il n'y avait pas moyen de modifier quelque chose dans la fonction __call__ dans DT_String afin de récupérer l'erreur sql à l'origine du plantage, mais franchement, je n'ai pas le niveau en python pour y parvenir.
Est-ce que quelqu'un aurait une idée ou une solution pour faire en sorte d'avoir le retour de la "vraie" erreur au lieu de ce "finally pops bad exception" dépourvu de détail? Parce que ce truc qui est un peu énervant quand on développe, devient vite un enfer quand on débug le programme d'une tierce personne...
Merci d'avance
Mork
(PS: si étourdiment vous avez compris que je demande l'explication de l'erreur signalée en début de ce post, merci de noter que ce n'est pas ma question.^^ Cette erreur, provoquée intentionnellement, constitue juste un exemple)