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 :

curseur et fonction (2000)


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut curseur et fonction (2000)
    Bonjour je dois ecrire une fonction qui renvoit une table fabriquée dans la fonction...un peu comme une vue,
    je dois absolument utiliser un curseur mais cela me pose probleme.
    Est il impossible d utiliser un curseur dans une fonction sql server?

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    voici 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
    22
    23
    24
    CREATE FUNCTION dbo.Test ()  
    RETURNS TABLE AS  
    BEGIN 
     
     
    	DECLARE @t INT, @m INT
            DECLARE tCURS CURSOR FOR
    		SELECT t, m FROM tTable
     
    	OPEN tCURS
     
    	FETCH tCURS INTO @t, @m
     
    	WHILE @@FETCH_STATUS = 0
    	BEGIN
    		PRINT @t
    		FETCH tCURS INTO @t, @m
    	END
     
    	CLOSE tCURS
    	DEALLOCATE tCURS
     
    	RETURN (select * from tTable)--histoire de renvoyer qq chose pour le moment
    END
    et voici le message d erreur que je me prend
    Erreur 170: Line 25 : incorrect syntax near 'BEGIN'

  3. #3
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Bonjour,

    Je ne suis pas allé plus loin, mais je pense qu'il y a une erreur dès la ligneIl faut mettre la table dans une variable et la décrire ! Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RETURNS @RESU TABLE
    	(
    	t	int,
    	m	int
    	)
    AS

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    oui et c est bien la mon probleme...
    je ne connais pas la structure de la table et mon curseur doit me permettre de parcourir une autre table afin de construire une chaine de caractere qui constituera la requete executée pour le retour...

  5. #5
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Ouhlala ! Ca me paraît compliqué cette histoire.
    Mais tu as quand même cette table tTable. Tu la connais, non ?

  6. #6
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Par défaut
    tout a fait je la connais c est elle que je vais intérroger, pour chaque enregistrement qui me sera retourner, ma requete de retour sera modifiée, en fait je vais fabriquer une requete qui aliase plusieurs fois la meme table afin d avoir autant de fois la colonne qu il y aura d enregistrement (avec des where différents évidemment)

Discussions similaires

  1. Réponses: 15
    Dernier message: 25/10/2012, 12h32
  2. Optimisation d'un curseur [Sql Server 2000]
    Par nox75 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 14/09/2007, 16h27
  3. [PL/SQL] Traitement d'un curseur dans une fonction
    Par ruda.tom dans le forum Oracle
    Réponses: 1
    Dernier message: 24/10/2005, 22h06
  4. [SQL SERVER 2000] Fonction utilisateur : boucle sans fin
    Par galinijay dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/09/2005, 16h03
  5. fonction utilisateur non reconue par sql server 2000
    Par ouedmouss dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/09/2005, 07h46

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