Bonjour à tous,

Mon premier post sur ce forum, étant un utilisateur débutant de SQL et de son environnement (SQL adaptative Serveur Anywhere 8 + ISQL)

Je cherche, dans une table, les n premier enregistrements d'une table (stock) pour lesquels la somme d'un des champs vaut 41 (fixe pour le moment), et je veux récupérer des infos dans une autre table (table_OF) en rapport avec les n Enregistrements trouvés.

Le code que j'essaye est :

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
18
19
20
21
22
23
24
25
26
27
28
29
30
declare @nb int
declare @qt int 
declare @ordre varchar(12)
 
 
 
declare curs_mvt cursor for 
select  A, B  from stock where produit='AAAAA' and date_s<='20110412' and type='EST' order by date_s desc
for read only
 
 
set @nb = 0
set @qt=0
 
 
create table #new_of (numero_of varchar(12))
 
open curs_mvt
 
while @nb < 41 
begin
 
fetch  curs_mvt into @qt, @ordre
set @nb = @nb+@qt
select num_of into #new_of from table_of where num_of=@ordre
end 
close curs_mvt
deallocate curs_mvt
 
select * from #new_of
Lorsque je l'exécute, j'ai le message d'erreur "Erreur sur la ligne 1, Tentative d'opération sur le curseur incorrecte"

Si j'enlève la dernière ligne, qui n'a rien à voir avec le curseur, je n'ai plus de message d'erreur, mais aucun echo dans la fenêtre "données" de ISQL.

Merci d'avance de votre aide.