_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);
...//连接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);
_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 );
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;