Avatar billede nidyahou Praktikant
14. december 2003 - 15:56 Der er 10 kommentarer og
1 løsning

hvorfor er der EOF

<% Do %>
  <tr>
    <td>
      <center>
        <% Response.Write rs("Threadskriver") %>
      </center>
    </td>
    <td>
      <center>
        <% Response.Write rs("Thread") %>
      </center>
    </td>
    <td class="dato"><% Response.Write rs("Threaddato") %></td>
    <td>
      <center>
        <% Response.Write strSum("comments") %>
      </center>
    </td>
  </tr>
  <% rs.movenext
    strSum.movenext
  Loop while Not rs.EOF or strSum.EOF %>
</table>

når jeg har sat loopet til at stoppe når rs or strSum EOF
hvorfor får jeg så fejlen :
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Avatar billede eagleeye Praktikant
14. december 2003 - 15:59 #1
Det er fordi recordset er tomt.
Det er altdi en god ide at lave

do while not rs.EOF
..
..
loop

loop's da man så ikke kommer ind i loop med mindre der er mindst en post i recordset. Når man bruger

do
..
loop while not rs.EOF

så vil den komme ind i koden og give fejl hvis recordset er tomt.
Avatar billede nidyahou Praktikant
14. december 2003 - 16:02 #2
der er poster i databasen, det virker lige indtil jeg prøver strSum.movenext, før stod der bare 3 posts ved alle tråde fordi den ikke gik videre, og jo derved bare returnerede samme værdi.
Avatar billede nidyahou Praktikant
14. december 2003 - 16:04 #3
det skal lige siges at strsum er en count funktion
Avatar billede eagleeye Praktikant
14. december 2003 - 16:05 #4
Ok så prøv at rette:

Loop while Not rs.EOF or strSum.EOF %>

Til:

Loop while Not rs.EOF and Not strSum.EOF %>
Avatar billede nidyahou Praktikant
14. december 2003 - 16:08 #5
nu kan jeg se noget, men den viser kun første post, og der er ikke nogen distinct sat på.
Avatar billede stoney96 Nybegynder
14. december 2003 - 16:09 #6
Sikker på at du ikke mangler NOT som:
Loop while Not rs.EOF or NOT strSum.EOF ....?'

Din NOT foran rs.EOF virker IKKE på strSum.EOF

Logisk skal det se således ud
Loop while (Not rs.EOF) or (NOT strSum.EOF)

- hvis jeg tolker din kode korrekt...!
Avatar billede eagleeye Praktikant
14. december 2003 - 16:12 #7
Det er nok fordi der kun er en post i strSum.
Der skal jo være lige mange records i begge recordset eller vil den stoppe når det føste er tomt.
Avatar billede nidyahou Praktikant
14. december 2003 - 16:13 #8
ganske korrekt, og meget flot tolkning takker og giver med glæde de velfortjente point, drop lige svar begge så kan i dele
Avatar billede eagleeye Praktikant
14. december 2003 - 16:14 #9
Hvordan ser dine to SQL sætninger ud?
Jeg tror med fordel det kunne laves i et recordset så du ikke har to der skal være præsis lig hinanden for det virker og den parre to poster i hvert sit recordset til samme post i databasen.
Avatar billede eagleeye Praktikant
14. december 2003 - 16:19 #10
Ok her et svar.
Et do loop køre så længe det udtryk man skriver er true.
Avatar billede stoney96 Nybegynder
14. december 2003 - 17:04 #11
Giv Eagleeye alle points.
Han var ude med det korrekte svar mens jeg skrev mit svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester