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;