Procedure Stockée retournant deux Val , function et exploitation
Bonjour à tous,
J'essaye de créer une procédure stockée qui retourne deux valeurs :
Code:
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:
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:
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 .