IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Valeur de retour d'une procedure stockée


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut Valeur de retour d'une procedure stockée
    Salut,
    Je voudrais savoir comment faire pour retourner la concatenation d'une chaine de caracteres et d'un entier en sortie de ma procedure stockée.
    J'ai voulu passer par les UDF ms je suis confronté à l'utilisation de la non utilisation de l'instruction UPDATE dans les UDF.
    Merci de m'aider.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    En valeur de retour, tu ne pourras pas renvoyer autre chose qu'un entier, en revanche tu peux avoir des paramètres en sortie de ta PS.

    Je n'ai pas d'exemple sous les yeux mais je dirai quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    create maps (@par1 as varchar(10), @monretour as varchar(20) output )
    AS
    UPDate ...;
    set @monretour='ça marche!!';
    Return 0;
    a+
    Soazig

  3. #3
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut
    Salut,
    je ne crois pas trop que cela resout mon probleme dans la mesure ou je ne connais pas le parametre de sortie car en execution il me demande de renseigner la valeur de sortie.
    Voila mon code :
    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
    CREATE PROCEDURE GENERER_CODE_EXAMEN
     
    @VALEUR_RETOUR AS VARCHAR(10) OUTPUT
     
     AS
    DECLARE @CODE_EXAMEN varchar(10);
    DECLARE @PEXAMEN varchar(2);
     
                 SELECT @PEXAMEN=KEY_VALUE FROM T_LABSYS_PARAM  WHERE KEY_NAME='PEXAMEN'
     
    	SELECT	@CODE_EXAMEN =@PEXAMEN+ right('00' + convert(varchar(3),DATEPART( dy, GETDATE( ) )),3) + KEY_VALUE + 1
    	FROM	T_LABSYS_PARAM
    	WHERE	KEY_NAME ='SEXAMEN'
     
    	UPDATE	T_LABSYS_PARAM
    	SET	KEY_VALUE = RIGHT(@CODE_EXAMEN,5)
    	WHERE	KEY_NAME ='SEXAMEN'
                SET @VALEUR_RETOUR=@CODE_EXAMEN;
     
    RETURN 0;
    GO

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Non il ne faut pas renseigner le paramètre de retour mais donner une variable qui te permettra de le récuperer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    declare @VALEUR_RETOUR AS VARCHAR(10)
    exec GENERER_CODE_EXAMEN @VALEUR_RETOUR output
    --Maintenant dans @VALEUR_RETOUR  tu as ta nouvelle valeur 
    --que tu peux voir comme cela.
    SELECT @VALEUR_RETOUR  valeur_de_retour
    a+
    Soazig

  5. #5
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut
    Salut,
    Je maintenu mon code de procedure precedente transmis et j'ai executé vos instructions dans mon query analyser j'ai toujours le message d'erreur de conversion voici le message d'erreur :
    Server: Msg 245, Level 16, State 1, Procedure GENERER_CODE_EXAMEN, Line 11
    Syntax error converting the varchar value 'EX32400098' to a column of data type int.
    Merci de m'aider à resoudre le probleme.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Ton message d'erreur n'a rien à voir avec le fait d'avoir une variable en output.
    Cela vient d'un problème de cast, par exemple ton code ne fonctionnera pas si KEY_VALUE est un int.
    or contrairement aux règles du forum tu ne nous as pas fourni la description de tes tables, et comme j'ai oublié ma boule de cristal je ne peux pas t'aider plus.
    A+
    Soazig

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. La valeur de retour d'une procédure stockée
    Par amine1980 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 25/11/2008, 16h31
  2. [C#] Comment récupérer la valeur de retour d'une procédure stockée ?
    Par Jinroh77 dans le forum Accès aux données
    Réponses: 23
    Dernier message: 05/10/2006, 15h24
  3. [2000] Récupérer la valeur de retour d'une procédure stockée
    Par drinkmilk dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/08/2006, 09h46
  4. Valeur de retour d'une procédure stockée
    Par Rudyweb dans le forum MFC
    Réponses: 4
    Dernier message: 25/02/2005, 17h52
  5. variable de retour d'une procedure stocke
    Par yahia dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2004, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo