variant_t RecordsAffected; string szSql = (string)"P_KS_ADDUSER '" + m_szName+ "','" + m_szPasswd +"';"; try { _CommandPtr ptrCmd; ptrCmd.CreateInstance(__uuidof(Command)); ptrCmd->ActiveConnection = pContext- >GetConnection(); VARIANT vtRoyalty; vtRoyalty = COleVariant((long)0); ptrCmd->Parameters- >Append( ptrCmd->CreateParameter("Return", adInteger, adParamReturnValue,sizeof(int),vtRoyalty)); vtRoyalty = COleVariant(m_szName.c_str()); ptrCmd- >Parameters->Append( ptrCmd->CreateParameter("Name", adChar, adParamInput,m_szName.size(),vtRoyalty)); vtRoyalty = COleVariant(m_szPasswd.c_str()); ptrCmd->Parameters->Append( ptrCmd ->CreateParameter("Pass", adChar, adParamInput,m_szPasswd.size(),vtRoyalty)); ptrCmd- >CommandText = "P_KS_ADDUSER"; ptrCmd->CommandType = adCmdStoredProc; ptrCmd- >Execute(NULL,NULL,adCmdStoredProc); cout<<"添加用户成功,id="<<(unsigned int)ptrCmd ->Parameters->GetItem("Return")->GetValue()<<endl; //cout<<"add id:"<<(unsigned int)ptrCmd- >GetParameters()->GetItem(0)<<endl; //pContext->GetNetworkSender() ->SendPack(); } catch(_com_error e) { cout<<"增加用户的时候发生异常:"<<(LPCSTR)e.Description() <<endl; return; }
要是有多个值要返回,那么可以使用输出参数(output parameter)的方法;要是需要返回一个数组,可以使用返回数据集的方法。