使用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派生类的对象。
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派生类的对象。
相关文章推荐
- RxBinding的使用,实现数据和View的绑定
- ADO.NET的应用(一)---asp.net中DataGrid控件实现数据绑定
- 使用zTree实现导航树、angular实现数据动态绑定功能
- (转贴)使用Repeater实现自定义多列数据绑定
- 使用ADO实现vc中二进制文件数据的存取(以图像在数据库中的存取为例)
- .NET数据库编程求索之路--5.使用ADO.NET实现(三层架构篇-使用List传递数据)(2)
- vue.js使用v-model指令实现的数据双向绑定功能示例
- 使用ADO.NET 实体数据模型实现SQL存储过程调用
- HOW TO:使用 ADO.NET 和 Visual C++ .NET 调用带参数的存储过程
- .NET数据库编程求索之路--4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(1)
- 使用数据绑定控件实现增、删、改
- .NET数据库编程求索之路--5.使用ADO.NET实现(三层架构篇-使用List传递数据)(3)
- 使用Repeater实现自定义多列数据绑定
- MFC使用CEF并实现js与C++交互功能,解决Render进程中OnContextCreated绑定与OnWebKitInitialized的js扩展无法回调问题
- 使用NG实现双边数据绑定
- 走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)
- 使用ADO实现BLOB数据的存取 -- ADO开发实践之二
- 使用ES6的新特性Proxy来实现一个数据绑定实例
- 使用ADO实现BLOB数据的存取 -- ADO开发实践之二
- 使用asp.net递归的方法来实现treeview的数据绑定