数据库移值后怎么出现这种问题.

wkl_allen 2004-04-10 10:54:08
原先用的是access数据库,后来移植到了sql server上,原先在access数据库上运行是正常的.可移值后,报这样的错误:
Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

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

ADODB.Recordset 错误 '800a0cb3'

当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。

/km/Admin_ClassOrderN.asp,行86
请问这是怎么回事呢.
...全文
5 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wkl_allen 2004-04-10
sub UpOrder()
dim sqlOrder,rsOrder,MoveNum,ClassID,i
dim ParentID,OrderID,ParentPath,Child,PrevID,NextID
ClassID=Trim(request("ClassID"))
MoveNum=trim(request("MoveNum"))
if ClassID="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
ClassID=CLng(ClassID)
end if
if MoveNum="" then
FoundErr=true
ErrMsg=ErrMsg & "<br><li>错误参数!</li>"
else
MoveNum=Cint(MoveNum)
if MoveNum=0 then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>请选择要提升的数字!</li>"
end if
end if
if FoundErr=True then
exit sub
end if

dim sql,rs,oldorders,ii,trs,tOrderID
'要移动的栏目信息
set rs=conn.execute("select ParentID,OrderID,ParentPath,child,PrevID,NextID

From ArticleClass where ClassID="&ClassID)
ParentID=rs(0)
OrderID=rs(1)
ParentPath=rs(2) & "," & ClassID
child=rs(3)
PrevID=rs(4)
NextID=rs(5)
rs.close
set rs=nothing
if child>0 then
set rs=conn.execute("select count(*) From ArticleClass where ParentPath

like '%"&ParentPath&"%'")
oldorders=rs(0)
rs.close
set rs=nothing
else
oldorders=0
end if
'先修改上一栏目的NextID和下一栏目的PrevID
if PrevID>0 then
conn.execute "update ArticleClass set NextID=" & NextID & " where

ClassID=" & PrevID
end if
if NextID>0 then
conn.execute "update ArticleClass set PrevID=" & PrevID & " where

ClassID=" & NextID
end if

'和该栏目同级且排序在其之上的栏目------更新其排序,范围为要提升的数字
sql="select ClassID,OrderID,child,ParentPath,PrevID,NextID From ArticleClass

where ParentID="&ParentID&" and OrderID<"&OrderID&" order by OrderID desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3
i=1
do while not rs.eof
tOrderID=rs(1)
conn.execute("update ArticleClass set OrderID="&tOrderID+oldorders+i&"

where ClassID="&rs(0))
if rs(2)>0 then
ii=i+1
set trs=conn.execute("select ClassID,OrderID From ArticleClass

where ParentPath like '%"&rs(3)&","&rs(0)&"%' order by OrderID")
if not (trs.eof and trs.bof) then
do while not trs.eof
conn.execute("update ArticleClass set

OrderID="&tOrderID+oldorders+ii&" where ClassID="&trs(0))
ii=ii+1
trs.movenext
loop
end if
trs.close
set trs=nothing
end if
i=i+1
if i>MoveNum then
rs(4)=ClassID
rs.update
conn.execute("update ArticleClass set NextID=" & rs(0) & "

where ClassID=" & ClassID)
exit do
end if
rs.movenext
loop
rs.movenext
if rs.eof then
conn.execute("update ArticleClass set PrevID=0 where ClassID="

& ClassID)
else
rs(5)=ClassID
rs.update
conn.execute("update ArticleClass set PrevID=" & rs(0) & "

where ClassID=" & ClassID)
end if
rs.close
set rs=nothing

'更新所要排序的栏目的序号
conn.execute("update ArticleClass set OrderID="&tOrderID&" where

ClassID="&ClassID)
'如果有下属栏目,则更新其下属栏目排序
if child>0 then
i=1
set rs=conn.execute("select ClassID From ArticleClass where

ParentPath like '%"&ParentPath&"%' order by OrderID")
do while not rs.eof
conn.execute("update ArticleClass set

OrderID="&tOrderID+i&" where ClassID="&rs(0))
i=i+1
rs.movenext
loop
rs.close
set rs=nothing
end if
end sub


上面这一段是程序的一部分.执行本函数时出现了问题
回复
diveas 2004-04-10
贴主要代码看看
回复
heezi 2004-04-10
把代码贴出来,从access转到sql是会出问题的!
回复
breakshow 2004-04-10
好象报的是语法错误.看看你数据库的连接写对没有.
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告