分享

在VC++6.0中使用ODBC连接数据库(二)

 行走在理想边缘 2014-05-04

一、VC++6.0操作数据库

VC中操作数据库时常用的一个类叫CRecordset,它的继承关系如图11所示。

在VC++6.0中使用ODBC连接数据库(二)

11 CRecordset的继承关系

它封装了很多属性和操作,用来操作数据库,常用的有数据成员如下:

m_strFilter:它包含的字符串相当于SQL语句中的where子句,可以用它作为一个过滤器只选择那些符合标准的记录

m_strSort:它包含的字符串相当于SQL语句中的order by子句,用来控制记录集的排序方式。

这些数据成员可以在OpenQuery函数之前指定。

常用的函数:

Open:打开数据集;

Close:关闭数据库;

IsOpen:判断数据集是否已经打开,返回非零值如果记录集对象已经调用过OpenQuery函数但是记录集没有被关闭,否则返回0

IsBOF:返回非零值如果记录集已经指向第一个记录集之前;

IsEOF:返回非零值如果记录集已经指向最后一个记录集的后面;

AddNew:准备向记录集中添加一条新纪录。完成以后必须调用Update函数完成添加工作(即添加到数据库中);

Delete:从记录集中删除当前记录;

Edit:准备修改当前记录。完成后必须调用Update函数完成修改;

Update:完成AddNewEdit的操作,他保存添加的新的记录或修改过的记录到数据库中;

Move:移动当前记录到指定的位置;

MoveFirst:移动当前记录到记录集的第一个记录;

MoveLast:移动当前记录到记录集的最后一个记录;

MoveNext:移动当前记录到该记录的下一个记录;

MovePrev:移动当前记录到该记录的上一个记录;

可以查看MSDN获取更多的信息。

需要说明的是,CRecordset的一个对象对应着数据库中的一张表或一个视图,我们在用的时候通常是从该类中继承一个子类出来,用这个子类来操作数据库。

         下面以Northwind数据库中的表“Orders”为例,演示如何用VC++6.0操作数据库。

打开VC,新建一个基于对话框的应用程序,工程名为“ODBCDemo”。打开对话框资源,在对话框上添加所需的控件,如图12.

在VC++6.0中使用ODBC连接数据库(二)

12

         添加继承自CRecordset类的一个子类,对应“Orders”表,添加过程如下:

         打开StdAfx.h文件,向文件中添加包含头文件的语句“#include <afxdb.h>”,该头文件包含了用到的类的定义和实现。按“CTRL+W”进入类向导,点击右上角的在VC++6.0中使用ODBC连接数据库(二)按钮,在弹出的下拉菜单中选择new,弹出添加新类的对话框如图13,在Name:对应的编辑框中输入新类名:COrdersSet,在Base class对应的下拉框中选择基类CRecordset,在选择时有一个快速选择的方法,首先鼠标点到下拉框上,然后快速输入要选择的基类的名称,即可快速选择出需要的基类。

在VC++6.0中使用ODBC连接数据库(二)

13

         点击【OK】弹出选择数据源的窗口。选择ODBC在下拉框中选择数据源NorthwindDSN如图14.

在VC++6.0中使用ODBC连接数据库(二)

14

         点击【OK】进入选择对应表的对话框,选择表dbo.Orders如图15.

在VC++6.0中使用ODBC连接数据库(二)

15 选择数据集对应的表

         点击【OK】完成新类的添加工作,可以在类视图“ClassView”中看到刚添加的类的信息如下图所示。

在VC++6.0中使用ODBC连接数据库(二)

16 刚添加的类的信息

         可以看到,Orders表中的每一列都以成员变量的方式映射到新添加的类中,成员变量的名称为“m_”加上列表的格式,在这里需要注意一下,当用ODBC操作数据库时,我们在设计时最好给用英文字符串命名列明,否则的话当该表映射到数据集类中时,对应的成员变量名自动命名为m_column1m_column2…等名称,不利于操作。下面就可以利用这个类对数据库中对应的表进行操作了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多