请高手帮忙Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)解决此问题

catlv 2009-06-05 04:48:56
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。
/hax/createresult.asp, 第 22 行

createresult.asp代码如下:
<!--#include file="conn.inc"-->
<%
sql="select * from jlcx1"
set rs=createobject("adodb.recordset")
rs.open sql,conn,3,2
rs.addnew
rs("testid")=session("test")
rs("starttime")=request("kstime")
rs.update
sql="select * from jlcx"
set rs=createobject("adodb.recordset")
rs.open sql,conn,3,2
for k=1 to request("singlecount")
rs.addnew
rs("type")="单选题"
rs("userid")=session("test")
rs("starttime")=request("kstime")
dan=request("dxtda" & k)
rs("answer")=request("NO" & dan)
rs("testid")=request("testid")
rs("subject")=request("subject")
rs("question")=request("dxt" & k)
rs("text1")=request("dxta" & k)
rs("text2")=request("dxtb" & k)
rs("text3")=request("dxtc" & k)
rs("text4")=request("dxtd" & k)
rs("text5")=request("dxte" & k)
rs("text6")=request("dxtf" & k)
rs.update
next
for n=1 to request("multicount")
rs.addnew
rs("type")="多选题"
rs("starttime")=request("kstime")
rs("userid")=session("test")
dan1=request("duoxtda" & n)
rs("answer")=request("NO" & dan1)
rs("testid")=request("testid")
rs("subject")=request("subject")
rs("question")=request("duoxt" & n)
rs("text1")=request("duoxta" & n)
rs("text2")=request("duoxtb" & n)
rs("text3")=request("duoxtc" & n)
rs("text4")=request("duoxtd" & n)
rs("text5")=request("duoxte" & n)
rs("text6")=request("duoxtf" & n)
rs.update
next
for p=1 to request("judgecount")
rs.addnew
dan2=request("pdtda" & p)
rs("yn")=request("NO" & dan2)
rs("type")="判断题"
rs("starttime")=request("kstime")
rs("userid")=session("test")
rs("testid")=request("testid")
rs("subject")=request("subject")
rs("question")=request("pdt" & p)
rs.update
next
rs.close
'读入试卷信息
subject=request("subject")
testid=request("testid")
singlecount=request("singlecount")
singleper=request("singleper")
multicount=request("multicount")
multiper=request("multiper")
judgecount=request("judgecount")
judgeper=request("judgeper")
userid=request.cookies("userid")
starttime=request("mystarttime")
endtime=time()
score=0
score1=0
score2=0
j=0
bz=1
'循环累加求和
for each element in request.form
for i=1 to request.form(element).count
if instr(element,"NO")<>0 then
id=mid(element,3,3)
result=request.form(element)(i)
sql="select * from exam_database where id="& clng(id)
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
if rs("type")="单选题" then
if result=rs("answer") then
score=score+cint(singleper)
end if
end if
if rs("type")="多选题" then
answer=split(rs("answer"),",")
answercount=ubound(answer)+1
if request.form(element).count>answercount then
bz=0
end if

if bz=1 then
if instr(rs("answer"),result)<>0 then
score1=score1+cint(multiper)/4
j=j+1
if answercount=j then
score1=score1+cint(multiper)*(1-j/4)
j=0
end if
end if
end if
end if



if rs("type")="判断题" then
if rs("answer")=result then
score2=score2+cint(judgeper)
end if
end if
end if
next
next
'储存分数
sql="select * from exam_score"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
rs.addnew
rs("testtime")=request("kstime")
rs("userid")=userid
rs("username")=request.cookies("username")
rs("department")=request.cookies("department")
rs("office")=request.cookies("office")
rs("duties")=request.cookies("duties")
rs("subject")=subject
rs("testid")=testid
rs("starttime")=starttime
rs("endtime")=endtime
rs("score")=score2+score1+score
rs.update
rs.close
sql="select * from exam_testuser where testid="& testid & " and userid=" & userid
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
rs("havetest")=1
rs.update
rs.close
response.redirect "displayresult.asp?userid=" & userid & "&testid=" & testid
%>

conn.inc代码如下:
<%
dim conn
Set conn = Server.CreateObject("ADODB.Connection")
CONN.CONNECTIONSTRING="DSN=hax;Uid=sa;Password=qq123"
conn.Open
%>
...全文
36 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
heaixiang_1010 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 CityBird 的回复:]
丢,开那么多贴干嘛,另一贴中已作说明!
[/Quote]

我按照你的办法该了,可是提示同样的错误。我是菜鸟,请您赐教,谢谢!
cnchart 2009-06-05
  • 打赏
  • 举报
回复
rs.open sql,conn,1,3


RS.OPEN SQL,CONN,A,B
参数A为设定游标的类型,其取值为:
0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark
1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。
3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动


参数B为记录集的锁定类型,其取值为:
1 锁定类型,默认的,只读,不能作任何修改
2 当编辑时立即锁定记录,最安全的方式
3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的
lzp4881 2009-06-05
  • 打赏
  • 举报
回复
问题很多。求和有必要那样求和吗?直接select就行了,搞得那么复杂
  • 打赏
  • 举报
回复
很明显的错误!做了多步的添加
三楼の郎 2009-06-05
  • 打赏
  • 举报
回复
丢,开那么多贴干嘛,另一贴中已作说明!
gingerkang 2009-06-05
  • 打赏
  • 举报
回复
搜了一下这个错误,好像是程序尝试填充自动编号型的字段就会报这个错误

建议复杂的操作直接用存储过程来搞定,这样代码简洁,而且比较好维护.

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