知识大全 理解 Visual C++ Extensions for ADO

Posted 变量

篇首语:逆水行舟用力撑,一篙松劲退千寻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 理解 Visual C++ Extensions for ADO相关的知识,希望对你有一定的参考价值。

理解 Visual C++ Extensions for ADO  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  当我们使用Visual C++进行ADO编程时 一项颇为头疼的工作就是对VARIANT字段类型的处理 通常做法是 先把VARIANT类型转换为形式上较为类似的C++类型 然后再把转换后的数据存放在一个类(class)或结构(structure)中 即便如此 对VARIANT数据类型的处理在一定程度上也影响到了程序的性能   ADO为我们提供了一个接口 该接口使我们可以把数据直接读取到本地 从而绕开对于复杂的VARIANT数据类型的处理 同时 ADO还定义了一组预处理宏 用来简化接口的使用 用好这一工具 将会使我们的编程工作将变得轻松和高效   一般情况下 我们从ADO获得Recordset数据集 然后定义一个C/C++结构类型 再把Recordset中的记录绑定到结构成员变量中 当遇到VARIANT类型时 情况变得复杂 你必须解决如何把VARIANT数据类型(数据库)转换到C/C++数据类型(本地)的问题 Visual C++ Extensions for ADO(为叙述方便 以下简称ADOExt)的目标就是使这一切变得简单   【 IADORecordBinding 接口简介】  ADOExt 把RecordSet记录集中的字段绑定到C/C++变量中 一旦该Recordset当前行的数据发生改变 数据将被立即拷贝到绑定的C/C++变量中 根据需要 数据将被转换到指定的C/C++数据类型   IADORecordBinding 接口的 BindToRecordset 成员方法用来实现数据库字段到本地C/C++变量之间的绑定 如果要为Recordset新增一条记录 可以使用AddNew方法 Update方法则用来把绑定的C/C++变量数据更新和升级到数据库中   IADORecordBinding 接口的实现不用我们操心 Recordset对象悄悄的在幕后完成这一切   【 绑定单元(Binding Entries)简介】  ADOExt 把Recordset对象的字段类型映射到本地的C/C++变量中 我们把这种从一个数据库字段映射到一个C/C++变量之间的过程定义称为一个绑定单元(Binding Entries) 绑定由宏来完成 可以绑定的类型包括数值型 定长 以及可变长度的数据 绑定的基本流程是 定义派生自CADORecordBinding(CADORecordBinding 类本身其实也是一组宏定义)的类 在类中使用特定的宏来实现数据绑定 然后 在类中声明相应的C/C++变量   ADO 在内部把宏定义中的参数映射到一个OLE DB DBBINDING类型的结构中 并且创建一个OLE DB 存取对象用来管理字段和变量之间的数据移动和格式转换 OLE DB 的数据定义包括三个部分 一个用来储存数据的缓冲区 一个用来标示数据存取状态 以及变量如何提取的状态位 以及数据的长度   【 头文件包含】  要使用 Visual C++ 的ADOExt 你需要在应用程序中包含下列头文件   #include   【 绑定Recordset 字段的过程】  ■创建一个派生自CADORecordsetBinding的类   ■在派生类中设定绑定单元并定义相应的C/C++变量 这些绑定单元被界定在 BEGIN_ADO_BINDING 和 END_ADO_BINDING 之间 不要想当然的在宏定义间放置逗号或者分号 这些工作会由宏在内部自动实现   ■为每一个要映射为C/C++变量的数据库字段指定一个绑定单元 根据需要从ADO_FIXED_LENGTH_ENTRY ADO_NUMERIC_ENTRY 或者 ADO_VARIABLE_LENGTH_ENTRY 这三个宏定义中选择一个 并填写上正确的参数   ■在你的引用程序中 创建一个该类的实例 从 Recordset 中获取 IADORecordBinding 接口 然后调用BindToRecordset方法实现数据绑定   【 接口方法定义】  IADORecordBinding 接口有三个方法 BindToRecordset AddNew 以及 Update 这些方法有且只有一个指针类型的参数 该参数指向一个派生自CADORecordBinding的类实例 事实上 AddNew 和 Updage 方法 将分别调用 ADO 中的同名方法    语法   BindToRecordset 方法实现 Recordset 字段到 C/C++ 变量之间的绑定   BindToRecordset(CADORecordBinding *binding)  AddNew 方法调用它的同名方法 ADO 中的 AddNew 方法 向 Recordset 中增加一条新的记录   AddNew(CADORecordBinding *binding)  Update 方法调用它在ADO中的同名方法 Update 完成对Recordset的数据更新   Update(CADORecordBinding *binding) cha138/Article/program/c/201401/30254

相关参考

知识大全 Visual C++中OpenGL编程入门

VisualC++中OpenGL编程入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Open

知识大全 Visual C++制作一个Sniffer实例

VisualC++制作一个Sniffer实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Snif

知识大全 Visual C++实现各种文字特殊效果

VisualC++实现各种文字特殊效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!.NET编程免

知识大全 Visual C++编译器常用选项设置

VisualC++编译器常用选项设置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Matlab

知识大全 用Visual C++ 2005编写更快的代码

用VisualC++2005编写更快的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于C

知识大全 基于Visual C++的Winsock API研究

基于VisualC++的WinsockAPI研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!为了

知识大全 Visual C++ 2005中的突破性变化

VisualC++2005中的突破性变化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Micr

知识大全 QQ尾巴病毒的Visual C++实现探讨

QQ尾巴病毒的VisualC++实现探讨  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Visual C++开发工具与调试技巧整理[1]

VisualC++开发工具与调试技巧整理[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如

知识大全 Visual C++开发工具与调试技巧整理[2]

VisualC++开发工具与调试技巧整理[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如