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

Silverlight Discussion :

Silverlight et les procédures stockées


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut Silverlight et les procédures stockées
    Bonjour à tous,

    J'ai une procédure stockée 'GET_employe' qui fonctionne très bien. Dans cet procédure, il y a juste une requête qui me récupère la liste de mes employés en lui faisant passer un id en paramètre.
    Petit exemple simplifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ALTER PROCEDURE GET_employe
     
        @matricule as varchar(8)    
     
    AS
     
    SELECT nom, prenom, adresse
    FROM T_employe
    WHERE Emp_actif = 1 AND Emp_matricule = @matricule
     
    RETURN
    J'intègre cela dans SL depuis l’explorateur de serveurs, je fais glisser ma procédure sur le Designer Linq To SQL.

    Et je l'appel via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DataClasses1DataContext data = new DataClasses1DataContext();
     
    var toto = data.GET_employe("02840013");
     
    foreach (var pointeur in toto)
    {
    ...
    }
    Et la tous fonctionne, alors vous allez me demander pourquoi je viens vous enmbeter ^^

    En fait, j'essaye de modifier ma procédure pour faire une recherche sur Emp_matricule, seulement si la variable @matricule n'est pas vide. Je n'est trouvé que cet solution:

    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
    ALTER PROCEDURE GET_employe
     
        @matricule as varchar(8)    
     
    AS
     
    DECLARE @req as varchar(8000)
     
    SET @req ='SELECT nom, prenom, adresse
    FROM T_employe
    WHERE Emp_actif = 1 '
     
    IF(@matricule != '')
    BEGIN
        SET @req = @req + 'AND Emp_matricule = '''+@matricule+''''
    END
     
    EXEC(@req)
     
    RETURN
    Et la plus rien ne fonctionne. SL me répond le message:
    L'instruction foreach ne peut pas fonctionner sur des variables de type 'int', car 'int' ne contient pas de définition public pour 'GetEnumerator'
    Sachant que dans ma variable toto, il me retourne juste 0.
    Encore moins compréhensible pour moi, si je fait un
    SET @matricule = '02840013'
    Juste avant ma requête, dans ma procédure, cela fonctionne.

    Désolé pour cet lonnngue explication mais je commence à craquer ^^

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Et si tu enlèves le RETURN en fin de ta procédure stockée, j'ai l'impression que le 0 est dû à cela mais pas sûr de moi.

    Entoure l'implémentation de ta procédure par un BEGIN ... END.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    Salut h2s84

    Je viens de faire la modification et ... toujours pareil.

    Merci pour ton aide

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    Bonjour à tous,

    Je suis toujours sur le même problème.
    en regardant ce matin, certaines personnes expliquent qu'ils n'est pas possible de récupérer des variables avec la commande EXEC et parlent de variable hôte. Je sais pas si sa aurai à voir quelque chose ...

    Bonne journée à tous !

  5. #5
    Invité
    Invité(e)
    Par défaut
    La solution suivante t'évite de faire appel à EXEC et aussi t'évite de faire des concaténation source d'erreur

    par contre je l'ai pas testé

    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
     
     
    ALTER PROCEDURE GET_employe
     
        @matricule as varchar(8)    
     
    AS
     
    create table #table (nom varchar(max), prenom varchar(max), adresse varchar(max))
     
    IF(@matricule != '')
    	BEGIN
    		insert into #table 
    		select nom, prenom, adresse
    		from T_employe
    		where Emp_actif = 1 AND Emp_matricule = @matricule
    	END
    ELSE
    	begin
    		insert into #table 
    		select nom, prenom, adresse
    		from T_employe
    		where Emp_actif = 1 
    	end
     
    select * from #table
    RETURN

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    Ta solution fonctionne mais seulement s'il y a qu'une variable pour la recherche.
    Si je veut faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Emp_actif = 1 AND Emp_matricule = @matricule AND Emp_truc = @truc
    Sa rajoute encore une condition et si j'ai encore plus de recherche (ce qui est mon cas), cela deviens impossible.

    En fait se que j'essaye de faire, car mon exemple était simplifié, est comme un formulaire de recherche sur plusieurs champs. Et les champs ne sont pas obligés d'être renseignés.

    Sinon merci pour ton aide

    Bonne journée

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/08/2007, 21h11
  2. comment gerer les procédures stockées
    Par fadex dans le forum JDBC
    Réponses: 3
    Dernier message: 01/05/2006, 13h54
  3. [Mapping O/R] - Pour ou contre les procédures stockées
    Par spidetra dans le forum Persistance des données
    Réponses: 8
    Dernier message: 03/04/2006, 10h01
  4. Sauvegarder les procédures stockées
    Par Misdrhaal dans le forum Oracle
    Réponses: 2
    Dernier message: 27/03/2006, 14h12
  5. Informations sur les procédures stockées
    Par jfphan dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/01/2004, 14h30

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