Sql - Se positionner sur un enregistrement précis [Résolu]

vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 7 avril 2009 à 16:55 - Dernière réponse : cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention
- 5 oct. 2009 à 15:55
Bonjour je fais une requete Select, je voudrais savoir comment me positionner sur la réponse n°3 par exemple.

Merci par avance,

// On execute la requete Select qu'on va utiliser apres
Form2.SQLQuery1.SQL.Clear;
Form2.SQLQuery1.SQL.Add('select Date from Test order by Date DESC');
Form2.SQLQuery1.Open;


// On positionne le resulat du select sur la ligne correspond à la selection du DbGrid
Form2.SQLQuery1.RecNo:=3;  <-- Mais ca marche pas !!!
Afficher la suite 

7 réponses

Répondre au sujet
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 9 avril 2009 à 22:16
+3
Utile
Honnêtement "select Date from Test order by Date DESC" est loin d'être optimisé. En effet, récupérer la colonne date de toute une table quand on ne souhaite récupérer qu'une seule ligne, quel gâchis !
Seconde remarque : évite de nommer tes champs avec des mots réservés du langage SQL. Ici, le champ date en est une parfaite illustration et, de plus, ce champ n'a aucune signification sur son contenu. Une date : ok, mais la date de quoi ???
Pour restreindre à une ligne l'ensemble de données à récupérer, il suffit d'ahouter une clause WHERE dans ta requête.
Pour finir, donnes-toi la peine d'étudier un minimum le langage SQL si tu veux progresser et ne pas buter en permanence sur des questions aussi simples.

May Delphi be with you<hr />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Delphiprog
tilab 97 Messages postés mercredi 25 octobre 2006Date d'inscription 26 octobre 2009 Dernière intervention - 5 oct. 2009 à 08:08
+3
Utile
Salut,

Le plus simple et le plus rapide

"select Date from Test order by Date DESC limit 3"
tu te déplaces avec last et le tour est joué

Alex
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tilab
beckerich 309 Messages postés jeudi 29 septembre 2005Date d'inscription 17 septembre 2013 Dernière intervention - 8 avril 2009 à 17:20
0
Utile
bonjour,

form2.sqlquery1.next;
form2.sqlquery1.next;

c'est pas plus sorcier ;-))
Commenter la réponse de beckerich
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 8 avril 2009 à 22:27
0
Utile
bonsoir pépé,
Form2.SQLQuery1.RecNo:=3;
ne peut pas fonctionner puisque ta requête est déjà exécutée

une requête paramètrée sera plus appropriée..
(si j'ai bien compris la question..)

cantador
Commenter la réponse de cs_cantador
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 16 mai 2009 à 19:46
0
Utile
Désolé de n'avoir acté vos réponses avant !

Merci à tous
Commenter la réponse de vieuxpere
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 5 oct. 2009 à 10:01
0
Utile
Saut Tilab,

Ta méthode est en efet super simple.

Depuis je me suis débrouillé mais je garde cette méthode en vue d'un besoin futur.

Merci beaucoup,
Commenter la réponse de vieuxpere
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 5 oct. 2009 à 15:55
0
Utile
@vieuxpere et @tilab : attention, la clause "LIMIT" n'est pas reconnue par tous les SGBD. Et comme tu n'as pas précisé quelle base de données tu utilisais, ce n'est pas forcément valable.


8000 Lévriers 'galgos' par an sont torturés et massacrés en Espagne
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog

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.