为什么我的VB程序调用SQL SERVER 2000 的存储过程不能返回定义的输出参数
以下存储过程在查询器中可以返回正确值,担在我的VB程序中返回都是"0".请大虾指正,或给一段可以正确执行的源码。
例程:
存储过程:
CREATE procedure Procdcwquer @Code varchar(8),@PositionNo int output, @Sum float output as
declare @GoodsCode varchar(8)
select t_cwb.c_cwh as 仓位号, c_cwmc as 仓位名称, f_dqkcsl as 库存数量
from t_cwb join t_dcwb on t_cwb.c_cwh = t_dcwb.c_cwh
where c_spbm = @code
select @PositionNo = count(*) , @sum =sum(f_dqkcsl) from t_dcwb
where c_spbm =@code
group by c_spbm
GO
VB程序:
dim intPositionNo as integer
dim sigSum as single
Set objCnn = New ADODB.Connection
Set objCmd = New ADODB.Command
Set objRst = New ADODB.Recordset
Set objParmIn = objCmd.CreateParameter(, adVarChar, adParamInput,8,strCode)
objCmd.Parameters.Append objParmIn
Set objParmOutPositionNo = objCmd.CreateParameter("intPositionNo", adInteger, adParamOutput, 3)
objCmd.Parameters.Append objParmOutPositionNo
Set objParmOutSum = objCmd.CreateParameter("sigSum", adSingle, adParamOutput, 8)
objCmd.Parameters.Append objParmOutSum
objCnn.Open g_strHeadquarterCnn
objCmd.ActiveConnection = objCnn
objCmd.CommandType = adCmdStoredProc
objCmd.CommandText = "procdcwquer"
Set objRst = objCmd.Execute
intPositionNo = objCmd("intPositionNo")
sigSum = objCmd("sigSum")
MsgBox Str(intPositionNo) & str(sigSum)