VC++调用带参数的存储过程.DOC

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC++调用带参数的存储过程.DOC

VC++调用带参数的存储过程最近由于工作之需,要利用VC进行一些高级的数据库操作,如执行存储过程等。遍寻网络资源发现好使的不多(经常#30XX错误,大部分应该是COM的VARIANT数据类型所致,其实有个讨巧的方法,请看下文),在自己的实验下小有所得。记下学习笔记以备参考: 1 进行ADO编程的必备步骤:引入msado15.dll ?#import c:/program files/common files/system/ado/msado15.dll no_namespace rename(EOF,adoEOF)//避免与文件的结束符号混淆,将EOF改为adoEOF ?当然要记得在所有#include之后加入啊 2 也是必备的:初始化Com库 ?::CoInitialize(NULL);///初始化COM库 3 建立数据库连接 ?_ConnectionPtr m_pConnection;//连接数据库的Com智能指针,可以自动Release ^_^ ?m_pConnection.CreateInstance(ADODB.Connection);//建立实例返回HRESULT 所以最好if一下看看成功否 4 连接数据库 ?m_pConnection-Open(Driver={SQL Server};Server=localhost;Database=Northwind;UID=sa;PWD=wxy,,,adModeUnknown); ? ?最好用Try的,可以捕获错误啊,例如 ?try ?{ ?m_pConnection-Open(Driver={SQL Server};Server=localhost;Database=Northwind;UID=sa;PWD=wxy,,,adModeUnknown); ??.........//其他数据库操作 ?} ?catch(_com_error e) ?{ ??//处理错误吧 ?} 5 创建执行存储过程的命令对象 ?_CommandPtr m_pCommand;//还是智能指针 ?m_pCommand.CreateInstance(ADODB.Command);//实例 ?m_pCommand-ActiveConnection = m_pConnection;//设置连接,别忘了啊 ?m_pCommand-CommandText = Test;//存储过程为Test ?假设我的存储过程如下: ??CREATE PROCEDURE Test? ??@id int, ??@Name varchar(20), ??@sdate datetime, ??@ret char(1) output ???AS ??insert into VCStorproc values(@id,@Name,@sdate) ??if @@error=0 ???set @ret=1 ??else ???set @ret=0 ??go ?? 6 建立传入存储过程的参数 ?存储过程Test中输入参数id,name,sdate 输出参数ret? 记住他们的类型和大小啊 ?下面就来创建4个参数 ?VC中用_ParameterPtr智能指针来建立参数,具体如下: ?_ParameterPtr m_pParam; ?m_pParam.CreateInstance(ADODB.Parameter); ?_ParameterPtr m_pParam1;//附加数字的命名习惯不好别学我啊 ?m_pParam1.CreateInstance(ADODB.Parameter); ?_ParameterPtr m_pParam2; ?m_pParam2.CreateInstance(ADODB.Parameter);? ?_ParameterPtr m_pParamRet; ?m_pParamRet.CreateInstance(ADODB.Parameter); ?别高兴还没有真正的建立好参数 ?m_pParam = m_pCommand-CreateParameter(id,adInteger,adParamInput,-1,(_variant_t)10);//给参数设置各属性 ?m_pCommand-Parameters-Append(m_pParam);//加入到Command对象的参数集属性中 ?m_pParam1 = m_pCommand-CreateParameter(Name,adVarChar,adParamInput,20,(_variant_t)songwenfeng); ?m_pCommand-Parameters-Append(m_pParam1); ?m_pParam2 = m_pCommand-Create

文档评论(0)

seym + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档