récupérer le code retour d'une procédure stockée
Hello,
j'appelle une procédure stockée (complexe, pas un simple insert & cie) et j'aimerais récupérer une valeur de retour (code erreur déterminé dans la procédure stockée).
Code:
1 2 3 4 5 6
| ALTER PROCEDURE [dbo].[ma_proc]
...
@CODE_RETOUR integer OUTPUT
AS
...
SELECT @CODE_RETOUR = 666 |
Code:
1 2 3 4 5 6 7 8 9 10
| SqlCommand sqlCmdImportAppli = new SqlCommand();
sqlCmdImportAppli.CommandType = CommandType.StoredProcedure;
sqlCmdImportAppli.CommandText = "[ma_proc]";
sqlCmdImportAppli.Connection = ConnexionBD;
...
SqlParameter sqlPrmCodRet = sqlCmdImportAppli.Parameters.Add("CODE_RETOUR", SqlDbType.Int);
sqlPrmCodRet.Direction = ParameterDirection.ReturnValue;
int ret = sqlCmdImportAppli.ExecuteNonQuery();
int codErr = Convert.ToInt32(sqlCmdImportAppli.Parameters["CODE_RETOUR"].Value); |
Mais ret vaut -1 : ça ne me choque pas, vu qu'apparemment c'est censé retourner un "nombre de lignes affectées", ce qui n'a pas de sens ici.
Mais codErr vaut 0, et pas 666 comme attendu. :(
Quelqu'un peut m'aider ? Je ne trouve rien à ce sujet sur le net.