雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2226|回复: 6

[讨论/求助] 高手救命啊

[复制链接]
发表于 2007-1-12 02:31:07 | 显示全部楼层 |阅读模式
<p>做一个在线考试系统</p><p>在客户端登陆成功后进入答题界面后却碰到一个奇怪的问题,不管怎么调都没反应。</p><p>预览提示如下:</p><li>错误类型:<br/>Microsoft VBScript 运行时错误 (0x800A01A8)<br/>缺少对象: ''<br/><b>/lxh/test.asp, 第 82 行</b><br/><p></p></li><li>浏览器类型:<br/>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon) <p></p></li><li>网页:<br/>GET /lxh/test.asp <p></p></li><li>时间:<br/>2007年1月12日, 2:26:41 </li><p></p><p>页面代码如下:</p><p>&lt;%@ Language=VBScript %&gt; <br/>&lt;% option explicit %&gt;</p><p>&lt;!--#include file="conn.asp"--&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;title&gt;考试界面&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;body bgcolor="#FFFFFF" background=images/backimage.gif&gt;<br/>&lt;p align="center"&gt;&lt;b&gt;&lt;font face="宋体" size="5" color="#FF0000"&gt;&lt;%=session("selectsubjectname")%&gt;考试&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;<br/>&lt;%<br/>&nbsp;&nbsp;&nbsp; '保存开始时间<br/>&nbsp;&nbsp;&nbsp; dim starttime<br/>&nbsp;session("starttime")=hour(now())*60+minute(now())<br/>&nbsp;starttime=session("starttime")<br/>%&gt;<br/>&lt;form method="POST" action="result.asp"&nbsp; name="testform"&gt;<br/>&nbsp; &lt;table border="0" cellspacing="0"&nbsp; bordercolor="#111111" width="100%" &gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%" height="25"&gt;&lt;b&gt;&lt;font size="3" color="#000080"&gt;一、单项选择题(每题&lt;%=session("singleper")%&gt;分,共&lt;%=session("singlenumber")%&gt;题)&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp; &lt;/table&gt;<br/>&nbsp; &lt;%</p><p>dim i,sql,rs,count1,temp,strid1,strid2<br/>strid1=""<br/>strid2=""<br/>randomize<br/>for i=1 to session("singlenumber")<br/>set rs=server.createobject("adodb.recordset")<br/>sql="select * from question where subjectname='"&amp;session("selectsubjectname") &amp; "'and type='单选题' and haveselect=0 "<br/>rs.open sql,conn,3,2<br/>count1=rs.recordcount<br/>temp=fix(count1*rnd(10))<br/>rs.move temp<br/>rs("haveselect")=1<br/>'rs.update<br/>strid1=strid1 &amp; rs("ID") &amp; ","</p><p>%&gt;<br/>&nbsp; &lt;table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0" width="100%"&nbsp; cellpadding="0"&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%" bgcolor="#EFEFEF" height="20"&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;%=i%&gt;、&lt;%=rs("question")%&gt;&lt;/b&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; if rs("A")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="radio" name="NO&lt;%=rs("id")%&gt;" value="A"&gt;A、&lt;%=rs("A")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt; &lt;%<br/>&nbsp; if rs("B")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="radio" name="NO&lt;%=rs("id")%&gt;" value="B"&gt;B、&lt;%=rs("B")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt; &lt;%<br/>&nbsp; if rs("C")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="radio" name="NO&lt;%=rs("id")%&gt;" value="C"&gt;C、&lt;%=rs("C")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt; &lt;%<br/>&nbsp; if rs("D")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="radio" name="NO&lt;%=rs("id")%&gt;" value="D"&gt;D、&lt;%=rs("D")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt;&nbsp;&nbsp; <br/>&nbsp; &lt;/table&gt;<br/>&nbsp; &lt;%&nbsp; <br/>&nbsp; rs.update<br/>next<br/><font color="#ff0000">rs.close&nbsp;&nbsp; //此处被提示错误!<br/></font>set rs=nothing<br/>%&gt;<br/>&nbsp; &lt;table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3"&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%" height="25"&gt;&lt;b&gt;&lt;font color="#000080" size="3"&gt;二、多项选择题(每题&lt;%=session("multiper")%&gt;分,共&lt;%=session("multinumber")%&gt;题。每题至少有1项正确的答案,少选、多选、错选均不得分)&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp; &lt;/table&gt;<br/>&nbsp; &lt;%<br/>randomize<br/>for i=1 to session("multinumber")<br/>set rs=server.createobject("adodb.recordset")<br/>sql="select * from question where subjectname='"&amp;session("selectsubjectname") &amp; "'and type='多选题' and haveselect=0 "<br/>rs.open sql,conn,3,2<br/>count1=rs.recordcount<br/>temp=fix(count1*rnd(10))<br/>rs.move temp<br/>rs("haveselect")=1<br/>'rs.update<br/>strid2=strid2 &amp; rs("ID") &amp; ","</p><p>%&gt;<br/>&nbsp; &lt;table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2"&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%" bgcolor="#EFEFEF" height="20"&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;%=i%&gt;、&lt;%=rs("question")%&gt;&lt;/b&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; if rs("A")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="checkbox" name="NO&lt;%=rs("id")%&gt;" value="A"&gt;A、&lt;%=rs("A")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt; &lt;%<br/>&nbsp; if rs("B")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="checkbox" name="NO&lt;%=rs("id")%&gt;" value="B"&gt;B、&lt;%=rs("B")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt; &lt;%<br/>&nbsp; if rs("C")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="checkbox" name="NO&lt;%=rs("id")%&gt;" value="C"&gt;C、&lt;%=rs("C")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt; &lt;%<br/>&nbsp; if rs("D")&lt;&gt;"" then<br/>&nbsp; %&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="100%"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input type="checkbox" name="NO&lt;%=rs("id")%&gt;" value="D"&gt;D、&lt;%=rs("D")%&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;%<br/>&nbsp; end if<br/>&nbsp; %&gt; <br/>&nbsp; &lt;/table&gt;<br/>&nbsp; &lt;% <br/>&nbsp; rs.update<br/>next<br/>rs.close</p><p>response.write("&lt;input type='hidden' name='hidQuestID1' value=" &amp; strID1 &amp; "&gt;")<br/>response.write("&lt;input type='hidden' name='hidQuestID2' value=" &amp; strID2 &amp; "&gt;")</p><p>set rs=nothing<br/>set rs=server.createobject("adodb.recordset")<br/>sql="select * from question where haveselect=1 "<br/>rs.open sql,conn,3,2<br/>rs.movefirst<br/>&nbsp;do while&nbsp; not rs.eof&nbsp; <br/>&nbsp;&nbsp; rs("haveselect")=0<br/>&nbsp;&nbsp; rs.update<br/>&nbsp;&nbsp; rs.movenext<br/>&nbsp;loop<br/>rs.close<br/>set rs=nothing<br/>call endConnection()<br/>'response.write(strid1)<br/>'response.write(strid2)<br/>%&gt; <br/>&lt;p align=center&gt;&lt;input type="submit" value="交卷" name="submit" &gt;&lt;/p&gt;<br/>&lt;/form&gt;<br/>&lt;%<br/>dim lefttime<br/>lefttime=1<br/>do while lefttime&gt;0<br/>lefttime=session("testtime")-(hour(now())*60+minute(now())-session("starttime"))<br/>loop<br/>if lefttime=0 or lefttime&lt;0 then<br/>%&gt;<br/>&lt;script language=vbscript&gt;<br/>msgbox "时间到了!请交卷" <br/>&lt;/script&gt;<br/>&lt;%<br/>end if<br/>%&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;&nbsp;</p><p>不知道这个帖子发在哪里合适,就发这里了。斑竹请不要删啊~等着救命啊,高手帮帮忙啊</p>
 楼主| 发表于 2007-1-12 02:50:03 | 显示全部楼层
