Bonjour à tous
j'ai une procédure T-SQL dont le but est de récupérer le nombre de mois entre deux dates.
Quand je l'exécute en passant comme paramètre 0,0 alors j'ai une valeur null. ce qui es normal. cependant quand je passe en paramètre des valeurs existantes dans la base alors j' ai comme message :
voici ma procédure
Code : Sélectionner tout - Visualiser dans une fenêtre à part The command(s) completed successfully.
exple d'exécution
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 CREATE PROC DBO.PS_SEL_VerifNVeauAncienConjoint @code Numeric(9,0), -- code adhérent @code1 Numeric(9,0) -- code conjoint AS DECLARE @Nbre Numeric(9,0) IF NOT EXISTS (SELECT * FROM TB_Beneficiaire WHERE (IdBen = @code1) ) --un nouveau conjoint BEGIN IF EXISTS(SELECT * FROM TB_Beneficiaire INNER JOIN TB_SortirAssurance ON TB_Beneficiaire.IdBen = TB_SortirAssurance.IdBen WHERE (TB_Beneficiaire.IdCatBen = 6) AND (TB_Beneficiaire.IdAdhBen = @code)) BEGIN SET @Nbre =(SELECT TOP 1 (DATEDIFF(Month, TB_SortirAssurance.DatSortAss, GETDATE())) FROM TB_Beneficiaire INNER JOIN TB_SortirAssurance ON TB_Beneficiaire.IdBen = TB_SortirAssurance.IdBen WHERE (TB_Beneficiaire.IdCatBen = 6) AND (TB_Beneficiaire.IdAdhBen = @code) ORDER BY TB_SortirAssurance.DatSortAss, TB_Beneficiaire.IdBen DESC) SET @Nbre =null END ELSE BEGIN SET @Nbre =null END SELECT @Nbre AS Nbre END GO
je ne comprend rien. et ceci fait que mon code hôte en visual basic m'indique que mon recordset est fermer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 execute PS_SEL_VerifNVeauAncienConjoint 35,35
quelqu'un peut il m'aider a mieux comprendre ce phénomène ?
merci d'avance.
Partager