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

InfoPath .NET Discussion :

Infopath, requete SQL lente


Sujet :

InfoPath .NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Infopath, requete SQL lente
    Bonjour à tous,
    J'ai conçus un formulaire infopath qui recupère les valeurs des differents champs de plusieurs tables SQL serveur 2005.

    Je passe actuellement par un webservice qui m'execute des procedures stockées sur le serveur SQL pour me renvoyer ces valeurs dans infopath.

    Sharepoint et le formulaire sont hebergés sur un autre serveur, le serveur Web.

    Tout ceci fonctionne très bien mais c'est assez lent.

    Je travail sur des tables avec plusieurs millions de lignes.

    J'ai egalement un BDC dans sharepoint qui me fait la meme requete pour trouver un client par exemple.
    C'etait egalement assez lent.

    Dans le BDC, je peux directement appeler une procedure stockée, ce que j'ai fais et la difference se fait sentir
    Ma recherche est pratiquement instantannée par rapport au Select qui etait utilisé avant.

    Tout ca pour vous demander si en faisant appel aux procedures stockées directement dans infopath, cela accelererai-t-il la recherche ?

    Si oui comment faire appel à une procedure stockée dans infopath ?

    J'ai deja un debut de code trouvé sur internet mais je code en C# et l'exemple est en jscript.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var nclient = XDocument.DOM.selectSingleNode("/dfs:myFields/my:nclient").text;
     
    //Set the Command for the Query Adapter of the Data Source. Incorporate the 
    //parameter values that you want to use. 
    XDocument.QueryAdapter.Command = 'execute "dbo"."GetClient" ' + nclient; 
     
    //Query the Data Source. 
    XDocument.Query();
    Pourriez vous m'indiquer les assembly à ajouter (using System.Xml.linq, etc...)
    Car pour Xdocument je n'ai pas acces à la fonction QueryAdapter.

    De plus ce code est sur un evenement OnClick.
    Est-il possible de l'executer autrement ? je souhaiterai l'executer lorsqu un champs texte ou un menu deroulant est modifier.

    Je souhaite surtout accelerer l'utilisation de mon formulaire.

    D'avance Merci à vous

  2. #2
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Tu utilise quelle version de Visual Studio et quelle version d'infopath?
    Si tu es en 2003, il faut que tu travailles sur le thisXDocument.QueryAdapter alors...


    Pour ne pas mettre le code uniquement sur le click:
    - Clic droit sur ton champ,
    - Va dans validation de données,
    - Choisi un évènement et clique sur modifier.

    Tu auras ainsi accès aux évènements du champ tel que OnBeforeChange, OnAfterChange...

    Bonne journée.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Je suis sur Infopath 2007 et VS 2008 (sql server 2005 pour info)

    J'essaye actuellement de manipuler les données que je reçois par une seul requête SQL qui me récupère tout puis les filtrer par les DataSet plutôt que de faire Plusieurs requêtes SQL.

    Je ne parviens pas à le faire pour le moment.
    Je crée un dataview qui me filtre les données mais je ne comprends pas comment l'afficher...

    Mes filtres se basent sur un nclient, qui me récupère les infos client, puis ces factures et enfin les produits par factures.

    Les infos client ainsi que les factures c'est ok par infopath.
    Je veux maintenant choisir une facture (dans un menu deroulant) et me remplir un autre menu déroulant avec les produits de la factures.

    J'y parviens bien par procédures stockées via web service mais pour optimiser la rapidité du formulaire il serait intéressant de pouvoir filtrer des données que j'ai deja dans les données du formulaire.

Discussions similaires

  1. [SQL Server] Requete SQL lente
    Par Ninpa dans le forum Accès aux données
    Réponses: 4
    Dernier message: 14/05/2014, 15h34
  2. Requete SQL lente
    Par Timbermatt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/05/2009, 10h40
  3. Requete SQL Anormalement lente
    Par ez3kiel dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/05/2007, 21h45
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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