22,209
社区成员
发帖
与我相关
我的任务
分享
int UserDAO::UpdateCharacterLvlAndExp( int cid, int lvl, int exp )
{
if (!dbConnect->m_bDBOpen)
{
return rERROR;
}
// 创建Command对象
_CommandPtr cmd;
_ParameterPtr pParam;
HRESULT hr = cmd.CreateInstance(__uuidof(Command));
if (FAILED(hr))
{
return rERROR;
}
string strSql = "dbo.UpdateCharacterLvlAndExp";
cmd->ActiveConnection = dbConnect->_connection_ptr;
cmd->CommandText = _bstr_t(strSql.c_str());
cmd->CommandType = adCmdStoredProc;
pParam.CreateInstance(__uuidof(Parameter));
pParam=cmd->CreateParameter(_bstr_t("CharacterId"),
adInteger,
adParamInput,
4);
pParam->Value=_variant_t(cid);
cmd->Parameters->Append(pParam);
pParam=cmd->CreateParameter(_bstr_t("Level"),
adInteger,
adParamInput,
4);
pParam->Value=_variant_t(lvl);
cmd->Parameters->Append(pParam);
pParam=cmd->CreateParameter(_bstr_t("Exp"),
adInteger,
adParamInput,
4);
pParam->Value=_variant_t(exp);
cmd->Parameters->Append(pParam);
pParam=cmd->CreateParameter(_bstr_t("Error"),
adInteger,
adParamOutput,
4);
cmd->Parameters->Append(pParam);
try
{
//return rSuccess;
_variant_t error;
cmd->Execute(NULL, NULL, adCmdUnknown);
error=cmd->Parameters->GetItem("Error")->GetValue();
if((int)(long)error>0)
{
pParam.Release();
cmd.Release();
return rERROR;
}
else
{
pParam.Release();
cmd.Release();
return rSuccess;
}
}
catch (_com_error &err)
{
TRACE(_T("数据库操作失败! 错误信息:%s, 文件:%s, 行:%d.\n"), err.ErrorMessage(), __FILE__, __LINE__);
return rERROR;
}
pParam.Release();
cmd.Release();
return rERROR;
}