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

Développement SQL Server Discussion :

Erreur dans l'exécution d'une procédure stockée paramétrée [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 337
    Points : 120
    Points
    120
    Par défaut Erreur dans l'exécution d'une procédure stockée paramétrée
    Bonjour,
    Voilà la procédure

    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
    USE [LEHI]
    GO
    /****** Object:  StoredProcedure [dbo].[BeneficeVente]    Script Date: 11/09/2015 13:00:36 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:	<Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[BeneficeVente] (@DateDebut as Date,@DateFin as Date,@NomElt as nvarchar,@Carburant as Bit,@TypeEtatParJour as bit)
    	-- Add the parameters for the stored procedure here
    	AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
        -- Insert statements for procedure here
     
    	BEGIN
    	select dateoperation as Elt,sum(vente) as Vte,sum(achat) as Ach,sum(vente-achat) as Benef,cast(@DateDebut as nvarchar)+' au '+cast(@DateFin as nvarchar) As Periode,upper(@NomElt) as NomElt,(select sum(sortie) as D from mvt_caisse where (dateoperation between @DateDebut and @DateFin)) as Depense from benefice where (dateoperation between @DateDebut and @DateFin) and (carb=@Carburant) group by dateoperation
    	END
    END
    lorsque j'exécute, voilà le resultat

    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
    USE [LEHI]
    GO
     
    DECLARE	@return_value int
     
    EXEC	@return_value = [dbo].[BeneficeVente]
    		@DateDebut = 01/01/2015,
    		@DateFin = 31/01/2015,
    		@NomElt = N'DD',
    		@Carburant = 0,
    		@TypeEtatParJour = 0
     
    SELECT	'Return Value' = @return_value
     
    GO
    et le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*102, Niveau*15, État*1, Ligne*5
    Syntaxe incorrecte vers '/'.
    Si quelqu'un peut m'aider. j'ai toujours buté sur les procédures stockées et pourtant je veux les maitriser à fond

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EXEC [dbo].[BeneficeVente]
    		@DateDebut = '20150101',
    		@DateFin = '20150131',
    		@NomElt = N'DD',
    		@Carburant = CAST(0 as BIT),
    		@TypeEtatParJour = CAST(0 as BIT)
    Je ne suis pas sûr que le CAST(0 as BIT) soit nécessaire.

    Pas mal la requête sur une seule ligne, c'est pour éviter une bonne lisibilité ?

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 337
    Points : 120
    Points
    120
    Par défaut
    Pas mal la requête sur une seule ligne, c'est pour éviter une bonne lisibilité ?
    je m'excuse de n'avoir pas fait de retour à la ligne.
    il ramène toujours des erreurs sur ta proposition 7gyY9w1ZY6ySRgPeaefZ

    avec le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EXEC [dbo].[BeneficeVente]
    		@DateDebut = '20150101',
    		@DateFin = '20150131',
    		@NomElt = N'DD',
    		@Carburant = 0,
    		@TypeEtatParJour = 0
    voilà le message qu'il me ramène

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*245, Niveau*16, État*1, Procédure*BeneficeVente, Ligne*17
    Échec de la conversion de la valeur varchar 'NON' en type de données bit.
    je crois le problème se situe au niveau des variables @Carburant et @TypeEtatParJour

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    En effet, ça doit se situer sur la comparaison carb=@carburant. Quel est le type de la colonne carb ?

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 337
    Points : 120
    Points
    120
    Par défaut
    j'avais déclaré @Carburant et @TypeEtatParJour de type bit. Finalement, je les ai mis en type Int et la procédure s'exécute sans problème.
    J'ai d'autres préoccupations plus complexes que j'exposerai ailleurs.
    Je vous remercie beaucoup pour l'aide

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

Discussions similaires

  1. Erreur dans l'exécution d'une procédure
    Par robert.parise dans le forum Projets ADP
    Réponses: 0
    Dernier message: 21/03/2014, 03h20
  2. Réponses: 3
    Dernier message: 26/10/2011, 10h15
  3. Réponses: 2
    Dernier message: 13/06/2011, 12h10
  4. Réponses: 0
    Dernier message: 16/02/2011, 21h24
  5. Réponses: 2
    Dernier message: 30/09/2008, 14h49

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