Bonjour,
J'ai une TStringList "sl" contenant un certain nombre de valeurs - sous forme de texte forcément - mais représentant des entiers, ex.:
- sl[0] contient '5',
- sl[1] contient '6',
- sl[2] contient '12'
Pour l'instant je passe sans problème cette liste à ma requête en faisant ceci:
Ce qui donnerait avec l'ex. ci-dessus la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 qryGeneral.SQL.Text := Format('SELECT * FROM MaTable WHERE Valeur IN (%s)', [sl.CommaText]) ; Open; ...
Maintenant je voudrais passer cette liste sous forme paramétrée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM MaTable WHERE Valeur IN (5, 6, 12)
J'ai l'impression sans pouvoir le vérifier que la requête est transformée en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 qryGeneral.SQL.Text := 'SELECT * FROM MaTable WHERE Valeur IN (:p0)'; Params[0].AsString := sl.CommaText; Open; ...
(notez les '')
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM MaTable WHERE Valeur IN ('5, 6, 12')
Du coup ça ne passe pas !
Savez-vous comment faire pour obtenir la même requête que précédemment en passant par les Params ?
Merci.
Partager