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 :

Pb de passage de paramètre, proc stockée


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Points : 26
    Points
    26
    Par défaut Pb de passage de paramètre, proc stockée
    Bonjour tlm,

    Voici mon problème, j'appel une procédure stockée depuis ma page web, voici le code de ma procédure stockée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE PROCEDURE [dbo].[dt_checkLogNormMrq]
    (@FileName varchar(254), @Software varchar(254), @Company varchar(64), @Product varchar(64), 
    @Date varchar(32), @Version varchar(32), @OriginalFileName varchar(32), @LangID varchar(10))
    AS
    DECLARE @retour	int
     
    	EXEC @retour = dbo.checkinclusionlogiciel @FileName, @Software, @Company, @Product, @Date, @Version, @OriginalFileName, @LangID
     
    RETURN @retour
    GO
    Tout marche très bien jusqu'attend qu'une valeur vide est passés en paramètre. A vrai dire, il ne la passe pas en paramètre c'est ca le problème. Au lieu de passer la chaine de caractère vide, il passe a l'autre paramètre et ignore le paramètre dont la valeur est vide.. cependant ma procédure attend tout ses paramètres, vide ou non, ce qui créer un erreur.
    Je dois pouvoir passer une chaine de caractère vide, ou à la limite un null, car dans mon traitement une valeur vide est aussi importante qu'une valeur contenant des caractères.
    Merci d'avance
    En attente de vos suggestions
    Abyssos

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Appelez la SP avec le nom des paramètres...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC @retour = dbo.checkinclusionlogiciel @FileName=@FileName, @Software=@Software, @Company=@Company, @Product=@Product, @Date=@Date, @Version=@Version, @OriginalFileName=@OriginalFileName, @LangID=@LangID
    ... j'ai pris comme postulat que vous aviez appelé vos variables comme celles nécessaires à la SP...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Je suis pas sure de comprendre ce que tu veux dire, mais je vais l'essayer de ce pas

    AbyssoS

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Je viens de finir mes tests, et ca ne marche pas. Ca écrase mes données et j'obtient toute des vides (tk, c l'impression que ca me donne). Mes paramètres de ma proc stockée sont ex: @FileName, @Software... ceux de la fonction (checkinclusionlogiciel) que j'appel a l'intérieur de ma procédure sont ex: @logFileName, @logSoftware... les noms ne sont pas semblables. Je sais pas si c'est ce que tu voulais mentionner?!?

    AbyssoS

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Je viens de trouver la source de mon problème, c'est mon replace qui gâchais tout. Comment? ca je le sais pas mais j'ai changer un peu de mon code et tout marche bien à présent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    paramretour = objCMD.Parameters.Add("@Software", OleDbType.VarChar, 254)
            If unLogiciel.Software = "" Then
                paramretour.Value = unLogiciel.Software
            Else
                paramretour.Value = Replace(unLogiciel.Software, "'", "''")
            End If
    Sauf que je trouve ce IF complètement inutile, je vais mettre résolut à ce post, mais si kkun à une piste pour m'éviter de faire des IF qui logiquement sont inutile, ne vous gênez pas

    Bonne fin de journée
    AbyssoS

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/12/2012, 16h42
  2. Réponses: 3
    Dernier message: 18/08/2006, 10h20
  3. Réponses: 10
    Dernier message: 17/05/2006, 11h50
  4. Réponses: 3
    Dernier message: 23/03/2005, 11h28
  5. Réponses: 7
    Dernier message: 10/02/2005, 13h44

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