_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)的方法;要是需要返回一个数组,可以使用返回数据集的方法。