关于rs.open错误

csdnxl 2005-05-22 02:50:02
本人编写了一个asp页面1.asp,内含一个表单,表单把数据提交给2.asp,2.asp内含sql语句以及所有对DB的操作代码,负责对后台的oracle9i数据库进行数据的读取与插入,但是不知为何,每当提交表单时,总是提示说

“HTTP 错误 500.100 - 内部服务器错误 - ASP 错误”,
“错误类型:
Microsoft VBScript 运行时错误 (0x800A01FB)
出现一个意外错误: 'rs.open'
/2.asp”

但是,点击ie的后退按钮,回到1.asp的页面,再一次提交表单,却又能够正常地实现对数据库的操作,望高手指点,不胜感激!
...全文
502 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnxl 2005-05-27
  • 打赏
  • 举报
回复
UserID、Password、Data Source这三个参数的内容我当然有写啦,只不过在这里没有写出来罢了
tian_yj 2005-05-25
  • 打赏
  • 举报
回复
set conn=server.createobject("ADODB.Connection")
StrSQL="Provider=OraOLEDB.Oracle.1;Persist Security
Info=True;UserID=;Password=;Data Source="
你写的,看看有没有连上数据库?
blessmxb 2005-05-24
  • 打赏
  • 举报
回复
帮你顶顶。
也谢谢你给讲解了rs.open sql,conn,3,2中数字的问题。
我一直在找,都没有找到。谢谢了
csdnxl 2005-05-24
  • 打赏
  • 举报
回复
高手快点进来帮我啊!!!
yezhutou 2005-05-24
  • 打赏
  • 举报
回复
mark
csdnxl 2005-05-24
  • 打赏
  • 举报
回复
高手都睡觉了吗
csdnxl 2005-05-23
  • 打赏
  • 举报
回复
上面的是2.asp的代码
csdnxl 2005-05-23
  • 打赏
  • 举报
回复
RS.OPEN SQL,CONN,A,B

A:

ADOPENFORWARDONLY(=0)
只读,且当前数据记录只能向下移动

ADOPENKEYSET(=1)
只读,当前数据记录可自由移动

ADOPENDYNAMIC(=2)
可读写,当前数据记录可自由移动

ADOPENSTATIC(=3)
可读写,当前数据记录可自由移动,可看到新增记录

B:

ADLOCKREADONLY(=1)
缺省锁定类型,记录集是只读的,不能修改记录

ADLOCKPESSIMISTIC(=2)
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

ADLOCKOPTIMISTIC(=3)
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

ADLOCKBATCHOPTIMISTIC(=4)
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。


我试过rs.open sql,conn,3,3了,还是不行,
救命啊~~~
littlebaby1009 2005-05-23
  • 打赏
  • 举报
回复
rs.open sql,conn,3,2这种方式调用,“3,2”代表什么意思?
csdnxl 2005-05-23
  • 打赏
  • 举报
回复
因为我要读取多个数据集,而我又只想用一个recorderset来完成所有的操作
jekexys2004 2005-05-23
  • 打赏
  • 举报
回复
应该有点影响,你尽量少这样做吧,我都不明你为何要这样反复地open与close
csdnxl 2005-05-23
  • 打赏
  • 举报
回复
我要对数据库中的表进行修改,所以rs.open sql,conn,a,b中的a我认为只能是3或者2,我先试试rs.open sql,conn,3,3看行不行
还有,我想问问会不会是因为rs反复地open与close所致呢?
jekexys2004 2005-05-23
  • 打赏
  • 举报
回复
sql="select * from lib_huanshu where kh='"&kh&"'"
rs.open sql,conn,3,2
counter=rs.recordcount

rs.addnew '插入新的记录
rs("id")=counter+1
......

rs.update
rs.close


rs.open sql,conn,3,3这一句你改成这样试试
notata 2005-05-23
  • 打赏
  • 举报
回复
会不会是rs.open sql,conn,3,2问题?
你把全部的rs.open sql,conn,3,2改为rs.open sql,conn,1,1运行看看
leo963258 2005-05-23
  • 打赏
  • 举报
回复
你连接数据库了没。
csdnxl 2005-05-22
  • 打赏
  • 举报
回复
代码如下
<% dim kh,hsbs,jsxx,sql,counter
dim xsxm,xsxx,jsr,total
kh=Trim(Request.Form("kh"))
hsbs=Trim(Request.Form("hsbs"))
jsxx=session("jcxx")

if kh="" or hsbs="" then
%>
<div align="center">请填完整信息 <a href="javascript:history.back(1)">返回上一页</a>
<% else
set conn=server.createobject("ADODB.Connection")
StrSQL="Provider=OraOLEDB.Oracle.1;Persist Security
Info=True;UserID=;Password=;Data Source="
conn.open strsql
Set rs = Server.CreateObject("ADODB.Recordset")

sql="select * from lib_jieshu where kh='"&kh&"' and jcxx='"&jsxx&"'"
rs.open sql,conn,3,2

if rs.eof or rs.bof then
rs.close
conn.close
%>
显示信息<a href='javascript:history.back(1)'>返回上一页</a>
<%
else
rs.close
sql="select * from lib_stu where kh='"&kh&"'"
rs.open sql,conn,3,2
xsxm=rs("xm")
xsxx=rs("xx")
rs.close

sql="select * from lib_total where kh='"&kh&"' and jsxx='"&jsxx&"'"
rs.open sql,conn,3,2
total=cint(rs("total"))
rs.close

if total=0 then
%>
显示信息,<a href='javascript:history.back(1)'>请返回</a>
<%
else
if total-hsbs<0 then
%>
显示信息,<a href='javascript:history.back(1)'>请返回</a>
<%
else
sql="select * from lib_huanshu where kh='"&kh&"'"
rs.open sql,conn,3,2
counter=rs.recordcount

rs.addnew '插入新的记录
rs("id")=counter+1
......

rs.update
rs.close

sql="select * from lib_total where kh='"&kh&"' and jsxx='"&jsxx&"'"
rs.open sql,conn,3,2
rs("total")=cint(rs("total"))-cint(hsbs)

rs.update
rs.close
conn.close %>

<a href='javascript:history.back(1)'>请返回</a>
<%end if
end if
end if
end if
%>
</div>
wgf001 2005-05-22
  • 打赏
  • 举报
回复
代码呢??
leo963258 2005-05-22
  • 打赏
  • 举报
回复
代码

28,406

社区成员

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

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