为什么小弟我的存储过程取不到返回值

为什么我的存储过程取不到返回值啊
/*
CREATE   PROCEDURE   dbo.upc_query_code
(
@qr_strCode [varchar](30), --查询编码
@qr_strText [varchar](100), --收到的编码
@qr_dQTime [datetime], --查询时间
@qr_strFrom [varchar](50), --查询来源
@qr_nFromType [int], --来源类型
@qr_nType [int], --查询类型
@qr_struser [varchar](20), --查询人
@qr_strCorpNum [varchar](10), --企业代码
@qr_nIndex_out [bigint] output, --查询结果索引
@mft_code [varchar](10) output, --产品代码
@zone_code [varchar](10) output, --地区代码
@query_time [datetime] output, --第一次查询时间
@qurey_count [int] output, --查询次数
@qr_nResult [int] output, --查询的类别
@nResult int   output, --存储过程结果,0表示正常,8编码错误,9表示非第一次查询,10表示有未发送成功记录
@strError varchar(300)   output --具体的错误的代码
)
*/

_variant_t   vRecsAffected(0L),variant1;
_variant_t   varPcode,varint,varbetchno,varEcode,varRindex,VarRecordVer,vMessType;
_variant_t   vartxtrec,varcodeture,varphonenum,vartextsend,varquerytype,varsendIndex;
      _RecordsetPtr   pRS;
int   ret;


_CommandPtr   pCommand;
_RecordsetPtr   pRecord;
_ParameterPtr   ptr[17];

_variant_t   tmp,itmp,datetmp,chan;

CString   zonecode,strerror,mftCode;
int   queryCount,qrest,nresult;
long   qindex;
  _variant_t   returnValue;


tmp= " ";
itmp= "0 ";
CTime   tt=CTime::GetCurrentTime();
CString   str2=tt.Format( "%Y-%m-%d   %H:%M:%S ");
datetmp=str2;
str2.Format( "%d ",channum);
chan=(_variant_t)str2;

try
{
pCommand.CreateInstance(__uuidof(Command));
pCommand-> ActiveConnection   =   m_taoconnect;
pCommand-> CommandText   =   _bstr_t( "upc_query_code ");       //_bstr_t   can   ommite
pCommand-> CommandType=adCmdStoredProc;
ptr[0]   =   pCommand-> CreateParameter( "@qr_strCode ",adVarChar,adParamInput,30,(_variant_t)queryCode);//   18位编码
ptr[1]   =   pCommand-> CreateParameter( "@qr_strText ",adVarChar,adParamInput,100,(_variant_t)queryCode);//   接收到的编码
ptr[2]   =   pCommand-> CreateParameter( "@qr_dQTime ",adVarChar,adParamInput,20,(_variant_t)datetmp);//  
ptr[3]   =   pCommand-> CreateParameter( "@qr_strFrom ",adVarChar,adParamInput,50,(_variant_t)callid);//   @ms_strCode_4   [varchar](50),
ptr[4]   =   pCommand-> CreateParameter( "@qr_nFromType ",adInteger,adParamInput,4,(_variant_t)0l);//电话号码
ptr[5]   =   pCommand-> CreateParameter( "@qr_nType ",adInteger,adParamInput,4,(_variant_t)0l);//@ms_strProductCode_6   [varchar](50),
ptr[6]   =   pCommand-> CreateParameter( "@qr_struser ",adVarChar,adParamInput,20,tmp);//@ms_strCorpCode_7   [varchar](50),
ptr[7]   =   pCommand-> CreateParameter( "@qr_strCorpNum ",adVarChar,adParamInput,10,tmp);//@ms_strBetchNo_8   [varchar](50),

_variant_t   indexout,mfcode,zonecode,querytime,querycount,qResult,nResult,strErr;

ptr[8]   =   pCommand-> CreateParameter( "@qr_nIndex_out ",adBigInt,adParamOutput,8,indexout);//   @ms_strChanel_9   [varchar](50),
ptr[9]   =   pCommand-> CreateParameter( "@mft_code ",adVarChar,adParamOutput,10,mfcode);//   @ms_nMessageType_10   [int],
ptr[10]   =   pCommand-> CreateParameter( "@zone_code ",adVarChar,adParamOutput,10,zonecode);//电话0   [int],