_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)的方法;要是需要返回一个数组,可以使用返回数据集的方法。
博客展示了使用VC++调用SQL Server存储过程添加用户的代码。通过创建Command对象,设置连接、参数和命令文本,执行存储过程。若添加成功,输出用户ID;若发生异常,输出异常信息。还提及多值返回和返回数组的处理方法。
1871

被折叠的 条评论
为什么被折叠?



