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

ADO-添加msado15.dll及基本类对象的了解的更多相关文章

  1. jquery attr()方法 添加,修改,获取对象的属性值。

    jquery attr()方法 添加,修改,获取对象的属性值. jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到 ...

  2. C#加载dll 创建类对象

    //加载dll 创建类对象string sqlightAssembly = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "syst ...

  3. {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询

    Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...

  4. iOS Category 添加属性实现原理 - 关联对象

    iOS Category 添加属性实现原理 - 关联对象 RunTime为Category动态关联对象 使用RunTime给系统的类添加属性,首先需要了解对象与属性的关系.对象一开始初始化的时候其属性 ...

  5. #import "msado15.dll" no_namespace rename("EOF","adoEOF")

    引入动态链接库msado15.dll的信息, no_namespace--无命名空间 rename(“EOF”,“adoEOF”)--把文件结束符“EOF”,更换成“adoEOF”

  6. ADO连接数据库【msado15.dll】

    Microsoft ActiveX Data Objects (ADO) 注册表查看ADO版本:HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess下有Ve ...

  7. ado.net中的几个对象

    Connection:用于连接数据源 Command:对数据源执行命令 DataReader:在只读和只写的连接模式下从数据源读取数据. DataAdpter:从数据源读取数据并使用所读取的数据填充数 ...

  8. .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程

    JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询 ...

  9. 未能添加对***.dll的引用 问题解决方法

    这个不是什么新问题了,这里说一下我遇到的这个操蛋事. 转载请注明出处 http://www.cnblogs.com/zaiyuzhong/p/6236263.html 我做的和往常一样,找到SDK开发 ...

随机推荐

  1. 五分钟上手Git

    团队开发中.遵循一个合理.清晰的Git使用流程.是非常重要的.否则,每一个人都提交一堆杂乱无章的commit,项目非常快就会变得难以协调和维护.以下是ThoughtBot 的Git使用规范流程.我从中 ...

  2. Zxing二维码解析——图文转换

    一:文字转化为二维码图片. package com.xhm.tool; import java.util.Hashtable; import android.graphics.Bitmap; impo ...

  3. 2015年11月26日 Java基础系列(七)正则表达式Regex

    package com.demo.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @autho ...

  4. Jaxb2 实现JavaBean与xml互转

    一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实 ...

  5. [luogu3359]改造异或树

    [luogu3359]改造异或树 luogu 和之前某道题类似只有删边的话考虑倒着加边 但是怎么统计答案呢? 我们考虑以任意点为根dfs一遍求出每个点到根的路径异或和s[i] 这样任意两点x,y的路径 ...

  6. Dajngo admin使用

    Dajngo admin使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INS ...

  7. GTK+重拾--07 GTK+中的事件

    (一):写在前面 在这一个小节中,我们主要是学习GTK+2.0中最重要的部分.就是信号和事件.GTK+函数工具库是基于"事件"系统的.全部的GUI应用都是基于"事件&qu ...

  8. 8.Django模型类例子

    这里定义4个模型 作者:一个作者有姓名 作者详情:包括性别,email,出生日期, 出版商:名称,地址,城市,省,国家,网站 书籍:名称,日期 分析: 作者详情和作者一对一的关系 一本书可以有多个作者 ...

  9. 波浪分析数据转换:大智慧、钱龙、胜龙可用Advanced GET ToGet 数据转换器V3.05特别版

    http://www.55188.com/thread-4185427-1-1.html Advanced GET ToGet 数据转换器V3.05特别版,大智慧可用软件数据类型选“分析家”源软件数据 ...

  10. golang 获取指定目录下的子文件列表

    GO语言按照深度遍历文件 原创 2016年07月20日 09:45:19 标签: go语言 / 遍历 / string 1971 常规方法不使用pathfilepath包 go的filepath包 g ...