Bonjour
J'ai un problème avec le paramètre et constainstable dans un proc quand le paramètre contient plusieurs mots "pompe à chaleur" par exemple.
il faut les ", j'utilise la fonction quotename sur le paramètre.
Ca marche.
mais quand j'ai voulu utiliser la forme canonique FORMSOF (INFLECTIONAL, @variable) ça me ressort tous les enregistrements
Où placer les ' et les ", je tourne en rond.
Dans l'analyseur de requète
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Select top 100 percent * from vste_recherche_complet 
where (idste in 
( 
SELECT ste.idste 
FROM STEPRODUITS AS STE INNER JOIN 
CONTAINSTABLE (STEPRODUITS, *, 
'FORMSOF (INFLECTIONAL,"pompes à chaleur" )' , 20 
) AS KEY_TBL 
ON STE.IDSTE = KEY_TBL.[KEY] 
)
marche mais

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
CREATE procedure [dbo].[sprech_ 
@recherche varchar(256), 
@nbr int=20 
AS 
declare @@recherche varchar(256) 
select @@recherche=quotename(@recherche,'"') 
 
Select top 100 percent * from vuecomplet 
where (idste in 
( 
SELECT ste.idste 
FROM STEPRODUITS AS STE INNER JOIN 
CONTAINSTABLE (STEPRODUITS, *, 
'FORMSOF (INFLECTIONAL,@@recherche )',@nbr ) AS KEY_TBL 
ON STE.IDSTE = KEY_TBL.[KEY] 
)
me retourne n'importe quoi.

si quelqu'un peut me donner un conseil il sera le bienvenu.
dm