类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
为什么把ACCESS库转成SQL库后程序运行出错?
出错提示:
ADODB.Recordset 错误 800a0cb3
当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。
/jiuye/showVote.asp,行 48
当是ACCESS的时候完全正常,程序是:
sub postvote()
dim voteid
dim vote,votenum
dim j,votenum_1,votenumlen
dim postnum,postoption
set rs=server.createobject("adodb.recordset")
sql="select top 1 * from vote order by voteid desc"
rs.open sql,conn,3,3
if rs.eof and rs.bof then
Errmsg=Errmsg+"请您选择投票的主题进行投票!"
response.write Errmsg
exit sub
else
votenum=split(rs("votenum"),"|")
for j = 0 to ubound(votenum)
if cint(request("postvote"))=j then
votenum(j)=votenum(j)+1
postoption=j
end if
votenum_1=""&votenum_1&""&votenum(j)&"|"
postnum=1
next
if postnum="" or isnull(postnum) then
Errmsg=Errmsg+"<br>"+"<li>请选取投票项目。"
response.write Errmsg
exit sub
end if
votenumlen=len(votenum_1)
votenum_1=left(votenum_1,votenumlen-1)
这里错误: rs("votenum")=votenum_1
rs("voters")=rs("voters")+1
rs.update
end if
rs.close
set rs=nothing
response.redirect("showVote.asp?VoteID="&voteid)
response.write "<script>window.location.href=showVote.asp;</script>"
end sub
倒数第九行错
是什么原因呢,我找了很久都没找到,大家帮我看看
votenum类型是nvarchar 值如:18|9|8|1|0|1
网友回答:
转换后的数据类型和以前是否一致?
rs.open sql,conn,3,3
改成
rs.open sql,conn,1,1
试试
转换的字段类型一定有不一样的,你仔细查看一下。
一一般转换以后,access的自动编号会变成int,你应该好好看看你的字段类型!!
rs("votenum")=votenum_1
------->
rs.addnew
rs("votenum")=votenum_1
ADODB.Recordset(0x800A0CB3)-->数据库以只读方式打开,无法更新数据
看看
不好意思 看错了。
rs.open sql,conn,3,3
-----》
rs.open sql,conn,2,3
或者
rs.open sql,conn,1,3
从ACCESS转入SQL后一般它的类型会发生改变
导致程序出错你好好验查一遍
现在SQL里的类型可能是类型问题出错
不是你后面的代码问题,是rs.open sql,conn,3,3这里的问题,你可以这样写
rs.CursorLocation = 3
rs.CursorType = 1
rs.LockType = 3
锁定类型的限制,除了游标,还有可能你的关键字,在转换的时候没有转过来,当关键字不可以为空,你又没有把他设为自动编号,而程序里也没有给他写内容进去时也会这样。
SQL与ACSESS 日期型表达方式不同的.有一种是要加##
votenum(文本)-->votenum(text)
text,你改成varchar把,把字段长度设长一些
出错提示是什么???
ADODB.Recordset(0x800A0CB3)
数据库以只读方式打开,无法更新数据
你把数据库的权限重新设置下,
如果还有组件的话,把文件夹的权限也改成可写入的
你在发布的虚拟目录那里改一下权限设置
一般自动编号(INT)要选择自动递加为是
换varchar属性