vc執行一個帶參數的存儲過程,返回單個值:
cstring retu;
m_pcommand.createinstance("adodb.command");
#ifdef _debug
if (m_pcommand == null)
<
afxmessagebox("command 對象創建失敗! 請確認是否初始化了com環境.");
>
#endif
assert(m_pcommand != null);
//輸入參數 member
_parameterptr pparammember;
pparammember.createinstance("adodb.parameter");
pparammember->name="member"; //所用存儲過程參數名稱
pparammember->type=adchar; //參數類型
pparammember->size=32; //參數大小
pparammember->direction=adparaminput;//表明是輸入參數
pparammember->value=_variant_t(member);
m_pcommand->parameters->append(pparammember);
//返回值
_parameterptr pparamok;
pparamok.createinstance("adodb.parameter");
pparamok->name="welcome"; //參數2名稱
pparamok->type=adchar; //字符串
pparamok->size=70; //大小為70個字節
pparamok->direction=adparamoutput; //聲明是輸出參數
m_pcommand->parameters->append(pparamok);
//執行存儲過程
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;