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 :

Récupérer dans Silverlight le résultat d'un script SQL


Sujet :

Silverlight

  1. #1
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut Récupérer dans Silverlight le résultat d'un script SQL
    Bonjour à tous

    Mon application est en Silverlight 3 avec Ria Services + Entity Framework et SQL 2008.

    J'ai actuellement un script SQL assez complexe et long qui fait un tas de calculs à partir des données en base, et tout à la fin il retourne les variables calculées :
    Comment puis-je récupérer le résultat l'afficher dans ma page Silverlight ?
    Je ne peux pas faire de vue (car ne peut contenir des calculs). J'ai pensé à une procédure stockée qui ferait les calculs et retournerait les 2 variables, mais je ne vois pas comment récupérer ça dans Silverlight.

    Bref, j'ai cherché sans succès. Merci si vous avez une idée

  2. #2
    Invité
    Invité(e)
    Par défaut
    Le plus simple pour toi serait de créer une procédure stockée puis de faire une importation de fonction sur la procédure stockée via Entity Framework. Une fois l'importation effectuée tu pourras exécuter cette fonction côté serveur (WCF par exemple) et renvoyer le résultat au client Silverlight.

  3. #3
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Merci bcp à toi h2. C'est intéressant, je ne connaissais pas. Suite à ta réponse, j'ai trouvé cet article qui explique la démarche :
    http://blog.developpez.com/bdevuyst/...edure-functio/

    Je suis sûr que ça fonctionne, seulement ça me pose problème. En effet, je suis en mode dév et je fais des modifs en base 10 fois par jour. Et à chaque fois j'efface puis regénère l'edmx (car le "Update model from database" ne fonctionne pas bien). Donc si je dois faire la manip de l'importation de fonction à chaque fois (pour peu qu'il y ait 50 manip car 50 fonctions), c'est embêtant.

    Donc s'il y a une solution alternative, je suis preneur. Si non, je vais devoir me retaper tout mon script SQL en LINQ

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par abbepierre94 Voir le message
    Je suis sûr que ça fonctionne, seulement ça me pose problème. En effet, je suis en mode dév et je fais des modifs en base 10 fois par jour. Et à chaque fois j'efface puis regénère l'edmx (car le "Update model from database" ne fonctionne pas bien). Donc si je dois faire la manip de l'importation de fonction à chaque fois (pour peu qu'il y ait 50 manip car 50 fonctions), c'est embêtant.
    Quelle est l'erreur qui t'est renvoyé en faisant un "Update model from database" ?

    Concernant l'importation des fonctions, L'implémentation de la procédure peut changer autant fois que tu veux tant que le nombre et le nom des paramètres de ta procédure stockée n'ont pas changé alors c'est pas la peine de mettre à jour le model.

  5. #5
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Concernant l'importation des fonctions, L'implémentation de la procédure peut changer autant fois que tu veux tant que le nombre et le nom des paramètres de ta procédure stockée n'ont pas changé alors c'est pas la peine de mettre à jour le model.
    Tout à fait d'accord. EF ne voit que les entrées/sorties, pas le contenu.

    Quelle est l'erreur qui t'est renvoyé en faisant un "Update model from database" ?
    En fait, je vais être un peu vague, mais des fois ça renvoit des erreurs, des fois pas, des fois ça fout la merde à l'exécution parce que ça a cassé des liens...
    Si tu cherches sur Google "Update model from database bug", yen a tout plein.
    Du coup on a reçu l'ordre de regénérer l'edmx quelque soit la modif en base

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par abbepierre94 Voir le message
    En fait, je vais être un peu vague, mais des fois ça renvoit des erreurs, des fois pas, des fois ça fout la merde à l'exécution parce que ça a cassé des liens...
    Si tu cherches sur Google "Update model from database bug", yen a tout plein.
    Du coup on a reçu l'ordre de regénérer l'edmx quelque soit la modif en base
    C'est normal. Toute modification du schéma de la base de données (Relations entre tables, ajout de nouveaux champs obligatoires, suppression de tables etc) doit être suivie de la mise à jour du model EF sinon on risque d'avoir des surprises lors de l'exécution.

    Une méthode plus simple est la suivante :
    Si on est plusieurs à développer sur un projet utilisant EF, il faut choisir un développeur qui se chargera d'effectuer toutes les modifications nécessaires à la base de données même si c'est pas lui l'auteur de la modification et aussi c'est à lui que revient la mise à jour du model EF. Comme ça on diminue le risque d'avoir un model EF pas à jour.

  7. #7
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Oui justement, c'est moi le responsable de la mise à jour de EF. Et chaque fois je recrée l'edmx from scratch

    Mais le problème reste entier. A chaque recréation (plusieurs fois par jour), je n'ai pas envie de refaire la "longue" manip d'import de fonction, multiplié par le nombre de fonctions...

    Ou alors, est-il possible de requêter ma procédure stockée via un bon vieux SqlConnection / SqlCommand coté client, avec un WCF en face ? Je ne sais pas si c'est possible dans une appli Silverlight

    Merci à toi en tout cas

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par abbepierre94 Voir le message
    Oui justement, c'est moi le responsable de la mise à jour de EF. Et chaque fois je recrée l'edmx from scratch

    Mais le problème reste entier. A chaque recréation (plusieurs fois par jour), je n'ai pas envie de refaire la "longue" manip d'import de fonction, multiplié par le nombre de fonctions...

    Ou alors, est-il possible de requêter ma procédure stockée via un bon vieux SqlConnection / SqlCommand coté client, avec un WCF en face ? Je ne sais pas si c'est possible dans une appli Silverlight

    Merci à toi en tout cas
    Euh? Ca peut être pas mal de prendre le temps de passer par la phase "Modélisation de l'application".
    Une fois celle-ci terminée, y'a pu à toucher à la base de données.

  9. #9
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Euh... voui...
    Effectivement on n'a pas de phase de modélisation, ya pas de specs, on développe tout au fil de l'eau. On n'a pas le choix, c'est le projet qui le veut snif.

    Du coup, ma requête initiale n'aurait pas de solution, autre que d'effectuer des actions manuelles sur l'edmx ou de tout faire en Linq ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par abbepierre94 Voir le message
    Du coup, ma requête initiale n'aurait pas de solution, autre que d'effectuer des actions manuelles sur l'edmx ou de tout faire en Linq ?
    tu voulais dire tout faire en "SQL traditionnelles" si cela te permet de gagner du temps. Mais moi je le ferais pas.

  11. #11
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    tu voulais dire tout faire en "SQL traditionnelles" si cela te permet de gagner du temps. Mais moi je le ferais pas.
    Ah non justement... j'ai déjà fait tous les calculs en SQL, mais impossible de rapatrier le résultat dans ma page Silverlight, avec les contraintes que j'impose (d'après tous nos échanges).
    => donc je pense devoir tout faire en Linq.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mais moi je le ferais pas.
    Pourquoi tu ne le ferais pas en SQL ? J'avoue je connais pas bien le Linq, mais ayant bcp pratiqué le SQL, on peut tout faire avec, et puis ça sert à ça, brasser les données.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par abbepierre94 Voir le message
    Ah non justement... j'ai déjà fait tous les calculs en SQL, mais impossible de rapatrier le résultat dans ma page Silverlight, avec les contraintes que j'impose (d'après tous nos échanges).
    => donc je pense devoir tout faire en Linq.
    Tu penses à Linq en oubliant qu'EF c'est du Linq To Entities . C'est pour ça que je croyais tu t'étais trompé et que tu voulais parler de SQL.

    Citation Envoyé par abbepierre94 Voir le message
    Pourquoi tu ne le ferais pas en SQL ?
    Parce tout simplement c'est pas propre de coder en dur les requêtes SQL et ça devient vite chiant de trouver l'erreur quand il y a un bug.

    Citation Envoyé par abbepierre94 Voir le message
    J'avoue je connais pas bien le Linq, mais ayant bcp pratiqué le SQL, on peut tout faire avec, et puis ça sert à ça, brasser les données.
    En parlant de Linq parles-tu de Linq To SQL parce que EF c'est aussi du Linq To Entities ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/05/2007, 10h28
  2. [SQL-VBA] récupérer le résultat d'une requète SQL dans un fichier txt
    Par djidanestribbal dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/02/2007, 15h25
  3. Récupérer et trier le résultat d'une requête SQL
    Par Bodom-Child dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/10/2006, 07h38
  4. Script Java appelé dans Xsl sans résultats
    Par metallic dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 03/08/2005, 15h39
  5. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07

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