question stupide... une ligne de RS par son numéro

question stupide... une ligne de RS par son numéro - SQL/NoSQL - Programmation

Marsh Posté le 27-09-2006 à 17:42:12    

Je cherche une instruction qui permet de consulter le contenu d'une ligne d'un RecordSet à partir de son numéro
(je fais un select qui me remonte 12 résultats je veux lire le 5eme)
 
Genre l'équivalent de rs.Fields mais qui remonte la ligne au lieu de la colonne.
 
Ca fait une heure que je rame dessus, et j'en ai besoin pour pouvoir partir ce soir, help!

Reply

Marsh Posté le 27-09-2006 à 17:42:12   

Reply

Marsh Posté le 27-09-2006 à 17:43:09    

rs.Move(5) (à compter que tu est à la première ligne, puisque le "move" est relatif et non absolu)


Message édité par MagicBuzz le 27-09-2006 à 17:43:39
Reply

Marsh Posté le 27-09-2006 à 17:45:33    

on peut faire un move négatif????
Je dois chopper le 11 après le 7 après le 6 par exemple....

Reply

Marsh Posté le 27-09-2006 à 17:50:02    

ps: ceci dit, une fois de plus, évite comme la peste ce genre de manips, car les fonctions "avancées" des recordset ne fonctionnent pas toujours correctement selon les versions de ADODB ainsi que du moteur de la base de données.
 
en fait, les seules fonctions dans lesquelles tu peux avoir 100% confiance sont :
 
rs.BOF (il n'y a pas de lignes avant le record courant)
rs.EOF (il n'y a pas de lignes après le record courant)
 
Ainsi, si tu veux savoir s'il n'y a pas de lignes avant de parcourir un rs, tu dois faire :
 

Code :
  1. if not (rs.BOF and rs.EOF) then


 
Plutôt que d'utiliser rs.Count (avec Oracle par exemple, dès que tu as une jointure externe, il te dit "-1" quelque soit le nombre de lignes, c'est pas top)
 
Ensuite :
 
- rs.MoveNext() (avance au prochain record)
- rs.MoveFirst() (après avoir spécifié EXPLICITEMENT que ton rs est dynamique, côté client, et random access, car par défaut il est souvent static, forward only, côté serveur), ce qui sont 3 clauses qui peuvent empêcher le rs.MoveFirst de fonctionner.
 
A banir, car rarement supportés et souvent source de comportements étrange (sans parler des plantages) :
- rs.Move()
- rs.MovePrevious()
- rs.MoveLast()
 
Par contre, dans tous les cas, le rs.Fields est implicite, donc tu peux appeler rs("nomchamp" ) au lieu de rs.Fields("nomchamp" )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed