Bonjour à tous !
Je viens d'entrer dans la 4eme dimension je crois '-_-
J'ai dans mon code SQL le curseur suivant :
Le probleme est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 DECLARE CurRes CURSOR FOR SELECT DISTINCT nrid, titulaire FROM sysadm.am0 WHERE var5='Administrator' and bactive=1 and template is null OPEN CurRes FETCH CurRes INTO @am0_nrid, @am0_titulaire WHILE @@Fetch_Status = 0 BEGIN print @am0_nrid print @am0_titulaire SELECT @jan_todo_b = tot_jan_todo FROM sysadm.x_visit_target WHERE am0_nrid=@am0_nrid and template is null print @jan_todo_b FETCH NEXT FROM CurRes INTO @am0_nrid, @am0_titulaire END CLOSE CurRes; DEALLOCATE CurRes;
Les résultats affichés sont les suivant :
1
User1
25
2
User2
25
25 est donc le résultat de ma requete dans le curseur en prenant @am0_nrid=2
Sauf que pas du tout...quand j'execute manuellement cette requete en remplacant @am0_nrid par 2, cela ne renvoie rien (ce qui est le résultat correct).
On dirait que dans le curseur, la requete est executée avec l'ancienne valeur de @am0_nrid, pourtant le print en début de curseur m'indique bien que cette valeur a été modifiée...
Donc je ne comprends vraiment pas...
J'ai peut etre oublié un truc tout con, mais la je seche.
Quelqu'un verrait où est le probleme ?
EDIT : Bon, jvais encore passer pour un *** mais....Auto-Resolu :p Comme la requete ne renvoie rien la 2eme fois, la variable @jan_todo_b n'est simplement pas écrasée '-_-
Donc en réinitialisant, ca passe...
Partager