_Command* piCmd = NULL;
...//连接piCmd
_Recordset* piRS = NULL;
ADOParameters* piParams = NULL;
_ADOParameter* piParam = NULL;//设置存储过程名,取回参数列表
piCmd->put_CommandText(bstrStoredProcName);
piCmd->put_CommandType(adCmdStoredProc);
piCmd->get_Parameters(&piParams);
piParams->Refresh();VARIANT varIndex,varValue;
::VariantInit(&varIndex);
varIndex.vt = VT_BSTR;
varIndex.bstrVal = ::SysAllocString(lpcwParamName);//lpcwParamName == 存储过程的参数名,例如:@PersonName...//给varValue赋值
piParams->get_Item(varIndex,&piParam);
piParam->put_Value(varValue);//如果varValue.vt不是long,int等简单数据类型,就需要设置Size
if(varValue.vt == VT_BSTR)
    piParam->put_Size(sizeof(WCHAR)*(::SysStringLen(V_BSTR(&varValue))+1));
piParam->Release();//执行存储过程
//需要Recordset
piCmd->Execute(NULL,NULL,adCmdStoredProc,&piRS);
//不需要Recordset
piCmd->Execute(NULL,NULL,adCmdStoredProc|adExecuteNoRecords,NULL);

解决方案 »

  1.   

    _CommandPtr pCommand;
        _ParameterPtr pParameter;
    pParameter = pCommand ->CreateParameter( _bstr_t(L""),
                                       ADODB::adInteger,
                                       ADODB::adParamInput,
                                       -1,
                                       _variant_t( (long) 5) );
         pParameter ->Value = _variant_t( (long) 5 );
         pCommand ->Parameters->Append(pParameter);     // Open Recordset Object.
         m_pRecordset = pCommand ->Execute( &vtEmpty, &vtEmpty2, ADODB::adCmdText );
      

  2.   

    Conn1.CreateInstance( __uuidof( Connection ) );
    Conn1->ConnectionString = bstrSQLServerConnect;
    Conn1->Open( bstrEmpty, bstrEmpty, bstrEmpty );
    Cmd1.CreateInstance( __uuidof( Command ) );
    Cmd1->ActiveConnection = Conn1;
    Cmd1->CommandText      = _bstr_t( bstrProc );
    Cmd1->CommandType      = adCmdStoredProc;
    Cmd1->Parameters->Refresh();
    Cmd1->Parameters->Item[ _variant_t( (long) 1 ) ]->Value = _variant_t( (LPCTSTR)m_sfilename );Rs1 = Cmd1->Execute( &vtEmpty, &vtEmpty2, adCmdUnknown );Final = Rs1->Fields->GetItem( _variant_t( 0L ) )->Value;
      

  3.   

    http://www.vckbase.com/vckbase/vckbase10/vc/nonctrls/database_07/1007001.htm