CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

ADO调用oracle存储过程问题~~~在线等

楼主cgfhz(→.Net^_^)2005-08-18 13:13:48 在 VC/MFC / 数据库 提问

代码如下,请高手指点~~  
  int   ADOConn(char*   sfz)  
  {  
          CoInitialize(NULL);  
          _ConnectionPtr   conn;  
          HRESULT   hr;  
          hr   =   conn.CreateInstance(__uuidof(Connection));  
          if(FAILED(hr))  
                return   -1;  
   
        try  
        {  
                conn->Open("Provider=OraOLEDB.Oracle.1;Password=nct;Persist   Security   Info=True;User   ID=phsb;Data   Source=devdb","","",NULL);  
        }  
        catch(_com_error   e)  
        {  
                return   -1;  
        }  
   
        _CommandPtr   comm;  
        HRESULT   hr1     =     comm.CreateInstance(__uuidof(Command));          
        if(FAILED(hr1))              
        {              
              return   -1;          
        }              
        comm->ActiveConnection     =     conn;     //ADO连接    
        comm->CommandText="sip_public.f_get_lsfz";     //存储过程名      
        comm->Parameters->Append(comm->CreateParameter("result",adBSTR,adParamOutput,3000,""));  
        comm->Parameters->Append(comm->CreateParameter("sfz",adBSTR,adParamInput,3000,"XXXX"));  
        comm->Execute(NULL,NULL,adCmdStoredProc);     //执行到这里出错  
         
        //comm->Parameters->GetItem("result")->Value.bstrVal;   //取返回值  
        //如何把返回值赋给变量sfz  
        CoUninitialize();  
        return   1;  
  }  
  问题点数:50、回复次数:3Top

1 楼happyparrot(快乐鹦鹉)回复于 2005-08-18 13:25:10 得分 25

comm->CommandType   =   adCmdStoredProc;      
  用try...catch(_com_error   &e)捕捉一下异常,看看报什么错。  
  Top

2 楼masterz(www.fruitfruit.com)回复于 2005-08-18 13:52:47 得分 25

study   the   following   code   snippet  
  http://www.fruitfruit.com/vc/database/oracle.cppTop

3 楼cgfhz(→.Net^_^)回复于 2005-08-18 16:10:30 得分 0

谢谢楼上两位~呵呵~我改了后执行是成功了,但取不到返回值~在数据库中直接执行是有返回值的,但在VC中返回值是空的!如何解决?  
  comm->ActiveConnection     =     conn;     //ADO连接    
        comm->CommandType   =   adCmdStoredProc;  
        comm->CommandText="sip_public.f_get_lsfz";     //存储过程名      
        comm->Parameters->Append(comm->CreateParameter("result",adBSTR,adParamOutput,3000,""));  
        comm->Parameters->Append(comm->CreateParameter("sfz",adBSTR,adParamInput,3000,"XXXX"));  
        comm->Execute;      
        CString   test=comm->Parameters->GetItem("result")->Value.bstrVal;   //取返回值  
        strcpy(sfz,   test);     //返回值赋给变量sfz,返回为空??Top

相关问题

  • 关于在ADO中调用ORACLE存储过程 !^_^!
  • 新手问题:vb6 ADO怎么调用ORACLE存储过程?
  • 在Oracle的存储过程中动态调用存储过程
  • Oracle调用Oracle存储过程?
  • ADO调用不返回结果的oracle存储过程,还是出错??
  • ado调用oracle数据库存储过程参数传递问题
  • jsp调用Oracle存储过程
  • pb如何调用oracle存储过程
  • 调用Oracle存储过程的问题???
  • vb调用oracle存储过程

关键词

  • 存储过程
  • ado
  • hr
  • 执行
  • oracle
  • null
  • comm
  • sfz
  • adbstr
  • 返回值

得分解答快速导航

  • 帖主:cgfhz
  • happyparrot
  • masterz

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo