|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre émérite
![]() ![]() Inscription : décembre 2003 Messages : 994 ![]() |
Bonjour à tous !
J'ai un code qui ne fonctionne pas et je commence à craquer, c'est sur Sybase. Cette chose boucle à l'infini, alors qu'elle ne devrait faire que 32 itérations (qui est le nb de tupes de la table temporaire #data) Je fais donc mes déclarations : Code :
Voila la boucle proprement dite : Code :
Si vous voyez quelque chose d'évident qui pourrait expliquer les boucles infinies, je veux bien de votre aide !
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse. |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Est-ce que vous modifiez bien la variable "sqlstatus" qui est la SEULE condition de boucle :
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() ![]() Inscription : décembre 2003 Messages : 994 ![]() |
Non je n'y touche pas, c'est ce qui me perturbe
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Si tu rentres dans le corps de cette boucle (c'est-à-dire que sqlstatus vaut 0) et que cette variable n'est pas modifiée dans le corps de la boucle alors ton explication PEUT venir de là.
Remarque : le corps de la boucle peut aussi contenir une instruction provoquant une sortie explicite de la boucle donc il ne faut pas uniquement se focaliser sur sqlstatus et la condition du while.
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() ![]() Inscription : décembre 2003 Messages : 994 ![]() |
normalement c'est pas le FETCH qui modifie le sqlstatus ?
quand il n'y a plus de tuples à lire dans le curseur il change le sqlstatus et je sors bien ?
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Sous Oracle, la fin d'un curseur est détectée par une instruction de ce type :
Maintenant cela doit être spécifique à Sybase donc envoyez moi un mail si vous voulez que je déplace votre post dans le forum approprié.
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Il te manque un fetch dans la boucle While ( il n'est pas automatique comme sous oracle avec for i in select ... loop ... endloop)
Tu peux le mettre juste avant la fin de la boucle. S'il tombe en erreur, le @@sqlstatus vaudra 1 et si tu es arrivé à la fin du curseur il vaudra 2. Et tu pourras ainsi sortir de ta boucle. |
|
|
00
|
|
|
#8 | |||
|
Membre émérite
![]() ![]() Inscription : décembre 2003 Messages : 994 ![]() |
Citation:
ça signifie que je devrais avoir ça ? Code :
edit : désolé je ne peux pas tester serveur surchargé...
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse. |
|||
|
|
00
|
|
|
#9 | ||||
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() ![]() Inscription : décembre 2003 Messages : 994 ![]() |
merci beaucoup,
j'aime mieux la 1ère solution que tu proposes, plus simple. Je mettrai en résolu quand je pourrai tester, saleté de serveur
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse. |
|
|
00
|
|
|
#11 |
|
Membre émérite
![]() ![]() Inscription : décembre 2003 Messages : 994 ![]() |
c'était ça, merci bien
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com