做作业 出错 请高手指教

hz2003 CCB 员工  2004-05-05 08:17:51
Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

ADODB.Recordset 错误 '800a0bcd'

BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

/ks/test/backrandommain.asp,行33


backrandommain.asp 如下(部分):

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
<title>试卷</title>
</head>

<%@ Language=VBScript %>
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../试题库.mdb")

set rs=server.createobject("adodb.recordset")
set rs.activeconnection=conn
name=session("user")
tab1=session("tab")
stzs=0
%>

<body background="../images/bgcolor.gif">
<table border="0" width="100%">
<tr><th width="100%" align="center"><h1><font color="#FF0000" face="楷体_GB2312"><%=tab1%></font></h1></th></tr>
</table>
<form action="randomuserresult.asp" id="FORM1" method="POST" name="FORM1" target="_top">

<%
sql1="select * from "& name & tab1 &"暂时 where 试题题型='单项选择'"
set rs1=conn.execute(sql1)
response.write "<p id='单项选择题'></p>"
response.write "<FONT color=red face=''>"
response.write "<p id='单项选择题'>一. 单项选择题</FONT></p>"
rs1.movefirst
z=1

do while not rs1.EOF
tm=rs1("试题")
fs=rs1("试题分数")
response.write "<p>" & z & "." & tm & "(" & fs & "分)"
response.write "<br><font color=blue>请选择:</font><br>"

if rs1("附加参数")<=0 then
rs1("附加参数")=1
end if
for i = 1 to rs1("附加参数")
stzs=stzs+1
next
...全文
22 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hongweijin 2004-05-06
是数据库的数据引用出错,要注意数据库的数据是从0开始数的。
  • 打赏
  • 举报
回复
dsclub 2004-05-06
应该是rs1.movefirst的问题。

因为你数据库里现在是空的,没有记录,而你没有判断就movefirst了,所以报错了。

所以,应该先判断再move

response.write "<p id='单项选择题'>一. 单项选择题</FONT></p>"
if not(rs1.eof and rs1.bof) then
rs1.movefirst
z=1
.........

end if
  • 打赏
  • 举报
回复
空闲独处 2004-05-06
很明显你没必要加rs1.movefirst,因为如果你有数据的话,一打开就是在first了.
  • 打赏
  • 举报
回复
wolfsky1994 2004-05-06
去掉rs1.movefirst
  • 打赏
  • 举报
回复
whghwujx 2004-05-06
在调试的时候要注意数据库中的试验数据,这也是很重要的,很多错误单单看代码是无法发现的,原因就在数据
  • 打赏
  • 举报
回复
MonkeyDHua 2004-05-06
rs1.movefirst 的问题,movefirst 是移到第一条记录,但你的数据库是空的,所以出现eof或bof错误,如果有记录,一般打开数据库指什默认就停留在第一条上,在此没必要movefirst,如果确实需要,可加一判断语句 if not rs1.eof then rs1.movefirst
  • 打赏
  • 举报
回复
diveas 2004-05-05
看你上面的代码
  • 打赏
  • 举报
回复
diveas 2004-05-05
你再看看MoveFirst为啥出错!!!
  • 打赏
  • 举报
回复
FMBen 2004-05-05
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
是不是你调用了某条信息,然后没有该条信息?

另外,好像你的循环缺少了loop哦!!

还有,如果你的信息不需要更新数据的话,建议把楼上的 rs1.Open sql1,conn,1,3 改为 Rs1.Open sql1,conn,1,1
不需要用到3 !!
  • 打赏
  • 举报
回复
hwkknd 2004-05-05
constr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("../试题库.mdb")&";Persist Security Info=False"

试试这个链接呢,你这个错误是ADO常见错误,我在使用delphi的时候常看到,ADO升级之后会有所改善,ASP里没遇到过
你代码的33行是不是conn.Execute(...)这一行?如果是的话就从ADO本身下手,或是换成
Set rs1=CreateObject("ADODB.RecordSet")
Rs1.Open sql1,conn,1,3
来试试,看还会不会出错
  • 打赏
  • 举报
回复
相关推荐
发帖
ASP
加入

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-05-05 08:17
社区公告
暂无公告