vc++中,用ado执行sql server存储过程,并且取得返回值的例子

王朝vc·作者佚名  2006-01-09
宽屏版  字体: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有