comment savoir que je suis au dernier élement d'un rs ? [ASP] - Programmation
Marsh Posté le 02-08-2001 à 16:31:00
et comment tu sais que tu es au premier
y'a un tableau, un truc comme ça?
Marsh Posté le 02-08-2001 à 16:37:57
generalement ce que je vais (en delphi mais ca doit etre pareil en ASP), c'est (et la j'essaye de traduire du Delphi en VB ):
Code :
|
ps: je connais pas ASP donc j'espere que tu t'y retrouveras
[edtdd]--Message édité par JWhy--[/edtdd]
Marsh Posté le 02-08-2001 à 16:41:22
j'avais pensé à ça aussi, mais j'avais pas envie de passer par une chaine tampon, qui risuqe d'être très longue
Marsh Posté le 02-08-2001 à 16:43:59
bah sinon tu fais un index que tu incrementes et que tu testes si c'est egale a 1 :
iIndex = 0
While (NOT rs.EOF)
iIndex = iIndex + 1
if iIndex = 1 then
response.write(rs.Fields.Item("maValeur" ).Value)
else
response.write(", " & rs.Fields.Item("maValeur" ).Value)
rs.MoveNext()
Wend
mais ca te rajoute un increment + un test dans ta boucle ...
Marsh Posté le 02-08-2001 à 16:46:50
tu peux faire un truc dans ce genre :
if not rs.EOF then
response.write(rs.Fields.Item("maValeur" ).Value)
rs.MoveNext()
While (NOT rs.EOF)
response.write(","&rs.Fields.Item("maValeur" ).Value)
rs.MoveNext()
Wend
end if
ça évite de faire de test en plus dans la boucle ...
[edtdd]--Message édité par mikvix--[/edtdd]
Marsh Posté le 02-08-2001 à 16:48:30
ah oui, c'est bien ca...
par contre t'as merdé dans l'ajout des ", " mais c'est bien quand meme ! pas de de test pas d'index... j'achete
Marsh Posté le 02-08-2001 à 16:49:35
ouaip !!
en fait je viens d'éditer mon message 3 fois de suite, tellement c'était plein d'erreur
Marsh Posté le 02-08-2001 à 16:57:54
mikvix a écrit a écrit : tu peux faire un truc dans ce genre : if not rs.EOF then response.write(rs.Fields.Item("maValeur" ).Value) rs.MoveNext() While (NOT rs.EOF) response.write(","&rs.Fields.Item("maValeur" ).Value) rs.MoveNext() Wend end if ça évite de faire de test en plus dans la boucle ... |
euh là j'comprends pas, si je li bien tu écris maValeur dans tous les cas...
ah non j'avais pas vu que le if se fermait tout à la fin, oui c'est bien comme truc
[edtdd]--Message édité par duch--[/edtdd]
Marsh Posté le 02-08-2001 à 21:38:29
pour le premier element... c rs.BOF.. c comme EOF mais pour le premier element...
C comme si c t un element indicé -1, en considerant que le premier element de ton rs est indicé 0.... enfin, tu vois koi
Pi en asp, ya movefirst() je crois ou un truc comme ca... ki te positionne sur le premier element s'il y en a un...
Mais pour ton pb d'ecrire une chaine de caractere suivi d'un caractere special... ben... 2 choix corrects:
Soit tu traite le premier element a part.. pi le reste dans une boucle.
Soit tu fais ton truc normalement... pi tu tronque le dernier caractere... c a toi de voir...
Mais la premiere solution est mieux a mon gout.
P.S: Pour tester sil y a un element dans le rs tu fais
If rs.BOF AND rs.EOF Then pas d'element...
[edtdd]--Message édité par wouatouwouatou--[/edtdd]
Marsh Posté le 02-08-2001 à 16:10:43
je parcours un rs de la façon suivante :
While (NOT rs.EOF)
' là j'écrit un truc
response.write(rs.Fields.Item("maValeur" ).Value&"," )
rs.MoveNext()
Wend
enfin le truc classique quoi, sauf que je ne veux pas écrire de "," qd je suis au dernier enregistrement, comment faire ?