高手请进asp存储过程问题

xiaolijian 2006-03-29 11:44:32
找了两天了,没找到原因,以下代码运行时总是报如下错误,请高手指点
<%
rss="PROVIDER=SQLOLEDB;Server=sm101;UID=jbs;PWD=jbs;DATABASE=jbs"
set conn=server.createobject("ADODB.CONNECTION")
conn.ConnectionString=rss
conn.open
set comm=server.CreateObject("adodb.command")
with comm
.ActiveConnection=conn
.CommandText="tj"
.CommandType=adCmdStoredProc
.Parameters.Append comm.CreateParameter ("@sYear",adVarChar,adParaminput,5,"2006")
.Parameters.Append comm.CreateParameter ("@sMonth",adVarChar,adParaminput,5,"3")
end with
set rs=Server.CreateObject("adodb.recordset")
set rs=comm.execute()
while not rs.eof '这里是第90行
%>
浏览器中的提示为:
错误类型:
ADODB.Recordset (0x800A0E78)
对象关闭时,不允许操作。
/jbs/untitled.asp, 第 90 行
...全文
96 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xiaolijian 2006-03-29
问题解决了,在存储过程中就是把那个set nocount on加上就好了,感谢各位高手
回复
lavery 2006-03-29
asp调用存储过程(例子)
已测试成功
dim cmd
set cmd=server.CreateObject("adodb.command")
cmd.commandtype=4
cmd.CommandText="istmt_svc_opt"

cmd.Parameters.append cmd.CreateParameter("@ID",3,1,,0)
cmd.Parameters.append cmd.CreateParameter("@INSTRUMENTID",200,1,21,INSTRUMENTID)
cmd.Parameters.append cmd.CreateParameter("@OFFERTIME",3,1,,OFFERTIME)
cmd.Parameters.append cmd.CreateParameter("@SERVICEEXPLAIN",200,1,500,request.Form("SERVICEEXPLAIN"))
cmd.Parameters.append cmd.CreateParameter("@SERVICECLASS",129,1,2,request.Form("SERVICECLASS"))
cmd.Parameters.append cmd.CreateParameter("@OPERATEMETHOD",200,1,8,request.Form("OPERATEMETHOD"))
cmd.Parameters.append cmd.CreateParameter("@STATUS",200,1,3,request.Form("STATUS"))
cmd.Parameters.append cmd.CreateParameter("@ATLASMANUFACTURER",200,1,50,request.Form("ATLASMANUFACTURER"))
cmd.Parameters.append cmd.CreateParameter("@ATLASNAME",200,1,50,request.Form("ATLASNAME"))
cmd.Parameters.append cmd.CreateParameter("@REMARK",200,1,2000,request.Form("REMARK"))

set cmd.activeconnection=conn
cmd.Execute()


asp调用存储过程详解
http://www.soeye.cn/article/2006-3/30.html
回复
showlin 2006-03-29
另外
在with语句里面
.Parameters.Append comm.CreateParameter

.Parameters.Append CreateParameter
就可以了
回复
showlin 2006-03-29
似乎无问题,如果之前没有定义过rs的话
set rs=Server.CreateObject("adodb.recordset")
是必需的
end with之前加一行
.Prepared=true
看看
如果还不行,可能你的tj过程有问题,有没有在查询器里调试过?
回复
xiaolijian 2006-03-29
To eglic(圪圪) (理由永远是谎言,信仰永远是自慰) :没有这一行
回复
xiaolijian 2006-03-29
以上都测试过了,我都测试两天了
回复
是是非非 2006-03-29
tj这个存储过程里面没有使用 SET NOCOUNT ON
这样就不能返回记录集

修改一下存储过程
回复
煊烨 2006-03-29
rs.open conn,sql,1,1
回复
yiyioo 2006-03-29
set rs=Server.CreateObject("adodb.recordset")
把上面这句去掉试试~`````
回复
xiaolijian 2006-03-29
我在找原因的时候改写的,写了一个也不行,两个也不行
回复
yiyioo 2006-03-29
set rs=Server.CreateObject("adodb.recordset")
set rs=comm.execute()


为什么要写两句set rs =呢?
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

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