Bonjour.
Alors voila!!! J'ai un problème :...
-J'ai une procédure stocké d'insertion de produit.
-Une fois le produit inséré je souhaite affecté un jambon à ce produit.
-Pour cela je veux récupérer le numéro auto du produit insérer à l'instant.
-Une fois ce numéro récupérer je peu inseré mon jambon avec la référence au produit.
Voici donc ma procédure Stocké :
La procédure "PS_MAX_IDProd " est bien créée est elle me renvoie bien la bonne valeur quand je la test.
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 PS_AjoutProduit @ListeValeurs varchar(8000), @ListeChamps varchar(8000), @ListeValeursJambon varchar(8000), @ListeChampsjambon varchar(8000) AS BEGIN DECLARE @MA_REQUETE VARCHAR(8000) DECLARE @PK_IDProd INT -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; --On commence la transaction BEGIN TRANSACTION Insertion --on insère les PRODUITS IF((@ListeValeurs <>'NULL')AND(@ListeChamps <>'NULL'))Begin -- On insert le produit dans la table SET @MA_REQUETE='INSERT INTO TD_Produits ('+ @ListeChamps +')VALUES('+ @ListeValeurs +')' EXEC (@MA_REQUETE) End --on insère les JAMBONS IF((@ListeValeursJambon<>'NULL')AND(@ListeChampsJambon<>'NULL'))Begin -- on récupère le PK_IDProd (numéro auto du produit) maximum dans la table TD_Produits SELECT @PK_IDProd = PS_MAX_IDProd -- on insert dans la table de jambon ..... End --on vérifie si il n'y à pas eu d'erreur pendant l'execution des requetes. Si oui on annule tout IF (@@error <> 0) ROLLBACK TRANSACTION Insertion else COMMIT TRANSACTION Insertion END
Cependant j'ai le message d'erreur "PS_MAX_IDProd nom de fonction incorrect" ...
Est-ce que quelqu'un pourrai m'expliquer comment on appel une procédure stockée dans une autre et comment récupérer son résultat ?
...
Merci d'avance et bonne journée![]()
Partager