日期:2014-05-16  浏览次数:20692 次

关于command调用存储过程问题
set Comm = server.createobject("adodb.command")
Comm.ActiveConnection = Conn
Comm.CommandText = "proc_tel_feature" '存储过程名称,指定要执行的是一个存储过程
Comm.CommandType = 4
Comm.Parameters.Append Comm.CreateParameter("feature",adVarChar,adParamInput,20)
Comm.Parameters.Append Comm.CreateParameter("sprice",adInteger,adParamInput,20)
Comm.Parameters.Append Comm.CreateParameter("eprice",adInteger,adParamInput,20)
Comm.Parameters.Append Comm.CreateParameter("pinpai",adVarChar,adParamInput,50)
Comm.parameters("feature")=feature
Comm.parameters("sprice")=startprice
Comm.parameters("eprice")=endprice
Comm.parameters("pinpai")=pinpai
set rs = Comm.Execute ‘80行
Set Comm = Nothing


Microsoft OLE DB Provider for SQL Server 错误 '80040e10'

过程或函数 'proc_tel_feature' 需要参数 '@feature',但未提供该参数。

/work/main/selectTel.asp,行 80 

------解决方案--------------------
1 CreateParameter()的最后一个参数就是参数值,不需要Comm.parameters("feature")=feature。
Comm.Parameters.Append Comm.CreateParameter("@feature",adVarChar,adParamInput,20, feature)

2 如果proc_tel_feature有return value的话, 第一个参数应该是该返回值。