ADODB.Field-Fehler '80020009'

Haben wir in letzter Zeit immer diese Fehlermeldung:
ADODB.Field-Fehler '80020009'

Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Angeforderte Vorgang erfordert einen aktuellen Datensatz.

/PHET/mscripts/TestScoring.asp, line 52 

Dieser bestimmten Datei verwendet wird, für 10 andere tests und diese keine Fehler aus. Ich habe die Datenbank und alles sieht gut aus. Hier ist die eigentliche Seite, die wirft den Fehler...

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="DoSecure.asp" -->
<!--#include virtual="/lib/dbConnModules.asp" -->
<%
Dim rsAnswer__MMColParam
rsAnswer__MMColParam = Session("ModuleID")
Set rsAnswer = Server.CreateObject("ADODB.Recordset")
rsStrAnswer = "SELECT * FROM TestAnswers WHERE TestName = '" & Request.Form("testName") & "' and ApplicationID = '" & Session("ApplicationID") & "' and moduleID = '" + Replace(rsAnswer__MMColParam, "'", "''") + "'"
rsAnswer.open rsStrAnswer, dbConnModules
answerArray = array(rsAnswer("AnswerQ1"), rsAnswer("AnswerQ2"), rsAnswer("AnswerQ3"), rsAnswer("AnswerQ4"), rsAnswer("AnswerQ5"), rsAnswer("AnswerQ6"), rsAnswer("AnswerQ7"), rsAnswer("AnswerQ8"), rsAnswer("AnswerQ9"), rsAnswer("AnswerQ10"), rsAnswer("AnswerQ11"), rsAnswer("AnswerQ12"), rsAnswer("AnswerQ13"), rsAnswer("AnswerQ14"), rsAnswer("AnswerQ15"), rsAnswer("AnswerQ16"), rsAnswer("AnswerQ17"), rsAnswer("AnswerQ18"), rsAnswer("AnswerQ19"), rsAnswer("AnswerQ20"))
testArray = array(Request.Form("Q1"), Request.Form("Q2"), Request.Form("Q3"), Request.Form("Q4"), Request.Form("Q5"), Request.Form("Q6"), Request.Form("Q7"), Request.Form("Q8"), Request.Form("Q9"), Request.Form("Q10"), Request.Form("Q11"), Request.Form("Q12"), Request.Form("Q13"), Request.Form("Q14"), Request.Form("Q15"), Request.Form("Q16"), Request.Form("Q17"), Request.Form("Q18"), Request.Form("Q19"), Request.Form("Q20"))
if not rsAnswer.EOF then
    myCorrect = 0
    For i=0 To (rsAnswer("NumOfQs") - 1)
        'Response.Write(i+1 & Request.Form("q" & i+1) & "<br />")
        If isNull(answerArray(i)) then answerArray(i) = "" End If
        If answerArray(i) = testArray(i) Then
            myCorrect = myCorrect + 1
        End if
    Next
    'Response.Write(myCorrect)
end if  
'Response.Write(myCorrect)
%>
<%
strTestRecord = "insert into TestRecords (ApplicationID, ModuleID, TestName, UserEmail, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Debugger, numberCorrect) values ('" &_ 
        Session("ApplicationID") & "', '"&_
        Session("ModuleID") & "', '"&_
        Replace(Request.Form("testName"), "'", "''") & "', '"&_
        Session("UserEmailAddr") & "', '"&_
        Replace(Request.Form("Q1"), "'", "''") & "', '" &_
        Replace(Request.Form("Q2"), "'", "''") & "', '" &_
        Replace(Request.Form("Q3"), "'", "''") & "', '" &_
        Replace(Request.Form("Q4"), "'", "''") & "', '" &_
        Replace(Request.Form("Q5"), "'", "''") & "', '" &_
        Replace(Request.Form("Q6"), "'", "''") & "', '" &_
        Replace(Request.Form("Q7"), "'", "''") & "', '" &_
        Replace(Request.Form("Q8"), "'", "''") & "', '" &_
        Replace(Request.Form("Q9"), "'", "''") & "', '" &_
        Replace(Request.Form("Q10"), "'", "''") & "', '" &_
        Replace(Request.Form("Q11"), "'", "''") & "', '" &_
        Replace(Request.Form("Q12"), "'", "''") & "', '" &_
        Replace(Request.Form("Q13"), "'", "''") & "', '" &_
        Replace(Request.Form("Q14"), "'", "''") & "', '" &_
        Replace(Request.Form("Q15"), "'", "''") & "', '" &_
        Replace(Request.Form("Q16"), "'", "''") & "', '" &_
        Replace(Request.Form("Q17"), "'", "''") & "', '" &_
        Replace(Request.Form("Q18"), "'", "''") & "', '" &_
        Replace(Request.Form("Q19"), "'", "''") & "', '" &_
        Replace(Request.Form("Q20"), "'", "''") & "', '" &_
        Request.Form("Debugger") & "', " & myCorrect & ")"      
Session("NumOfQs") = rsAnswer("NumOfQs")
Session("NumToPass") = rsAnswer("NumToPass")

Session("YourScore") = myCorrect

if myCorrect > Session("NumToPass") then pf = "pass" else pf = "fail" end if ' PASS OR FAIL
strTestRecordComplete = "insert into CheckRequirements (ApplicationID, UserEmail, ModuleID, RequirementName, PassOrFail, OperationalIPAddr) values ('" & Session("ApplicationID") & "', '" & Session("UserEmailAddr") & "', '" & Session("ModuleID") & "', '"& Request.Form("testName") & "', '" & pf & "', '" & Request.ServerVariables("REMOTE_ADDR") & "')"
dbConnModules.Execute(strTestRecord)
dbConnModules.Execute(strTestRecordComplete)
if Request.Form("TestName") = "pretest" Then
    Response.Redirect("../" & Session("ModuleDir") & "/TestResults.asp?fr=pre&desturl="& Request.Form("desturl"))
elseif Request.Form("TestName") = "posttest" Then
    Session("rsYourAnswers") = testArray
    Response.Redirect("../" & Session("ModuleDir") & "/TestResults.asp?fr=post&desturl="& Request.Form("desturl"))
End If
%>
<%
rsAnswer.Close()
Set rsAnswer = Nothing
%>
<!--#include virtual="/lib/dbConnModulesClose.asp" -->

Irgendwelche Ideen? Danke.

  • Dies ist ein logischer Fehler irgendwo in deinem code, die verlangen, dass die Vervielfältigung und Debuggen. Es sei denn, ich bin fehlt etwas sehr offensichtlich in Ihrem code, diese Frage wird nicht eine gute Passform für die Art von Hilfe, die Sie erhalten, auf SO. Ich hoffe, jemand hilft Ihnen, aber das hat, denke ich. Ich denke, ich kann das offensichtliche und sagen, dass der Fehler bedeutet, dass Sie versuchen, Zugriff auf eine Zeile im recordset, der nicht existiert. Ich habe diesen Fehler gesehen mit geschlossenen oder leeren recordsets.
  • Also welche Zeile ist Zeile 52?
Schreibe einen Kommentar