![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML) |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: mars 2008
Messages: 12
|
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 :
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(); 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 (permalink) |
|
Membre du Club
![]() Date d'inscription: juillet 2007
Localisation: Cote Ouest
Âge: 25
Messages: 107
|
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 (permalink) |
|
Invité régulier
![]() Date d'inscription: mars 2008
Messages: 12
|
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. |
|
|
|
|
![]() |
![]() |
||
Infopath, requete SQL lente
|
||
| Outils de la discussion | |
|
|