《2022年理解 Visual C++ Extensions for ADOC语言教程.docx》由会员分享,可在线阅读,更多相关《2022年理解 Visual C++ Extensions for ADOC语言教程.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022年理解 Visual C+ Extensions for ADOC语言教程当我们运用Visual C+进行ADO编程时,一项颇为头疼的工作就是对VARIANT字段类型的处理。通常做法是,先把VARIANT类型转换为形式上较为类似的C+类型,然后再把转换后的数据存放在一个类(class)或结构(structure)中。即便如此,对VARIANT数据类型的处理在肯定程度上也影响到了程序的性能。ADO为我们供应了一个接口,该接口使我们可以把数据干脆读取到本地,从而绕开对于困难的VARIANT数据类型的处理。同时,ADO还定义了一组预处理宏,用来简化接口的运用。用好这一工具,将会使我们的编程工
2、作将变得轻松和高效。一般状况下,我们从ADO获得Recordset数据集,然后定义一个C/C+结构类型,再把Recordset中的记录绑定到结构成员变量中。当遇到VARIANT类型时,状况变得困难,你必需解决如何把VARIANT数据类型(数据库)转换到C/C+数据类型(本地)的问题。Visual C+ Extensions for ADO(为叙述便利,以下简称ADOExt)的目标就是使这一切变得简洁。ADOExt 把RecordSet记录集中的字段绑定到C/C+变量中。一旦该Recordset当前行的数据发生变更,数据将被马上拷贝到绑定的C/C+变量中。依据须要,数据将被转换到指定的C/C+数
3、据类型。IADORecordBinding 接口的 BindToRecordset 成员方法用来实现数据库字段到本地C/C+变量之间的绑定。假如要为Recordset新增一条记录,可以运用AddNew方法。Update方法则用来把绑定的C/C+变量数据更新和升级到数据库中。IADORecordBinding 接口的实现不用我们操劳,Recordset对象静静的在幕后完成这一切。ADOExt 把Recordset对象的字段类型映射到本地的C/C+变量中,我们把这种从一个数据库字段映射到一个C/C+变量之间的过程定义称为一个绑定单元(Binding Entries)。绑定由宏来完成,可以绑定的类型
4、包括数值型、定长、以及可变长度的数据。绑定的基本流程是:定义派生自CADORecordBinding(CADORecordBinding 类本身其实也是一组宏定义)的类,在类中运用特定的宏来实现数据绑定。然后,在类中声明相应的C/C+变量。ADO 在内部把宏定义中的参数映射到一个OLE DB DBBINDING类型的结构中,并且创建一个OLE DB 存取对象用来管理字段和变量之间的数据移动和格式转换。OLE DB 的数据定义包括三个部分:一个用来储存数据的缓冲区;一个用来标示数据存取状态,以及变量如何提取的状态位;以及数据的长度。要运用 Visual C+ 的ADOExt, 你须要在应用程序中
5、包含下列头文件:#include创建一个派生自CADORecordsetBinding的类。在派生类中设定绑定单元并定义相应的C/C+变量。这些绑定单元被界定在 BEGIN_ADO_BINDING 和 END_ADO_BINDING 之间。不要想当然的在宏定义间放置逗号或者分号,这些工作会由宏在内部自动实现。为每一个要映射为C/C+变量的数据库字段指定一个绑定单元。依据须要从ADO_FIXED_LENGTH_ENTRY, ADO_NUMERIC_ENTRY, 或者 ADO_VARIABLE_LENGTH_ENTRY 这三个宏定义中选择一个,并填写上正确的参数。在你的引用程序中,创建一个该类的实
6、例。从 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)