sikove
Messages postés90Date d'inscriptionlundi 17 mars 2008StatutMembreDernière intervention31 mars 2010
-
27 janv. 2009 à 17:24
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
27 janv. 2009 à 18:01
Salut,
depuis ce matin, dieu seulemet sait comment j'ai testé et essayé de le faire fonctionner mais ça ne marche pas
donc voila comment éxecuter une procédure stockée qui as un parametre de sortie (output) ? pourtant j'ai bien écrit mon code :
Code VB.NET / ADO.NET:
----------------------------------------
Dim scom As New SqlCommand("nbrmsg", scon)
scom.CommandType = CommandType.StoredProcedure
Dim spar As SqlParameter = scom.Parameters.Add("@val", SqlDbType.Int)
spar.Direction = ParameterDirection.ReturnValue
scon.Open()
Try
Dim sdr As SqlDataReader = scom.ExecuteReader
While sdr.Read
MsgBox(spar.value)
End While
sdr.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
scon.Close()
Ma procédure :
------------------------------------
create proc nbrmsg (@val int output) as
begin
select @val=count(*)
from message
end
-declare @nb int
-exec nbrmsg @nb output
-select @nb
Dim scom As New
SqlCommand("nbrmsg", scon)
scom.CommandType =
CommandType.StoredProcedure Dim spar As SqlParameter scom.Parameters.Add("@val", SqlDbType.Int) spar.Direction ParameterDirection.ReturnValue
scon.Open()
Try
Dim sdr As SqlDataReader
= scom.ExecuteReader
While sdr.Read
MsgBox(spar.value)
End While
sdr.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
scon.Close()
Ma procédure :
------------------------------------
create
proc nbrmsg (@val int output) as
begin
select @val=count(*) from
message
end
-declare @nb int
-exec nbrmsg @nb output
-select @nb
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 janv. 2009 à 18:01
Salut
La syntaxe SQL est bonne.
D'après la doc, il semble y avoir une différence entre ReturnValue et Output :
Output représente une variable définie comme telle dans la procédure
ReturnValue renverra le code d'exécution de la procédure (les fameux chiffres impairs quand défaut, et pair pour warning)
Je pense donc qu'il faudrait utiliser ParameterDirection.Output A approfondir
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)