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 :
- 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" )