一、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()是。

最新文章

  1. Redis数据库入门教程
  2. 关于重装系统与Visual Studio 2015
  3. 入門必學NO.1 Android 初學特訓班(第四版) 目錄
  4. J2SE宏观总结
  5. html标签应用
  6. 通过代码创建label 计算最佳尺寸 让其自适应文本高度或宽度
  7. 委托的lambda表达式
  8. spring mvc <mvc:annotation-driven>配置使用出现故障
  9. 【Unity 3D】学习笔记四十:射线
  10. Gson序列化对象如何忽略字段
  11. linux服务器上使用find查杀webshell木马方法
  12. dedecms怎样调用指定id文章?
  13. PyTorch 1.0 发布,JIT、全新的分布式库、C++ 前端
  14. su:鉴定故障
  15. 「Vue」程序式路由导航用法
  16. C/C++内存管理详解 ZZ
  17. Redis中redis.conf里面配置详解
  18. fiddler请求报文的headers属性详解
  19. css制作环形文本
  20. ansible copy文件比较慢, 使用Synchronize模块

热门文章

  1. iptables启动脚本分析
  2. Java多态案例分析
  3. 使用UIImageView展现来自网络的图片
  4. 设置tableView背景颜色
  5. spring 构造方法注入和setter方法注入的XML表达
  6. 【BZOJ2422】Times 树状数组
  7. linux服务器最大连接数
  8. 【题解】Cutting Game
  9. 关于 IN UPDATE TASK
  10. mysql复制表结构和内容