您的位置:首页 > 编程语言 > C语言/C++

使用Visual C++ Extensions实现ADO数据绑定

2012-12-11 21:42 405 查看
前言:在使用ADO和Visual C++进行数据库程序开发时,程序员会面临一项复杂的任务,那就是对VARIANT类型字段的处理。Visual C++ Extensions for ADO提供了IADORecordBinding接口,使用该接口程序员可以绕开VARIANT而直接把数据库的数据读取到本地的C/C++类型数据中。

ADO提供了IADORecordBinding接口,使用该接口程序员可以绕开VARIANT,而直接把数据库的数据读取到本地的C/C++类型数据中。同时,ADO还提供了一组宏定义,用来简化该接口的使用。

IADORecordBinding接口简介:IADORecordBinding是一个COM接口,每个COM接口都会提供一些可以调用的方法。IADORecorBinding提供了3个方法:BindToRecordset方法来实现数据库字段到本地C/C++变量之间的绑定;AddNew方法用来新增一条记录;Update方法用来更新数据库中的记录。利用IADORecordsetBinding接口把记录集字段绑定到对应的成员变量中后,一旦该记录集当前记录数据发生改变,数据将被立即复制到绑定的变量中。

Visual C++Extensions来实现ADO操作时需要在应用程序中包含 icrsint.h 头文件。该头文件包含了实现绑定的要素:

1.IADORecordBinding接口的说明

2.数据绑定宏的说明,数据绑定宏是用来声明绑定单元的一系列宏。

3.CADORecordBinding类的声明

接口方法的使用:

1.BindToRecordset(CADORecordBinding *binding),调用该方法绑定变量与字段。

2,AddNew(CADORecordBinding *binding),调用该方法可间接调用ADO的AddNew方法,向数据库的记录集中增加一条新的记录

3.Update(CADORecordBinding *binding),调用该方法可间接调用ADO的Update方法,完成对该记录集的数据更新。

数据绑定宏Binding Entry Macros

数据绑定宏是用来声明绑定单元的一系列宏,使用这些宏就能够定义记录集的字段和程序变量的映射关系。数据绑定宏的语法如下:

开始数据绑定语法如下:

BEGIN_ADO_BINDING(Class)

数值型数据的绑定宏语法如下:

ADO_NUMERIC_ENTRY(Ordinal,DataType,Buffer,Precision,Scal,Status,Modify)

ADO_NUMERIC_ENTRY2(Ordinal,DataType,Buffer,Precision.Scal,Modify);

定长型数据的绑定语法如下:

ADO_NUMERIC_ENTRY(Ordinal,DataType,Buffer,Status,Modif);

ADO_NUMERIC_ENTRY2(Ordinal,DataType,Buffer,Modif)

边长类型数据的绑定宏语法如下:

ADO_VARIABLE_LENGTH_ENTRY(Ordinal,DataType,Buffer,Size,Status,Length,Modify);

ADO_VARIABLE_LENGTH_ENTRY2(Ordinal,DataType,Buffer,Size,Status,Modify)

ADO_VARIABLE_LENGTH_ENTRY3(Ordinal,DataType,Buffer,Size,Length,Modify)

ADO_VARIABLE_LENGTH_ENTRY4(Ordinal,DataType,Buffer,Size,Modify)

使用Visual C++ Extension编程的一般步骤:

1。创建一个继承于CADORecordbinding的子类。并在子类中声明绑定宏语句,用来与数据库的某一个表中的字段值进行绑定。

2。声明智能指针。COM_SMARPTPTR_TYPEDEF (IADORecordBinding,__uuidof(IADORecordBindingPtr)),定义IADORecordBinding接口的智能指针类型:IADORecordBindingPtr。

3。实例化智能指针IADORecordBinding picRs(pRs)其中pRs为_RecordsetPtr对象。

4。绑定到数据库利用接口提供的方法BindToRecordset(CADORecordBinding *binding)实现记录集字段与变量的绑定:picRs->BindToRecordset(&m_baseInfo).其中m_baseInfo为CADORecordbinding派生类的对象。

5。利用接口方法Update来更新数据库。Update(CADORecordBinding *binding);

6。利用接口方法AddNew方法增加记录.AddNew(CADORecordBinding *binding);

其中binding参数都是CADORecordbinding派生类的对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