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

Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
- 7 avril 2009 à 16:55 - Dernière réponse :
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
- 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 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
- 9 avril 2009 à 22:16
3
Merci
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.

Merci cs_Delphiprog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
Meilleure réponse
Messages postés
97
Date d'inscription
mercredi 25 octobre 2006
Dernière intervention
26 octobre 2009
- 5 oct. 2009 à 08:08
3
Merci
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

Merci tilab 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de tilab
Messages postés
308
Date d'inscription
jeudi 29 septembre 2005
Dernière intervention
17 septembre 2013
- 8 avril 2009 à 17:20
0
Merci
bonjour,

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

c'est pas plus sorcier ;-))
Commenter la réponse de beckerich
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
- 8 avril 2009 à 22:27
0
Merci
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
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
- 16 mai 2009 à 19:46
0
Merci
Désolé de n'avoir acté vos réponses avant !

Merci à tous
Commenter la réponse de vieuxpere
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
- 5 oct. 2009 à 10:01
0
Merci
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
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
- 5 oct. 2009 à 15:55
0
Merci
@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.