04. januar 2004 - 19:40Der er
44 kommentarer og 2 løsninger
Hvordan finder jeg sidste recordset?
Hej Eksperter,
Jeg har sat og nosset lidt med noget kode, men kan ikke rigtig få det til at virke. Jeg har et database udtræk, men hvordan finder jeg ud af hvornår jeg når den sidste post i udtrækket?
min kode lign. dether:
while not rs.bof or rs.eof
if rs.eof = true then response.write("Sidste post") end if
while not rs.bof or rs.eof if rs.eof = true then response.write("Sidste post") ' den sidste post else response.write(rs("blabla")) ' ikke den sidste post rs.movenext end if wend
hmm.. hvad mener du?: "tfa: Hvis jeg gør det på din måde får jeg en helveds masse dobbelt kode"
Kan du så ikke gøre det uden for while loop'et, det skal jo kun gælde for den sidste? while not rs.bof or rs.eof gør en masse rs.movenext wend gør det for der kun skal gøres for den sidste
Jeg mener blot at hvis jeg gør det på den her måde: while not rs.bof or rs.eof ' En masse HTML kode
if rs.eof = true then response.write("<img src="2.gif">") ' Her skal så kopieres alt mit html kode ind de 180 linier... ' temmelig meget dbl. kode for at skifte 1 billede...! else response.write("<img src="1.gif">") ' resten af alt det html kode jeg har lavet ca 180 linier rs.movenext end if wend
TFA: Det er kun 1 billede der skal skiftes... og vil gerne undgaa dbl. kode da der er temmelig meget af det, og finder det ikke som en optimal løsning at skulle rette html kode til 2 x!
if rs.eof = true then response.write("<img src="2.gif">") ' Her skal så kopieres alt mit html kode ind de 180 linier... ' temmelig meget dbl. kode for at skifte 1 billede...! else response.write("<img src="1.gif">") %> ' resten af alt det html kode jeg har lavet ca 180 linier <% rs.movenext end if wend
the surfer.. det ændre jo ikke på det... skal jo stadig have de 180 koder ind 2 steder... fordi mit end if kommer så langt nede...
burde være såen her
while not rs.bof or rs.eof ' En masse HTML kode
if rs.eof = true then response.write("<img src="2.gif">") else response.write("<img src="1.gif">") end if %> ' resten af alt det html kode jeg har lavet ca 180 linier <% rs.movenext wend
error '80020009' /admin/editor/index.asp, line 87 // linie 87 <% if rs("MasterPage") = True then %><img src="../images/home.gif"><% else %><img src="../images/page.gif"><%end if %>
Prøv at dele din if op sådan her: <% if rs("MasterPage") = True then %> <img src="../images/home.gif"> <% else %> <img src="../images/page.gif"> <%end if %>
<% while not rs.bof or rs.bof %> <tr> <td><img src="../images/unfold.gif" width="9" height="9"></td> <% if rs.eof then %> <td width="16"><img src="../images/_blank.gif"></td> <% else %> <td width="16"><img src="../images/_blankend.gif"></td> <% end if %> <td width="17"><% if rs("MasterPage") = "True" then %> <img src="../images/home.gif"> <% else %> <img src="../images/page.gif"> <%end if %></td>
Man kan ikke tjekke på om rs.eof inde i en while løkke der gør det samme for den kommer aldrig derind som squashguy skriver. If-sætningen inde i løkken er overflødig. Hvis den skal gøre noget når rs.eof = true skal skal det gøres umiddelbart efter løkken.
Det lige meget om bof er med i loopet. Det er umiddelbart bare copy/paste af det koden mini-me har vist da BOF og EOF begge er sat hvis recordsetet er tomt.
Du skriver det ikke kan lade sig gøre, eller tager jeg meget fejl??
Hvis du læser tråden godt igennem istedet for at gætte så har squashguy også vist hvordan man kan lave det så det virker. Hvis man har if sætningen før .movenext virker det ikke, men ved at flytte den efter .movenext kan man tjekke på om man lige har udskrevet den sidste record.
Hvis man sætter disse to kommentarer sammen til et bliver det noget med:
do while not (rs.bof or rs.eof) 'en masse HTML rs.movenext
if rs.bof or rs.eof then <% if rs("MasterPage") = True then %> <img src="../images/home.gif"> <% else %> <img src="../images/page.gif"> <%end if %> else response.write("billed 2") end if
loop
Det skal gå galt da sætningen <% if rs("MasterPage") = True then %> refererer til rs som ikke mere findes da vi jo lige har haft rs.eof.
Se min kommentar 04/01-2004 23:08:49 det er mini-me's kode fra 04/01-2004 23:07:25. Det er lavet efter det princip som squashguy har vist alderrede 04/01-2004 19:57:22
eagleeye >> Ikke for at dette skal være en chat. Jeg tror vi snakker forbi hinanden. Jeg har måske ikke udtrykt det klart nok, men hvad jeg mener er at: Hvis man i while conditionen spørger efter "not rs.eof" giver det ikke mening at lave en if sætning der er true hvis man står med rs.eof . Den eneste grund til at jeg skrev det var for at jeg synes det så ud til at det var blevet overset da squashguy skrev det.
Jeg har valgt at lade være med at benytte mig af dette, i denne omgang da jeg ikke kan få det til at virke. Men hvis alle smider et svar kan jeg fordele nogle points, for i har jo gjort en lille indstats ;-)
mortenkjeldberg >> Du har tildels ret og jeg kan kun gentage hvad jeg har sagt før: Hvis man har if sætningen før rs.movenext giver det ikke meget mening (det vi enige i). Hvis man flytter den efter rs.movenext kan man tjekke på om man lige har udskrevet den sidste record før man kommer ud af loopet.
mini-me>> har du prøvet dette koden fra min kommentar 04/01-2004 23:08:49 ??
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.