Jag får ett fel jag aldrig fått förr..
Körningsfel i Microsoft VBScript (0x800A0006)
Spill
/travel/vote.asp, line 39
rad 39 (execute-raden)
SQL4="SELECT COUNT(*) As votes FROM answers WHERE AID="&RS5("AID")
set rs4 = con.execute(SQL4)
if rs4.eof OR rs4.bof then
response.write "Ingen har röstat på denna fråga"
Felet uppstår bara när det inte finns några poster i tabellen answers. RS5("AID") innehåller ett värde och det är inte där problemet ligger
@ndersMedlem sedan juni 200032 969 inlägg Är rad 39 verkligen någon av de du postat? Jag kan inte se att felmeddelandet skulle kunna komma från någon av de raderna. Spill brukar innebära att ett tal blivit felaktigt eller för stort för en viss datatyp.
Så, är du säker på att det är rad 39?
Jag skulle också vilja se lite mer kod.
Det kommer mera
hela: (den klagar på rad 39 när det inte finns något som passar i tabellen answers)
Ursäkta att det är lite rörigt
<!-- #include file="top.asp" -->
<!-- #Include file="db.asp" -->
<% if request.querystring("type") <> "" then
SQL41="SELECT * FROM answers WHERE QID="&request.form("QID") & " AND IP='"&request.servervariables("REMOTE_ADDR") & "'"
Set rs41 = con.execute(SQL41)
if rs41.eof then
SQL2="INSERT INTO answers (AID, ip, QID) VALUES('" & request.form("answer") & "', '" & request.serverVariables("REMOTE_ADDR") & "', " & request.form("QID") & ")"
Set RS2 = con.execute(SQL2)
response.redirect "vote.asp?function=overview"
else
response.redirect "error.asp?type=used"
end if
End If
if request.querystring("function") = "overview" then
SQL3="SELECT * FROM vote WHERE type='Q' AND QID=0 ORDER BY AID DESC LIMIT 0,1"
Set RS3 = Con.execute(SQL3)
if rs3.eof then
response.write "ingen fråga finns"
else
SQL5="SELECT * FROM vote WHERE QID="&rs3("AID")
set rs5=con.execute(SQL5)
if rs5.eof then
response.write "Ingen har röstat"
else
SQL6="SELECT COUNT(*) As tot FROM answers WHERE QID="&rs3("AID")
set rs6 = con.execute(SQL6)
if rs6.eof OR rs6.bof then
response.write ""
else
antal = rs6("tot")
response.write "<table width=""150"">"
do while not rs5.eof
SQL4="SELECT COUNT(*) As votes FROM answers WHERE AID="&RS5("AID")
set rs4 = con.execute(SQL4)
if rs4.eof OR rs4.bof then
response.write "Ingen har röstat på denna fråga"
Else
rakna = rs4("votes")/antal*100
response.write "<tr valign=""top""><td width=""100"">" & rs5("answer") & "</td><td width=""50""><img src=images/vote1.gif height=""5"" border=""0"" width='"& round(rakna,0) & "'> (" & round(rakna,0) & "%)<br></td></tr>"
end if
rs5.movenext
loop
response.write "</table><br><br>Totalt antal röster: "& antal & "<br><br><br><a href=""javascript:history.go(-1)"">Tillbaka</a>"
end if
end if
end if
else
%>
<%
if request.querystring("vote") = "" OR request.querystring("vote") = "new" then%>
<form method="post" action="vote.asp?type=skicka">
<% SQL="SELECT * FROM vote WHERE type='Q' AND QID=0 ORDER BY AID DESC LIMIT 0,1"
Set RS = Con.execute(SQL)
response.write rs("answer") & "<br><br>"
SQL1="SELECT * FROM vote WHERE QID="&rs("AID") & " AND type='A' ORDER BY answer ASC"
set RS1 = con.execute(SQL1)
if rs1.eof then
response.write "Omröstningen kommer ut snart"
Else
do until RS1.eof
response.write "<input type=""radio"" value="&rs1("AID")&" name=""answer""> "& RS1("answer") & "<br>"
rs1.moveNext
loop
%>
<br><br><input type="hidden" value="<%=rs("AID")%>" name="QID"><input type="submit" value="Rösta"></form><br><br><br><a href="vote.asp?function=overview">>>Se resultat<<</a><br><br>
<%
end if
end if
end if%>
<!-- #include file="right.asp" -->
tillagas bör göras är att det är när
request.querystring("function") = "overview" blir sant som felet kommer, så felet måste komma i anknytning till det
@ndersMedlem sedan juni 200032 969 inlägg Rad 39 är väl rakna = rs4("votes")/antal*100
??? Det är den hos mig i alla fall.
Det är i så fall inte så konstigt att det blir galet, eftersom en SELECT COUNT alltid returnerar något. I det här fallet 0. Du ska alltså inte kontrollera att inte EOF är true, utan att inte votes-fältet i recordsetet är 0.