Requete SQL parametrée pour un tri....

cs_juan Messages postés 10 Date d'inscription mardi 17 octobre 2000 Statut Membre Dernière intervention 22 mai 2002 - 25 avril 2002 à 17:22
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 26 avril 2002 à 13:13
bjour tous
je cherche à faire une requête paramétrée dans un TQuery du genre:
SELECT * FROM MaBase WHERE (mes conditions)
ORDER BY :MonIndex

mais apparemment ça ne plait pas, il me dit "utilisation du mot clé incorrect: BY".... si c pas possible y-a-t'il moyen d'appliquer un index par programmation à un TQuery qui possède déjà une requete SELECT ?

3 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
25 avril 2002 à 19:58
Il faut femer le Query modifier la requète SQL et ouvrir de nouveau le Query sans utiliser de paramètre car c'est interdit sur le ORDER BY :
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM MaBase Where (...) ');
Query1.SQL.Add('ORDER BY '+MesColonnes);
Query1.Open;

--- :sleepy) Nono du Moulin :sleepy) ---
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
25 avril 2002 à 20:40
Et le style :
Const
Qry1:='SELECT * FROM MaBase WHERE (%s)
ORDER BY %s';

Ensuite :
With MaRequete do begin
If Active then Close;
Sql.Clear;
Sql.Text := Format(Qry1, [Conditions, MonIndex]);
Open;
end;

La solution ne passe pas uniquement par des paramètres variables mais aussi par des requêtes 100% dynamiques.

Qu'en penses-tu ?
May Delphi be with you.
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
26 avril 2002 à 13:13
Arf, la fonction Format(), j'y pense jamais... Bien que ce style me fait penser au C, c'est effectivement plus distingué.

--- :sleepy) Nono du Moulin :sleepy) ---
0
Rejoignez-nous