Avatar billede psyclown Nybegynder
14. juni 2002 - 13:04 Der er 27 kommentarer og
1 løsning

BOF / EOF fejl

Jeg sidder og ser mig totalt blind på den her fejl, jeg plejer ellers godt at kunne rette sådanne fejl, men nu har jeg sætte i nok tid med det og nu gider jeg ikke mere.
Det er mening at når man går ind under et forum, hvor der ikke er nogle topics, så skal den skrive at der ikke er nogen, men det gider den bare ikke, den skriver bare:
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.

selve forumet kan ses her:
http://212.242.188.97/limitless/new/forum.asp
og koden til den side hvor fejlen er kan ses her:
http://212.242.188.97/limitless/new/forum.txt

Bare spørg hvis du er i tvivl om noget.
På forhånd tak!
Avatar billede teamdev Novice
14. juni 2002 - 13:26 #1
Skriver den ikke et linienr eller andet?
Avatar billede psyclown Nybegynder
14. juni 2002 - 13:30 #2
du kan se hvad den skriver hvis du klikker på:
http://212.242.188.97/limitless/new/forum.asp
også trykker på et af de forums, hvor  der ikke er nogle topics i.
Avatar billede eagleeye Praktikant
14. juni 2002 - 13:37 #3
Du har et tomt recordetsæt...

Før du udskriver kan du tjekke på EOF:

if rs.EOF then
  response.write "Igen poster i recordeset"
else
  response.write rs("kolonnenavn")
end if
Avatar billede pato Nybegynder
14. juni 2002 - 13:40 #4
så vidt jeg kan se er der ikke forskel på den kode der er
i It.. then ...else  i http://212.242.188.97/limitless/new/forum.txt

If Not (rsthreads.BOF Or rsthreads.EOF) Then
    HER

else

    OG HER

end if
Avatar billede psyclown Nybegynder
14. juni 2002 - 13:45 #5
eagle >> jeg har prøvet som du sagde, det giver ikke rigtigt nogen forskel..

pato >> kig lidt bedre på det så :)
Avatar billede eagleeye Praktikant
14. juni 2002 - 13:48 #6
Her er problmmet, det er inde i <% else %> delen:
strSQL = "SELECT * FROM F_threads WHERE (FID = " & Request("ID") & ")"
Set rsthreads = conntemp.Execute(strSQL)
ForumID = Request("ID")
%>
<td width="100%" align="right">
<a href="new_thread.asp?fid=<%=rsthreads("FID")%>" OnMouseOver="self.status='New Topic'; return true" onmouseout="self.status=''; return true">

<img border="0" src="gif/new_thread.gif">
</a>
<a href="forum.asp">
<img border="0" src="gif/overview.gif" OnMouseOver="self.status='Forum Overview'; return true" onmouseout="self.status=''; return true">
</a>


du åber et recordset  rsthreads  igen med samme SQL som i lige før if NOT (rsthreads.EOB or rsthreads.BOF) then.

Så det bevirker at  rsthreads  igen er tomt men inde du udskriver links er tjekke du ikke på:  if rsthread.EOF
Avatar billede teamdev Novice
14. juni 2002 - 13:49 #7
Hmmm. Det er jo egentlig korrekt. Der er ingen data derfor er bof sand.

Har du prøvet :
If rsthreads.EOF OR rsthreads.BOF Then
Avatar billede psyclown Nybegynder
14. juni 2002 - 13:57 #8
nu har jeg rettet den fejl eagle, men der sker det samme stadigvæk..
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:06 #9
Prøv at gå din kode igennem og tjek at hver gang du bruger et recordset så er det inden for en  if NOT recordsets.EOF then eller do while not recordset.EOF
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:07 #10
teamdev >> desværre det virker heller ikke..

jeg fatter det ikke rigtigt..
Avatar billede teamdev Novice
14. juni 2002 - 14:10 #11
mand hvor er jeg langsom i dag! :-)
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:12 #12
Endnu en..  her bruger du en rstemp1 inde i den ELSE som man kommer ind i hvis der ikke er nogle beskeder i forumet.:

                    strSQL1 = "SELECT * FROM Forums WHERE (ID = "& Request("ID") &")"
                    Set rstemp1 = conntemp.execute(strSQL1)
                %>
                <table border="0" align="center" cellpadding="0" cellspacing="0" width="425">
                    <tr>
                        <td>
                            <table style="border: 1 solid #000000" align="center" border="0" cellpadding="1" cellspacing="0" width="400">
                                <tr>
                                    <td width="100%"><a href="forum.asp" OnMouseOver="self.status='Forum Overview'; return true" onmouseout="self.status=''; return true">Forum</a> &raquo; <%=rstemp1("F_Name")%></font></td>
                                </tr>
                            </table>
                        </td>
                    </tr>
