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

Entity Framework Discussion :

[stroed procedure] retour du retour


Sujet :

Entity Framework

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut [stroed procedure] retour du retour
    bonjour

    j'ai une procédure stocker que je compose et que j'execute avec un execute
    pour simplifier le WHERE ... IN (... ) je passe dans @etats les états que je veux afficher "10,20,30" par exemple

    Code SQL : 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
    ALTER PROCEDURE [dbo].[Etats]
    	-- Add the parameters for the stored procedure here
    	@etats varchar(50) = null,
    	@count bit = 1
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
    	declare @sql nvarchar(max)
    	set @sql = 'select LEFT(TypeModule, 1) AS Position, Finition, '
     
    	if @count = 1 
    		set @sql = @sql + 'COUNT(*) AS Nombre '
    	else
    		set @sql = @sql + 'Etat '
     
    	set @sql = @sql + 'from ediligne '
        set @sql = @sql + 'where filterindex = 0 '
     
    	-- if states are specified
    	if @etats IS not NULL	
    	begin
    		set @sql = @sql + 'and etat in (' + @etats + ') '
    	end
     
    	if @count = 1
    		set @sql = @sql + 'GROUP BY LEFT(TypeModule, 1), Finition'
     
    	execute(@sql)
    END

    si je l'utilise en l’état avec entity il me renvoi le résultat de l’exécute mais pas le tableau

    la seule solution que j'ai trouvé c'est d'en faire une seconde avec
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ALTER PROCEDURE [dbo].[EtatsX]
    	@etats varchar(50) = null,
    	@count bit = 1
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
    	declare @t table(TypeModule varchar(10), Finition varchar(10), Count int)
    	insert @t
    	exec [dbo].[Etats] @etats, @count
    	select * from @t
     
    END

    qui me renvoi le tableau effectif

    mais y'aurait il une solution pour renvoyer le tableau dans la première (j'ai tenté mais ça marche pas)

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    en fait après test je me suis rendu compte que si la procédure stocké renvoi une autre table que celle d'origine
    entityframework n'arrive pas a interpréter le résultat et donc ne renvois pas un enumerable mais juste un entier

    car on a plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      public virtual int TestFunction()
     {
         return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("TestFunction");
     }
    alors qu'on devrait avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public virtual ObjectResult<TestFunction_Result>TestFunction()
     {
         return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("TestFunction");
     }
    donc la question sous jascente comment faire a partir d'un exécute pour générer une table temporaire qui serait interprété correctement par entity comme étant une table

Discussions similaires

  1. Retour de fonction d'une JSP / Procedure
    Par omega67 dans le forum Oracle
    Réponses: 1
    Dernier message: 11/05/2006, 09h08
  2. procedure sans retour
    Par Ania dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/11/2005, 10h47
  3. Réponses: 8
    Dernier message: 13/09/2005, 18h32
  4. retour recursif de plusieurs resultat via une procedure
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/06/2005, 09h47
  5. variable de retour d'une procedure stocke
    Par yahia dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2004, 15h12

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