ASP为什么取不到存储过程OUTPUT类型参数的值

本文探讨了在ASP.NET中使用AdoDB组件调用存储过程时遇到的问题,特别是如何正确获取输出参数的值。文章详细介绍了设置连接、创建命令对象及执行存储过程的过程,并分享了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dim rs
   
   dim objCmd
Dim bbb
Dim adParaminput
Dim adParamOutput
Dim adInteger
Dim adVarChar
adParaminput = 1
adParamOutput=2
adInteger =3
adVarChar =200
dim objCnn 
set objCnn=Server.CreateObject("Adodb.connection") 
objCnn.Open ConnectionString
Dim  recordc
recordc=12
set objCmd=Server.CreateObject("Adodb.Command") 
objCmd.ActiveConnection=objCnn 
objCmd.CommandText="_PagingLarge" '指定存储过程名称 
objCmd.CommandType=4 '其为4Stored Procedure 
'-----准备stored procedure 的参数------- 
    

objCmd.Parameters.Append objCmd.CreateParameter("TableNames",adVarChar,adParaminput,200,TableName)

objCmd.Parameters.Append objCmd.CreateParameter("@PrimaryKey",adVarChar,adParamInput,200,PrimaryKey)
objCmd.Parameters.Append objCmd.CreateParameter("@Fields",adVarChar,adParamInput,200,Fields) 
objCmd.Parameters.Append objCmd.CreateParameter("@PageSize",adInteger,adParamInput,200,PageSize) 
objCmd.Parameters.Append objCmd.CreateParameter("@CurrentPage",adInteger,adParamInput,200,CurrentPage) 
objCmd.Parameters.Append objCmd.CreateParameter("@Filter",adVarChar,adParamInput,200,FilterS) 
objCmd.Parameters.Append objCmd.CreateParameter("@Group",adVarChar,adParamInput,200,GroupStr) 
objCmd.Parameters.Append objCmd.CreateParameter("@Order",adVarChar,adParamInput,200,OrderStr) 
objCmd.Parameters.Append objCmd.CreateParameter("@Total",3,adParamOutput,3)
'-----执行存储过程---------------------- 
'dim rs
Dim recordCountss
recordCountss=234
set rs=server.CreateObject("adodb.recordset")
set rs= objCmd.Execute

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

也不行,所有书写格式我都试过
不过我现在已经找到了问题的答案
在这一起分享,希望能对跟我遇到相同问题的朋友起点作用,问题是所在是因为set rs= objCmd.Execute这句话,应该写成
  objCmd.Execute
 recordCountss= objCmd.Parameters("@Total").value
 response.write(recordCountss)
 Set rs.Source=objCmd

                 rs.open


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值