志盟培训:ASP为什么取不到存储过程OUTPUT类型参数的值

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 04:23:14
前几天在做一个分页存储过程时遇到一个奇怪的现象,该存储过程有一个名为PAGE的返回值,该参数是OUPUT类型,我在查询分析器里可以取到,但是在ASP里却取不到
set objcomm=server.createobject("adodb.command")
ObjComm.activeconnection=objconn
ObjComm.commandtype=adcmdstoredproc
ObjComm.commandtext="p_splitpage"
ObjComm.parameters.append objcomm.createparameter("@sql",advarchar, adparaminput,32)
ObjComm.parameters.append objcomm.createparameter("@page",advarchar, adparaminput,32)
ObjComm.parameters.append objcomm.createparameter("@pagesize",advarchar, adparaminput,32)
ObjComm.parameters.append objcomm.createparameter("@pagecount",adInteger, adParamOutput,,0)
ObjComm.parameters.append objcomm.createparameter("@recordCount",adInteger, adParamOutput)

ObjComm.parameters("@sql")="select * from k_partno"
ObjComm.parameters("@page")="1"
ObjComm.parameters("@pagesize")="20"
Set objrs= objcomm.execute
response.write(ObjComm.parameters("@pagecount").value)
语句执行没有错,而且adParamOutput我也定义了,热行完之后objrs的记录我可以输得出来,就是pagecount取不到,热行过程没有任何错误,且可以排除存储过程也没有任何问题,在查询分析器里执行可以取得到pagecount的值
请各位高手帮我指点一下这样的情况问题出在哪里?感激涕淋,就这问题困扰了我一天时间
response.write(ObjComm.parameters("@pagecount").value)这句话我试过很多种写法
response.write(ObjComm(3))
response.write(ObjComm.parameters("@pagecount"))
response.write(ObjComm("@pagecount"))都试过了,都不出错,也不出数据
ObjComm.parameters.append objcomm.createparameter("@pagecount",adInteger, adParamOutput,,0) 这句话写错了,后面的,,0我在程序中去掉了

也不行,所有书写格式我都试过
不过我现在已经找到了问题的答案
在这一起分享,希望能对跟我遇到相同问题的朋友起点作用,问题是所在是因为Set objrs= objcomm.execute 这句话,应该写成objcomm.execute
response.write(ObjComm.parameters("@pagecount").value)
Set objrs.Source=objcomm
objrs.open
把那一句话写成这样就可以了,在用Response.write的时候就可以输出结果来

ObjComm("pagecount")呢?