Avatar billede teamdev Novice
14. juni 2002 - 14:12 #13
Kan du ikke smide din threads.asp fil. Det er i den problemet ligger
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:15 #14
LOL du har da ikke vist den forkerte fil.. jo det har du :)  Godt set teamdev.
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:15 #15
teamdev >> forklar lige hvad du mener
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:17 #16
det er threads.asp, den i sidder og kigger i..
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:18 #17
så det fordi du har kaldt den forum.txt i spørgsmålet.
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:19 #18
ja, jeg har kaldt den forum.txt, men prøv at læs i toppen af filen der står:
'-------------------------------
'-------- FORUM THREADS --------
'-------------------------------
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:22 #19
ok.. har du prøvet at sætte if NOT rstemp1.EOF omkring det link som jeg fandt i kommenta: 14/06-2002 14:12:24
Avatar billede teamdev Novice
14. juni 2002 - 14:23 #20
Se det var jo ikke lige til at regne ud
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:29 #21
har du opdateret koden eagle, for jeg har lavet den lidt om..
Avatar billede pato Nybegynder
14. juni 2002 - 14:34 #22
du laver stadig  en forespørgsel på threads  i din else startement som vil være tom !

<table border="0" cellpadding="0" cellspacing="0" width="425">
                    <tr>
                        <td>
                            <table align="center" border="0" cellpadding="0" cellspacing="0" width="400">
                                <tr>
                                    <%
                                        strSQL = "SELECT * FROM F_threads WHERE (FID = " & Request("ID") & ")"
                                        Set rsthreads2 = conntemp.Execute(strSQL)
                                        ForumID = Request("ID")
                                    %>
                                    <td width="100%" align="right">
                                        <a href="new_thread.asp?fid=<%=rsthreads2("FID")%>" OnMouseOver="self.status='New Topic'; return true" onmouseout="self.status=''; return true">
                                            <img border="0" src="gif/new_thread.gif">
                                        </a>
                                        <a href="forum.asp">
                                            <img border="0" src="gif/overview.gif" OnMouseOver="self.status='Forum Overview'; return true" onmouseout="self.status=''; return true">
                                        </a>
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:35 #23
Ja så vidt jeg kan se har du omdøbt navnet på et recordset... men problememr er jo at det er tomt derfor skal du tjekke:

if not recordset.EOF then
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:40 #24
Problemmet er at der er flere recordsset og vi ikke helt ved hvilker er tomt så du må rette alle hvor du bruger recordset direkter lige efter det er åbnet:

Sådan en linie:
<a href="new_thread.asp?fid=<%=rsthreads2("FID")%>" OnMouseOver="self.status='New Topic'; return true" onmouseout="self.status=''; return true">
<img border="0" src="gif/new_thread.gif">
</a>

Bør rettes til:

<% if not rsthreads2.EOF then %>
<a href="new_thread.asp?fid=<%=rsthreads2("FID")%>" OnMouseOver="self.status='New Topic'; return true" onmouseout="self.status=''; return true">
<img border="0" src="gif/new_thread.gif">
</a>
<% else
  Response.write "rsthreads2 er tom"
end if %>



Når du så har funder ud af hvilke som er tomme og du ikke ønsker at der står recordset er tomt så fjerne du disse to linier:
<% else
  Response.write "rsthreads2 er tom"
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:45 #25
aahh, nu forstår jeg(er lidt langsom)

jeg skal bare gøre som du sagde før 14:06:28, så virker det jo som det skal
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:47 #26
okay, nu har jeg ikke brugt else, jeg har bare sat

<% if not recordset.EOF then %>
og
<% end if %>
I alle recordsets, så virker det..
Avatar billede eagleeye Praktikant
14. juni 2002 - 14:51 #27
:)
Avatar billede psyclown Nybegynder
14. juni 2002 - 14:56 #28
men tak for hjælpen og tålmodigheden :D
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