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 :

[SQL2005][TSQL] Problème de curseur / Fonction ne "compile" pas


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut [SQL2005][TSQL] Problème de curseur / Fonction ne "compile" pas
    Bonjour !

    Je tente, depuis une bonne heure déja, de créer une fonction vérifiant la disponibilité d'une salle (petit programme de gestion de réunions).

    L'idée est assez simple : je charge dans un curseur toutes les réunions qui auront lieu dans la salle choisie et je vérifie a chaque fois que les dates/heures ne se chevauchent pas (via ma fonction "dbo.DateHeureSeChevauchent" qui, elle, fonctionne).

    Le problème est que j'ai ce message d'erreur pas super précis :
    "Msg 102, Level 15, State 1, Procedure IsSalleAvailabol, Line 21
    Incorrect syntax near '='."

    Quelqu'un a une idée de ce que j'aurai foiré ? Car la doc de msdn ne m'aide pas trop sur le coup

    Merci d'avance !

    François

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    SET ANSI_NULLS ON 
    SET QUOTED_IDENTIFIER ON 
    GO
    -- =============================================
    -- Description:	<Vérifie Disponibilité Salle>
    -- =============================================
    CREATE FUNCTION [dbo].[IsSalleAvailabol] (@SAL_ID int, @DATE_DEB datetime, @DATE_FIN datetime)
    RETURNS bit
    AS
    BEGIN
    	DECLARE @retVal bit
    	DECLARE @reu_id int, @var_hdeb datetime, @var_hfin datetime
    	DECLARE MY_CURSOR Cursor
     
    	FOR SELECT REU_ID, REU_DATE, REU_HFIN 
            FROM   reunion 
            WHERE  FK_REU_SAL_ID = @SAL_ID;
     
    	OPEN MY_CURSOR
    	FETCH NEXT FROM MY_CURSOR INTO @reu_id, @var_hdeb, @var_hfin
    -- Ligne 21
    	WHILE @@FETCH_STATUS = 0
    	BEGIN
    		IF(dbo.DateHeureSeChevauchent(@DATE_DEB, DATE_FIN, var_hdeb, var_hfin = 1)
    			SELECT @retVal = 1
     
    		--EXIT
    		FETCH NEXT FROM MY_CURSOR INTO @reu_id, @var_hdeb, @var_hfin -- Nécessaire ou implicite au fait ? 
    	END
     
    	CLOSE MY_CURSOR
    	DEALLOCATE MY_CURSOR
     
    	RETURN @retVal
     
    END
    GO

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    il te manque un parenthèse fermante:
    IF(dbo.DateHeureSeChevauchent(@DATE_DEB, DATE_FIN, var_hdeb, var_hfin = 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF(dbo.DateHeureSeChevauchent(@DATE_DEB, DATE_FIN, var_hdeb, var_hfin = 1))

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    manqué , c'est avant le 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF(dbo.DateHeureSeChevauchent(@DATE_DEB, DATE_FIN, var_hdeb, var_hfin) = 1)

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut
    Halala, putain de syntaxe tout de même, surtout qu'elle est affichée en gris très clair dans le Management Studio !

    Un grand merci Serge pour ta précieuse correction !

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

Discussions similaires

  1. [SQL2005][TSQL] Problème charset/collate
    Par luunaz dans le forum Développement
    Réponses: 12
    Dernier message: 28/07/2009, 21h10
  2. [SQL2005][TSQL]Problème de jointures multiples
    Par Veritas5 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2009, 17h04
  3. [SQL2005] [TSQL] Problème d'auto-jointure et *
    Par Invité dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/12/2007, 16h14

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