Passer un tableau (ou une collection) en parametre a une procédure stockée sql s [Résolu]

Messages postés
46
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
11 décembre 2008
- 18 janv. 2006 à 14:55 - Dernière réponse :
Messages postés
46
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
11 décembre 2008
- 20 janv. 2006 à 11:30
Salut a tous ,
Voila mon probleme j'ai un form en c# sur lequel un
utilisateur peut effectuer des recherches dans ma base de données en
effectuant des tris.
Le probleme est que tout est filtré a partir
des listes déroulantes a sélection multiple et que le tri s'effectue
donc avec plusieurs valeurs pour un meme critere (ex : select * from
pays where nomPays "pays1" or nomPays"pays 2")...
Il peu y avoir
un nombre tres variable de valeur (de 0 à 900 pour un seul critere ...)
c'est pourqoui j'ai pensé a passer un tableau (ou plus logiquement une
collection) en parametre a ma procédure stockée mais je ne voi pas
comment faire ....

Merci d'avance

Vinzouille
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 18 janv. 2006 à 22:32
3
Merci
Salut,

Je pense que la solution est de faire une table temporaire et de la remplir.
Attention, une table par utilisateur serait bien, car le multiuser est a gerer dans ce cas.

tu remplis la table de l'utilisateur et apres du fait un select in.
(je ne connais pas si cette solution fonctionne mais elle le devrait)

autre solution
tu creer une chaine et tu creer un fonction qui la split dans un retour de fonction.
Cette methode focntionne bien, au niveau perf, cela doit pas etre top.
Et attention, on est limité a 4000 ou 8000 caractere dans la chaine à spliter.

Esperant avoir aider un peu ;-)

Voila

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de nhervagault
Messages postés
46
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
11 décembre 2008
- 19 janv. 2006 à 15:30
0
Merci
Je vois pas tres bien ton histoire avec les split ... tu peux développer un peu ?
Merci de la réponse en tout cas

Vinzouille
Commenter la réponse de tenrod
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 19 janv. 2006 à 23:15
0
Merci
Salut

L'histoire du split

Tu prends la chaine de caractere.
tu cherche l'index du caractere de separation
tu substring de 1 --> index du caractere (je ne sais plus) attention sqlserver
et le substring demarre peut etre à 1 ou a 1
tu insert la string dans une table que ta fonction retourne
tu prends l'index du caractere suivant le separateur
et tu boucle jusqu'a la fin de la string.

j'ai pas l'exemple sous les yeux.
désolé

et tu retourne la table
Commenter la réponse de nhervagault
Messages postés
46
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
11 décembre 2008
- 20 janv. 2006 à 11:30
0
Merci
Non mais au final j'ai fait une table temporaire et e fais un inner join ça passe nikel comme ça en tout cas merci bien pour tes reponses c'est sympa

Vinzouille
Commenter la réponse de tenrod

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.