c++调用存储过程例子

c++调用存储过程例子

 

  ...

  _CommandPtr    m_cmdptr;
  m_cmdptr.CreateInstance(__uuidof( Command ) );

  
  _ParameterPtr inParam2=NULL;  
  _ParameterPtr inParam3=NULL;  
  _ParameterPtr inParam4=NULL;  
  _ParameterPtr outParam1=NULL;  
  _ParameterPtr outParam2=NULL;
  _ParameterPtr outParam3=NULL;  
  
  
  inParam2.CreateInstance(__uuidof(Parameter));
  inParam3.CreateInstance(__uuidof(Parameter));
  inParam4.CreateInstance(__uuidof(Parameter));
  outParam1.CreateInstance(__uuidof(Parameter));
  outParam2.CreateInstance(__uuidof(Parameter));
  outParam3.CreateInstance(__uuidof(Parameter));

  m_cmdptr->ActiveConnection=m_pConnection; 
  m_cmdptr->CommandType=adCmdStoredProc;  
  m_cmdptr->CommandText=_bstr_t("proc_XXX");//存储过程的名称  


   //输入参数  
  inParam2=m_cmdptr->CreateParameter(_bstr_t("@P1"),adVarChar,adParamInput,32,_bstr_t(P1));  
  m_cmdptr->Parameters->Append(inParam2);

  inParam3=m_cmdptr->CreateParameter(_bstr_t("@P2"),adVarChar,adParamInput,20,_bstr_t(P2));  
  m_cmdptr->Parameters->Append(inParam3);  

  //输出参数
  outParam1=m_cmdptr->CreateParameter("@P4",adInteger,adParamOutput,sizeof(int));  
  m_cmdptr->Parameters->Append(outParam1);   
  outParam2=m_cmdptr->CreateParameter("@P5",adInteger,adParamOutput,sizeof(int));  
  m_cmdptr->Parameters->Append(outParam2);  
  outParam3=m_cmdptr->CreateParameter(_bstr_t("@P6"),adVarChar,adParamOutput,20,_bstr_t(P6));  
  m_cmdptr->Parameters->Append(outParam3);

 

  //执行

  m_cmdptr->Execute(NULL,NULL,adCmdStoredProc);

 

 //取返回值

  long   p1=m_cmdptr->Parameters->GetItem("@P4")->Value;  
  long   p2=m_cmdptr->Parameters->GetItem("@P5")->Value;

  VARIANT vtP6 =m_cmdptr->Parameters->GetItem("@P6")->Value;
  if (vtP6.vt != VT_NULL)  
   strcpy(tp,(_bstr_t)vtP6);

  

  m_cmdptr.Detach;

...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值