Bonjour à tous,
J'essaye de créer une procédure stockée qui retourne deux valeurs :

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
ALTER PROCEDURE [dbo].[PS_PC_Retourne_Status_SerialPC] 
	-- Add the parameters for the stored procedure here
 @SecId as nchar(10),
 @RetournStatus as int output,
 @RetournSerial  as varchar(50) output
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    -- Insert statements for procedure here
	SELECT	
		@RetournStatus = Status ,
		@RetournSerial = Serial
	FROM PC
	Where SecID = @Secid
 
 
If @@Rowcount = 1
	Select 
		@RetournStatus, @RetournSerial 
END
RETURN
Puis dans mon Vb j'exploite le résultat comme ceci :

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
    Private Function RequeteRetourneStatusSerial()
 
        'Execution de la requete paramétrée
        maCmd = maCnx.CreateCommand
        maCmd.CommandType = CommandType.StoredProcedure
        maCmd.CommandText = "PS_PC_Retourne_Status_SerialPC"
 
        Try
            'Creation et déclaration des parmétres
            maCmd.Parameters.Add(New SqlParameter("@SecID", SqlDbType.NVarChar, 10))
            maCmd.Parameters("@SecID").Value = Me.TB_Attrib_SecID.Text
 
            'Parametres de sortie
            Dim paramStatus, paramSerial As SqlParameter
            paramStatus = maCmd.Parameters.Add("@Status", SqlDbType.Int)
            paramStatus.Direction = ParameterDirection.Output
 
            paramSerial = maCmd.Parameters.Add("@Serail", SqlDbType.VarChar, 50)
            paramSerial.Direction = ParameterDirection.Output
 
        Catch ex As Exception
            MsgBox("Erreur retournée : " & ex.ToString)
 
        End Try
 
        Try
 
            'Execution de la requête
            maCmd.ExecuteNonQuery()
            Status = CInt(maCmd.Parameters("@Status").Value.ToString())
            Serial = CStr(maCmd.Parameters("@Serial").Value())
 
        Catch ex As SqlException
            MsgBox("Erreur retournée : " & ex.ToString)
        End Try
        'Retourne le numéro du status et le numéro de série
        'voir return tableau si c'est possible
 
    End Function
Cette fonction je souhaiterai qu'elle me retourne a son tour les deux paramètres issus de la requête .

Maintenant l'endroit ou j'essaye d'appeler tout ce petit monde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 AncienStatus = (RequeteRetourneStatusSerial())
                Serial = (RequeteRetourneStatusSerial())
                Status = 2
                Motif = "Affectation à  : " & TB_LogEMEA.Text
                RequeteAjoutPcHistorique(Status, Motif, AncienStatus)
C'était un essai et je suis decu depuis plus de 4 heures et je ne trouve pas comment faire , si vos lumières peuvent m'éclairer la route obscure....

Pour résumer :
Ma procedure stockée me retourne deux valeurs
Ma fonction me retourne ces dexu valeurs
J'exploite ces dexu valeurs .

J'ai peut être pas la bonne procédure de faire ou ....

Merci a tous .