高手请进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 行
...全文
138 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 =呢?

28,409

社区成员

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

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