vc執(zhí)行一個帶參數(shù)的存儲過程,返回單個值:
cstring retu;
m_pcommand.createinstance("adodb.command");
#ifdef _debug
if (m_pcommand == null)
<
afxmessagebox("command 對象創(chuàng)建失敗! 請確認是否初始化了com環(huán)境.");
>
#endif
assert(m_pcommand != null);
//輸入?yún)?shù) member
_parameterptr pparammember;
pparammember.createinstance("adodb.parameter");
pparammember->name="member"; //所用存儲過程參數(shù)名稱
pparammember->type=adchar; //參數(shù)類型
pparammember->size=32; //參數(shù)大小
pparammember->direction=adparaminput;//表明是輸入?yún)?shù)
pparammember->value=_variant_t(member);
m_pcommand->parameters->append(pparammember);
//返回值
_parameterptr pparamok;
pparamok.createinstance("adodb.parameter");
pparamok->name="welcome"; //參數(shù)2名稱
pparamok->type=adchar; //字符串
pparamok->size=70; //大小為70個字節(jié)
pparamok->direction=adparamoutput; //聲明是輸出參數(shù)
m_pcommand->parameters->append(pparamok);
//執(zhí)行存儲過程
m_pcommand->activeconnection=m_pconnection;
m_pcommand->commandtext="getwelcome"; //存儲過程名稱
m_pcommand->commandtype=adcmdstoredproc;//表示為存儲過程adcmdstoredproc
m_pcommand->execute(null, null, adcmdstoredproc);
retu=(char*)_bstr_t(pparamok->value);
pparammember->release();
return retu;