webForumDet fria alternativet

"BOF OR EOF is true"

ASP

6 svar · 284 visningar · startad av M.Cheraghi

Medlem sedan juli 20015 107 inlägg
Frågan#1

Jag har stött på problem som jag inte vet hur jag ska lösa! efter som i felmedelande ger mig ingen ledtråd på vilken rad jag ska leta! Jag har kollar i Databasen alla fälten finns och är ifyllda och allt verkar vara okej! =/ Jag har ite någonstans i min HTML kod hämtat värderna från databasen ännu, har inte kommit så långt, utan har fastnat i självaste "kostruktionen" ännu!

Error Type:
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/su/inside.asp

Med följande kod!

<%
If request.querystring("forum") = "Thread" THEN
  ForumID = Request.querystring("ForumID")
  CategoryID = request.QueryString("CategoryID")
  ThreadID = request.querystring("ThreadID")
  
  Set conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databaser/forum.mdb")&";"
  
  strSQL = "SELECT ForumName FROM tblForum WHERE ForumID = "&ForumID&""
  SET RSforum = conn.execute(strSQL)
  
  strSQL = "SELECT CategoryName FROM tblCategory WHERE CategoryID = "&CategoryID&""
  SET RScategory = conn.execute(strSQL)
  
  strSQL = "SELECT * FROM tblThread WHERE CategoryID = '"&CategoryID&"' AND ThreadID = "&ThreadID&" ORDER BY ThreadLastTime DESC"
  SET RSthread = conn.execute(strSQL)
  
  strSQL = "SELECT * FROM tblAnswer WHERE ThreadID = '"&ThreadID&"'"
  SET RSanswer = conn.execute(strSQL)
%>

Lite HTML KOD STÅR INGET VESÄNTLIGT HÄR :)

<%
IF RSthread.bof AND RSthread.eof THEN
%>

LITE HTML KOD SOM SYNS OM TRÅDEN INTE FINNS! :)

<%
else
%>

LITE HTML KOD SOM VISAR TRÅDEN!

<%
IF RSanswer.bof AND RSanswer.eof Then
else
Do until RSanswer.eof
%>

LITE HTML KOD SOM LOOPAS OM MED ALLA SVAR PÅ TRÅDEN

<%
RSanswer.MoveNext
Loop
end if
end if
end if
%>

Mvh

Medlem sedan juni 200032 967 inlägg
#2

Ett tips är att kommentera bort kodrader en efter en, tills felmeddelandet försvinner. Då kan du iaf få ett hum om var felet inträffar.

Medlem sedan dec. 20003 563 inlägg
#3

Det var en del ifsatser där så jag förstår ifall du har missat att kolla ett av recordsetten.
Ett tips är nästan att göra om det tills det funkar, eller tills nån som orkar kolla igenom hittar det rs du missat. :)

Sen behöver du inte kolla båda bof och eof.
Detta räcker för att du skall vara säker

if rs.eof then
' rs är tomt
else
' här kan du loopa
end if

Intendering *felstavat?* hjälper också till vid felsökning.
;)

Medlem sedan juli 20015 107 inlägg
#4

@nders skrev:

Ett tips är att kommentera bort kodrader en efter en, tills felmeddelandet försvinner. Då kan du iaf få ett hum om var felet inträffar.

:i Briliant idé :)

Medlem sedan dec. 20003 563 inlägg
#5

Briliant idé

Eller som man även kallar det: standard. ;)

Medlem sedan maj 20018 027 inlägg
#6

Re: "BOF OR EOF is true"

M.Cheraghi skrev:

IF RSthread.bof AND RSthread.eof THEN

Jag såg några stycken ställen där du hade ställt upp sådana villkor. Men tänk om EOF är sann, men ej BOF. Vad händer då? Du borde istället använda Or-villkor.

Medlem sedan juli 20015 107 inlägg
#7

sååja nu löste jag problemet! I mitt dokument så har jag ännu mer ifsatser!
T.ex visa forumet / kategorier / trådar / svara / skapa ny / admin
och på ett ställe hade jag angivit ThreadID istället för CategoryID och det resulterade i att SQL'en försökte öppna post nummer 9 från tblAnswer, men det fanns bara upp till post 8 i tabellen! :)

Tack alla för hjälpen :)

786 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
143 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
645 ms — ändringar (db)