ADO-添加msado15.dll及基本类对象的了解
一、dll文件的导入
参考文献:https://blog.csdn.net/qq_31209383/article/details/51199762
要使用数据库,首先在stdafx.h中导入msado15.dll
#import #import "C:/Program Files/Common Files/System/ADO/msado15.dll" no_namespace rename("EOF","adoEOF")
但这样会报错,解决办法如上面链接:
方法一:使用命名空间;
方法二:不使用命名空间,但将所有报错的重定义名称rename一下;
方法三:project -> setting -> C/C++ ->perprocessor ->perprocessor definitions : 里面添加 宏 _AFX_NO_DAO_SUPPORT
二、_ConnectionPtr、_RecordPtr是什么
这是微软封装好的智能指针,供调用数据库使用。这两个指针,即是类又是指针。
作为类,使用.操作符,这时候调用的是该类自己的方法,如pCon.CreateInstance("ADODB.Connection")就是创建实现一个com组件内的Connection对象,并将该对象的指针赋值给pCon,此时pCon就是一个接口指针了,此时就用->操作符。
三、Connection、_Connection与_ConnectionPtr之间的区别
_Connection是Connection的接口,是个struct结构,后者实现了前者。
_ConnectionPtr是对_Connection封装后的智能指针,_com_ptr_t,智能指针实质上也是个类,是对指针进行了封装;
Connection是COM组件类,即有CoClass属性;
前两者是指针,后者是类。
四、COM与MFC之间数据转化问题
MFC内的数据结构(字符串,数字等)必须转化成满足COM结构的数据类型才能被COM的函数使用。
_bst_r,VARIANT,CComBSTR,CComVariant都是把MFC转化成COM数据类型的类或类型。
五、Close()与Release()的区别
Close()只是关闭通道,并不释放内存资源
Release(),释放对接口指针的引用。打开一个通道前必须检查上一个通道关闭并释放资源(查看pCon==NULL),如果没有,必须释放,否则无法使用。
因此Close()不是必须的,Release()是。
最新文章
- Redis数据库入门教程
- 关于重装系统与Visual Studio 2015
- 入門必學NO.1 Android 初學特訓班(第四版) 目錄
- J2SE宏观总结
- html标签应用
- 通过代码创建label 计算最佳尺寸 让其自适应文本高度或宽度
- 委托的lambda表达式
- spring mvc &;lt;mvc:annotation-driven&;gt;配置使用出现故障
- 【Unity 3D】学习笔记四十:射线
- Gson序列化对象如何忽略字段
- linux服务器上使用find查杀webshell木马方法
- dedecms怎样调用指定id文章?
- PyTorch 1.0 发布,JIT、全新的分布式库、C++ 前端
- su:鉴定故障
- 「Vue」程序式路由导航用法
- C/C++内存管理详解 ZZ
- Redis中redis.conf里面配置详解
- fiddler请求报文的headers属性详解
- css制作环形文本
- ansible copy文件比较慢, 使用Synchronize模块