<p>搞着搞着又搞出新毛病来了,晕</p><p>这次是提示:</p><li>错误类型:<br/>Active Server Pages, ASP 0113 (0x80004005)<br/>超过了脚本运行的最长时间。可以为 Server.ScriptTimeOut 属性指定新值或更改 IIS 管理工具中的相应值来更改此限制。<br/><b>/lxh/test.asp</b><br/><p></p></li><li>浏览器类型:<br/>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon) <p></p></li><li>网页:<br/>GET /lxh/test.asp <p></p></li><li>时间:<br/>2007年1月12日, 2:48:10 <p></p><p></p></li><p></p><p>但是我在代码中加入这么一句:&lt;%server.scripttimeout=9999%&gt;。却没有任何反应了</p><p>真实郁闷死了,我都找不出哪里有死循环了55555555</p>
[此贴子已经被作者于2007-1-12 2:51:01编辑过]

发表于 2007-1-12 14:17:16 | 显示全部楼层
楼主的VBScript用的相当不错啊!<br/><br/>偶只用过VB拉拉UI,所以只能提一点参考意见了。<br/><br/>问题可能出在数据库连接上,可能用DM做的系统,自动生成的代码可能被修改了。<br/>仔细检查哦。。<br/>
发表于 2007-1-12 23:28:28 | 显示全部楼层
呵呵,气氛不错,大家多讨论
 楼主| 发表于 2007-1-13 00:31:10 | 显示全部楼层
<p>后来我发现这是个死循环</p><p>dim lefttime<br/>lefttime=1<br/>do while lefttime&gt;0<br/>lefttime=session("testtime")-(hour(now())*60+minute(now())-session("starttime"))<br/>loop<br/>if lefttime=0 or lefttime&lt;0 then<br/>%&gt;<br/>&lt;script language=vbscript&gt;<br/>msgbox "时间到了!请交卷" <br/>&lt;/script&gt;<br/>&lt;%<br/>end if<br/>%&gt;<br/></p><p>因为当剩余考试时间(lefttime)还有时 DO WHILE 语句会不断的循环,直到考试结束,导致题目无法正常输出。</p><p>不知道怎么解决啊~继续请教!</p>
发表于 2007-1-13 10:38:52 | 显示全部楼层
你这样写的目的是不是判断考试时间是否用完了?<br/>这个脚本会狂跑,因为根本没有给Cpuy一个休息的时间,<br/>最好加个定时器什么的,没隔一段时间检查考试时间一次。<br/>
 楼主| 发表于 2007-1-14 00:27:29 | 显示全部楼层
<p>做系统做的电脑都崩溃了,郁闷。</p><p>后来我把判断时间的那段代码单独拷出来生成一个页面,然后通过调用那个页面来控制考试时间。</p><p>却发现出现了楼上说的情况:考试一开始考试时间(lefttime)就循环到0了。</p><p>看来只能用最土的办法去一秒一秒的减了。</p>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-11-22 02:56 , Processed in 0.100616 second(s), 20 queries , Gzip On.

快速回复 返回顶部 返回列表