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:
1 2 3
| qryGeneral.SQL.Text := Format('SELECT * FROM MaTable WHERE Valeur IN (%s)', [sl.CommaText]) ;
Open;
... |
Ce qui donnerait avec l'ex. ci-dessus la requête:
SELECT * FROM MaTable WHERE Valeur IN (5, 6, 12)
Maintenant je voudrais passer cette liste sous forme paramétrée:
1 2 3 4
| qryGeneral.SQL.Text := 'SELECT * FROM MaTable WHERE Valeur IN (:p0)';
Params[0].AsString := sl.CommaText;
Open;
... |
J'ai l'impression sans pouvoir le vérifier que la requête est transformée en
SELECT * FROM MaTable WHERE Valeur IN ('5, 6, 12')
(notez les '')
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