outputParam |
再来一个关于OUTPUT的
int CAppDatabase::GetMenuContent(int & iOperator,const CString &strMenuId, CMoInfo &moInfo, CString &strMenu, CString &strSubID){ if ( !OpenDB() ) { return false; } try { _CommandPtr pCmd; _ParameterPtr pParam; _RecordsetPtr pRs; pParam.CreateInstance(__uuidof(Parameter)); pCmd.CreateInstance(__uuidof(Command)); pCmd->ActiveConnection = m_pConn; pCmd->CommandType = adCmdStoredProc; pCmd->PutPrepared(true); int te =0; pCmd->CommandText = _bstr_t("DP_SMS_GetUniteMenu2"); /* p_sSubID out varchar2, --对应yyruser.yyr_uniform_menus中的subid p_sContents out varchar2, --菜单内容 p_nReturn out number -- 返回值,1 成功,0失败或没找到菜单*/ pParam = pCmd->CreateParameter(_bstr_t("p_sBaseServiceCode"), adVarChar, adParamInput, 21, _variant_t(_bstr_t(moInfo.SmsMoInfo.strBaseServiceCode))); pCmd->Parameters->Append(pParam); pParam = pCmd->CreateParameter(_bstr_t("p_sMenuID"), adVarChar, adParamInput, 21, _variant_t(_bstr_t(strMenuId))); pCmd->Parameters->Append(pParam); pParam = pCmd->CreateParameter(_bstr_t("p_sSource"), adVarChar, adParamInput, 10, _variant_t(_bstr_t(moInfo.strPlatformID))); pCmd->Parameters->Append(pParam); pParam = pCmd->CreateParameter(_bstr_t("p_nOperator"), adInteger, adParamInput, 4, _variant_t(_bstr_t(long(iOperator)))); pCmd->Parameters->Append(pParam);
pParam = pCmd->CreateParameter(_bstr_t("p_sProvince"), adVarChar, adParamInput, 21, _variant_t(_bstr_t(moInfo.SmsMoInfo.strSrcProvince))); pCmd->Parameters->Append(pParam); pParam = pCmd->CreateParameter(_bstr_t("p_sCity"), adVarChar, adParamInput, 21, _variant_t(_bstr_t(moInfo.SmsMoInfo.strSrcCity))); pCmd->Parameters->Append(pParam); pParam = pCmd->CreateParameter(_bstr_t("p_sSubID"), adVarChar, adParamOutput, 100, _variant_t(_bstr_t(strSubID))); pCmd->Parameters->Append(pParam); pParam = pCmd->CreateParameter(_bstr_t("p_sContents"), adVarChar, adParamOutput, 100, _variant_t(_bstr_t(strMenu))); pCmd->Parameters->Append(pParam); pParam = pCmd->CreateParameter(_bstr_t("p_iResult"), adInteger, adParamOutput, 1, _variant_t(long(te))); pCmd->Parameters->Append(pParam); pRs = pCmd->Execute(NULL, NULL, adCmdStoredProc); strSubID = (char*)_bstr_t(pCmd->Parameters->GetItem(_variant_t("p_sSubID"))->Value);//g_AppDB.GetValueStr(pRs,_variant_t ("p_sContents")); strMenu = (char*)_bstr_t(pCmd->Parameters->GetItem(_variant_t("p_sContents"))->Value); int nRet = pCmd->Parameters->GetItem(_variant_t("p_iResult"))->Value.intVal; if (adStateClosed != pRs->GetState()) { pRs->Close(); } pRs.Release(); pParam.Release(); pCmd.Release(); } catch (_com_error& e) { m_bConn = false; MessageBox(NULL,e.ErrorMessage(),"T",MB_OK); DMPcomERR(e); return false; } catch(...) { WriteLog(g_Log, "类CAppDatabase中的函数AddTest异常"); return false; } return true; } | |
|
|