|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2003 Messages : 46 ![]() |
Bonsoir à tous,
j'ai dans ma base de données une Procédure Stockée, dans laquelle je construite une requête dynamiquement : Code :
- la première fois, elle me renvoie comme résultset un nombre "2560" - la seconde fois, il me renvoie le bon nombre (en l'occurence, 660) J'ai donc 2 fois le même appel de procédure stockée, et j'ai 2 résultats différents. Note : si j'appelle la procédure une 3ème fois, le résultat est toujours correct (660), mais, décidément, le premier appel, ça ne passe pas correctement. Quelqu'un a t'il déjà été confronté au même problème ? cdlt, |
||
|
|
00
|
|
|
#2 | |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Citation:
|
|
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2003 Messages : 46 ![]() |
La première fois que j'appelle la procédure stockée :
Code :
|
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2003 Messages : 46 ![]() |
Je précise au passage que j'ai vérifié les requêtes qui sont générées avant d'être exécutées : ce sont exactement les mêmes.
|
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
que veut dire "la première fois" ? la première fois à chaque ouverture de session ? à chaque redémarrage du serveur ? à chaque fois que tu lances la procédure deux fois de suite ?
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2003 Messages : 46 ![]() |
La premiere fois que j'appelle la procédure stockee (??)
Je ne m'occupe pas du redemarrage du serveur ou de la session : la base de donnees tourne sur un autre poste. Pour etre un peu plus precis, j'utilise un outil interne de l'IDE IntelliJ d'IDEA pour lancer mes requetes. J'ai aussi MySQL Browser 1.2.8. J'utilise la meme bibliotheque (mysql-connector-java-5.0.4-bin.jar, que j'ai recupere sous "\MySQL GUI Tools 5.0\java\lib") pour executer des requetes dans la base de donnees. Donc dans le browser SQL d'Intellij IDEA, je peux ouvrir plusieurs fenetres, et dans chaque fenetre je peux ecrire des requetes SQL et les executer. C'est dans ce cas, ou je lance 2-3 requetes (dont les 2 appels de procedures stockees), que je trouve le bug : le 1er appel de PS donne un resultat incoherent et faux, le 2sd est correct et bon (le 3ème est bon, etc). Et je suis tombe sur un os supplementaire : - j'ai teste avec une requete beaucoup plus simple (compter le nombre de lignes dans une table ou recuperer la liste des donnees dans une petite table). - J'ai alors le meme probleme que precedemment : le 1er appel (sous le browser de l'IDE Intellij IDEA) donne un resultat faux, a partir du 2sd appel de procedure stocke c'est bon. - par contre, quand j'appelle cette meme procedure sous MySQL Browser, aucun probleme ! Le résultat est tout à fait cohérent et c'est bien le résultat attendu.
|
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
certains requêteurs, comme MySQL Query Browser, ouvent et ferment une session à chaque fois qu'ils lancent une requête ou paquet de requêtes...
Je vois donc deux hypothèses : - soit ta "première fois" est une "première fois" par session (ce que tu peux vérifier avec le client texte), par exemple parce que tu modifies une variable système dans ta procstock ; si Intellij IDEA et QB fonctionnent sur ce même principe, tu retrouves le même bug dans les deux - soit c'est un pb lié à Intellij IDEA, non reproductible sous QB ou le client texte, et MySQL n'y est pour rien |
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2003 Messages : 46 ![]() |
J'ai trouvé l'erreur
Quand on met un champ de commentaires avant l'appel d'une procédure stockée, ça la fait planter, ou donner un résultat incohérent. Par contre, quand on ouvre une fenêtre où on appelle la procédure stockée (donc sans commentaires AVANT cet appel : "-- ceci est un commentaire"), aucun problème. Apparemment pas de soucis si l'on met des commentaires après l'appel (encore heureux). Mais quid de la cause de ce bug ?? Merci de m'avoir répondu et d'avoir essayé ce creuser le problème, qui fut épineux. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com