使用VC在ADO中访问存储过程的方法

原创 2007年10月12日 12:54:00
void CADORecordset::AddNewFileNode(CString ShowName , char * ReallyName,long &Id,int root)
...{    
    _CommandPtr pIDCommand;
    pIDCommand.CreateInstance(__uuidof(Command));

    pIDCommand
->ActiveConnection = m_pConnection;//连接字符串
    pIDCommand->CommandText = "pr_AddNew";//存储过程名
    pIDCommand->CommandType = adCmdStoredProc;//标记该操作为存储过程

    _ParameterPtr m_pParam;

    m_pParam 
= pIDCommand->CreateParameter("@reid",adInteger,adParamInputOutput,sizeof(int),0);//添加参数该参数为一个inputoutput类型的int参数   
    pIDCommand->Parameters->Append(m_pParam);

    m_pParam 
= pIDCommand->CreateParameter("@ReallyName",adVarChar,adParamInputOutput,128,ReallyName); //添加参数该参数为一个inputoutput类型的VarChar(128)参数  
    pIDCommand->Parameters->Append(m_pParam);

    m_pParam 
= pIDCommand->CreateParameter("@nodeid",adInteger,adParamInput,sizeof(int),root);// 该参数为input类型的int参数,参数的值在root中
    pIDCommand->Parameters->Append(m_pParam);

    m_pParam 
= pIDCommand->CreateParameter("@ShowName",adChar,adParamInput,ShowName.GetLength(),ShowName.GetBuffer(0)); //数为input类型的char,参数的值在,ShowName.GetBuffer(0)中,该用法要回收
    ShowName.ReleaseBuffer();//回收
    pIDCommand->Parameters->Append(m_pParam);
    
    pIDCommand
->Execute(NULL,NULL,adCmdStoredProc);//执行存储过程
        
    Id 
= pIDCommand->Parameters->GetItem((long)0)->Value;//根据参数在参数表中的位置取值,当前参数是第一个,所以值为0 
    CString _reallyname= pIDCommand->Parameters->GetItem((long)1)->Value;
        
    pIDCommand.Detach();
//使用完毕后释放资源

    sprintf(ReallyName,_reallyname.Trim().GetBuffer(
0));
    _reallyname.ReleaseBuffer();
    
    ……
    
                      
return ;
}

 

Excel使用ADO调用SQL Server存储过程

前期使用Excel做一个现场投票的小软件,问题出在查看投票按钮上,起初只是使用SELECT语句查询,一切正常;后期对于投票结果需要进行一些权重的计算,过程比较复杂,便想到把计算过程放在SQL Serv...
  • zhanghongju
  • zhanghongju
  • 2015年03月25日 20:32
  • 3698

C++通过ADO调用存储过程

很久以前就在网上找了一些关于用C++调用数据库存储过程的文章,并用到了自己的项目中。网上的文章都是要定义_CommandPtr和_ParameterPtr类型的智能指针对象,然后用pCmd->Excu...
  • yeosn
  • yeosn
  • 2013年10月21日 10:35
  • 1664

C++ ADO方式连接mysql数据库

对于软件开发其实说白了就是在不停地和数据打交道, 所以数据库的操作是必不可少的, 接下来介绍VC开发中利用ADO建立ODBC数据源来访问MySQL数据库.        从我接触的数据库编程方式来说,...
  • lbcab
  • lbcab
  • 2016年05月06日 10:02
  • 4026

VC中使用ADO调用存储过程实现方法

本文转自:http://www.cppblog.com/Lee7/archive/2008/06/17/53775.html开发环境是VS2005  ,数据库是SQL Sever 20001. 在进入...
  • lincyang
  • lincyang
  • 2011年01月10日 13:50
  • 1394

VC中使用ADO调用存储过程实现方法

1. 在进入正题之前,先讲点别的,如何在VC中连接Sybase数据库,    连接字符窜为,_bstr_t strCnn(\"Driver={Sybase System 11};Srvr=RRRRR...
  • jimmyzj123456
  • jimmyzj123456
  • 2013年05月22日 16:30
  • 611

vc中ADO执行存储过程方法记录

ado执行存储过程,需要用到_CommandPtr接口。 方法如下: 可将如下代码段放在数据类初始化连接中_CommandPtr m_pCommand; // 定义_Com...
  • starytx
  • starytx
  • 2017年04月20日 17:20
  • 330

VC++ ADO调用存储过程方法

约定: 斜体字体表示可变部分   斜体 红色字体表示固定部分   红体   以下步骤的前提条件:COM ADO库已初始化,已经设置_ConnectionPtr连接对象。   步骤一: 创...
  • suxinpingtao51
  • suxinpingtao51
  • 2012年10月20日 23:06
  • 4632

VC ado调用oracle执行存储过程获取记录集

最近在做一个项目,数据库是用SQL Server,不过最近突然来了个需求说要改用Oracle。之前对SQL Server ado访问层做了一些封装,想试试看能不能简单修改后兼容oracle。测试过程中...
  • imlmy
  • imlmy
  • 2013年05月07日 14:33
  • 2438

vc++中,ado执行sql server存储过程

_variant_t RecordsAffected; string szSql = (string)"P_KS_ADDUSER " + m_szName+ "," + m_szPasswd +";"...
  • fjclc2008
  • fjclc2008
  • 2011年06月22日 16:49
  • 1837

使用 ADO.NET 访问 Oracle 9i 存储过程

使用 ADO.NET 访问 Oracle 9i 存储过程 227(共 229)对本文的评价是有帮助 - 评价此主题 发布日期 : 5/28/2004 | 更新日期 : 5/...
  • haohaizijhz
  • haohaizijhz
  • 2012年05月06日 01:24
  • 506
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 使用VC在ADO中访问存储过程的方法
举报原因:
原因补充:

(最多只允许输入30个字)