RS.UPDATE为何不起作用,代码及程序说明如下?

lauries 2004-09-06 07:54:47
'##### 下面程序代码为修改更新代码
'##### 数据库是ORACLE数据库
'##### CLASSID是NUMBER型、 ClassName是VARCHAR2、IsElite是NUMBER型
'##### ShowOnTop是NUMBER型、Setting是NUMBER型、Readme是VARCHAR2型、LinkUrl是VARCHAR2型

sub SaveModify()
FoundErr = 0
ClassID=trim(request("ClassID"))
if ClassID="" then
FoundErr=1
ErrMsg=ErrMsg & "<br><li>参数不足!</li>"
else
ClassID=CLng(ClassID)
end if
ClassName=trim(request("ClassName"))
IsElite=trim(request("IsElite"))
ShowOnTop=trim(request("ShowOnTop"))
Setting=trim(request("Setting"))
Readme=trim(request("Readme"))
LinkUrl=trim(request("LinkUrl"))

if FoundErr=1 then
exit sub
end if

sql="select * From ArticleClass where ClassID=" & ClassID
set rsClass=server.CreateObject ("Adodb.recordset")
rsClass.open sql,conn,1,3
if rsClass.bof and rsClass.eof then
FoundErr=1
ErrMsg=ErrMsg & "<br><li>找不到指定的栏目!</li>"
rsClass.close
set rsClass=nothing
exit sub
end if

if IsElite="Yes" then
IsElite=1
else
IsElite=0
end if
if ShowOnTop="Yes" then
ShowOnTop=1
else
ShowOnTop=0
end if

if FoundErr=1 then
rsClass.close
set rsClass=nothing
exit sub
end if

rsClass("ClassName")=ClassName
rsClass("IsElite")=Clng(IsElite)
rsClass("ShowOnTop")=Clng(ShowOnTop)
rsClass("Setting")=Clng(Setting)
rsClass("Readme")=Readme
rsClass("LinkUrl")=LinkUrl
rsClass.update
rsClass.close
set rsClass=nothing

Response.Redirect "Admin_Class_ORA.asp"

end sub
...全文
125 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lauries 2004-09-06
1、这里的"rsClass"包括很多条记录吧~~~
  - 不会,因为ClassID值在数据库中是唯一的

2、我一般写成 rsClass.open sql,conn,3,3
  - 我开始也是这样写的,但是作用没有

3、是这里 rsClass.open sql,conn,1,3 游标的问题。
  - 经过我检查,我也认为是这里的问题,可是修改来修改去,怎么就是不对

4、另外,上面的代码在ACCESS数据库和SQL SERVER数据库都是可以的,可行的,就是在ORACLE8.1.7中不可以

==========================================================================

我修改为这样,就可以了,但是下面的方法不好啊,写的代码很不好看,很不好修改代码

set rsClass= nothing
sql="update ArticleClass set ClassName='"& ClassName &"',IsElite="& IsElite &",ShowOnTop="& ShowOnTop &", "
sql=sql & " Setting="& Setting &",Readme='"& Readme &"',LinkUrl='"& LinkUrl &"' "
sql=sql & " where ClassID=" & ClassID
Set rsClass = server.CreateObject("Adodb.RecordSet")
rsClass.Open sql, conn, 1, 3

我想用RS.UPDATE写法
回复
chagel 2004-09-06
是这里 rsClass.open sql,conn,1,3 游标的问题。
回复
boywind 2004-09-06
1. sql="select * From ArticleClass where ClassID=" & ClassID

response.write sql

2. rsClass.open sql,conn,1,3

我一般写成 rsClass.open sql,conn,3,3
回复
guoweidong 2004-09-06
你自已要检查了,没看到来哪边出错.
用response.write 打印 response.end结束来调试了.
回复
zltostem 2004-09-06
sql="select * From ArticleClass where ClassID=" & ClassID
set rsClass=server.CreateObject ("Adodb.recordset")
rsClass.open sql,conn,1,3

这里的"rsClass"包括很多条记录吧~~~
回复
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

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