Bonjour, je suis en trainde developper des procedures stockées dont 2 qui s'appelent ensemble.


Voici la premiere : SAVE_CLIENT
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
 
CREATE PROCEDURE [SAVE_CLIENT] (
	@pPER_ID bigint OUTPUT,
	@pPER_NOM varchar(50),
	@pPER_PRENOM varchar(50),
	@pPER_EMAIL varchar(50),
	@pPER_PASSWORD varchar(50),
	@pPER_TELEPHONE varchar(15),
	@pPER_MOBILE varchar(15),
	@pPER_DELETED bit
)AS
BEGIN
	DECLARE @myCount bigint;
 
	--Execution de la procedure stockee
			EXEC SAVE_PERSONNE @pPER_ID, @pPER_NOM, @pPER_PRENOM, @pPER_EMAIL, @pPER_PASSWORD, @pPER_TELEPHONE, @pPER_MOBILE, @pPER_DELETED 
 
	-- Comptage
	SELECT @myCount = count(PER_ID) FROM CLIENT WHERE PER_ID = @pPER_ID;
 
	IF @myCount is null OR @myCount=0
		BEGIN
 
			INSERT INTO CLIENT ([PER_ID]) VALUES (@pPER_ID);
 
			SET @pPER_ID = @@IDENTITY;
		END
END
GO
la procedure appelée SAVE_PERSONNE

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
 
CREATE PROCEDURE [SAVE_PERSONNE] (
	@pPER_ID bigint OUTPUT,
	@pPER_NOM varchar(50),
	@pPER_PRENOM varchar(50),
	@pPER_EMAIL varchar(50),
	@pPER_PASSWORD varchar(50),
	@pPER_TELEPHONE varchar(15),
	@pPER_MOBILE varchar(15),
	@pPER_DELETED bit
)AS
BEGIN
	DECLARE @myCount bigint;
 
	-- Comptage
	SELECT @myCount = count(PER_ID) FROM PERSONNE WHERE PER_ID = @pPER_ID;
 
	IF NOT @myCount is null AND @myCount<>0
		BEGIN
			UPDATE PERSONNE SET
			PER_NOM = @pPER_NOM,
			PER_PRENOM = @pPER_PRENOM,
			PER_EMAIL = @pPER_EMAIL,
			PER_PASSWORD = @pPER_PASSWORD,
			PER_TELEPHONE = @pPER_TELEPHONE, 
			PER_MOBILE = @pPER_MOBILE, 
			PER_DELETED = @pPER_DELETED
			WHERE PER_ID = @pPER_ID;
		END
	ELSE
		BEGIN
			INSERT INTO PERSONNE ([PER_NOM], [PER_PRENOM], [PER_EMAIL], [PER_PASSWORD],
			[PER_TELEPHONE], [PER_MOBILE], [PER_DELETED]) VALUES
			(@pPER_NOM, @pPER_PRENOM, @pPER_EMAIL, @pPER_PASSWORD, @pPER_TELEPHONE, 
			 @pPER_MOBILE, @pPER_DELETED);
 
			SET @pPER_ID = @@IDENTITY;
		END
END
GO
quand j'appelle ma procedure SAVE_CLIENT, je lui passe null en id afin de lui dire qu'il doit faire un insert. seulement il insert bien dans personne mais je recupere pas l'id qui vient d'etre genere pour l'inscrire dans la table CLIENT.

pourriez vous m'aider svp !

Merci

bien cordialement,