- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- LED路灯产品质量评价标杆体系评测申请单.doc
- Legend Shop.doc
- Lesson Seven Spring Sowing.DOC
- Lesson4 Christmas.doc
- LQT型金属弹簧隔振器(冷却塔专用).doc
- MA418 Statistics Project for Spring Term 2015.doc
- Math 504, Lecture 12, Spring 2015.doc
- matrix春笋计划.doc
- May 2015.doc
- MBA企业调研报告.doc
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
文档评论(0)