Bonjour,

Je travaille avec SQL SERVER ET Visual Studio .NET.

J'ai deux procédures stockées utilisant un curseur : la première pour l'ajout d'un enregistrement, la deuxième pour la modification. Dans chacune de ces deux requêtes, les curseurs sont utilisés de la même manière quasiment un copier coller.

Mon problème est que lorsque le programme appelle deux fois la procédure stockée d'ajout .... pas de problème, mais lorsque je veux faire :

modification ..... modification
ou
modification ..... ajout

j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
le curseur ... existe déjà
je vous donne l'utilisation du curseur dans la procédure de modification :

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
31
32
33
34
35
36
37
38
39
40
41
42
 
 
CREATE PROCEDURE TOTO
	(
		@x VARCHAR(2),
		@y VARCHAR(2),
	)
 
AS
	DECLARE VerifXY CURSOR FOR
	SELECT x_toto, y_toto
	FROM T_TOTO
	WHERE id_toto = @idTOTO
 
	DECLARE @verifX VARCHAR(2)
	DECLARE @verifY VARCHAR(2)
 
	BEGIN
	          SET @verifX = (SELECT x_toto FROM T_TOTO WHERE id_toto = @idTOTO)
	          SET @verifY = (SELECT y_toto FROM T_TOTO WHERE id_toto = @idTOTO)
 
	           IF @verifX <> @x OR @verifY <> @y
	           BEGIN
	                  OPEN VerifXY
		  FETCH NEXT FROM VerifXY INTO @verifX, @verifY
		  WHILE @@FETCH_STATUS = 0
		  BEGIN
		           IF @x = @verifX AND @y = @verifY
		           BEGIN
		                SET @verif = 0
		           END
    		           FETCH NEXT FROM VerifXY  INTO @verifX, @verifY
		   END
 
	                   CLOSE VerifXY
	                   DEALLOCATE VerifXY
	          END
 
                         .....
 
             END
GO

donc comme e vous le disais, dans la procédure d'ajout c'est la même chose et avec elle je n'ai pas de problème, si quelqu'un a une idée