第 6 章 MFC ODBC 编程
为了简化开发人员编写数据库应用程序,VC++的在其基础类库(MFC)里对 ODBC
API 进行了封装,实现了一个面向对象的数据库编程接口,使 VC++的数据库变得更加容易。
本章首先对 MFC ODBC 的概貌进行简要介绍,然后讲述利用 MFC ODBC 进行数据库
开发的技巧,最后将通过具体数据库开发实例,详细讲述通过 MFC ODBC 开发数据库应用
程序的方法和过程。
6.1 了解 MFC ODBC
MFC 是 Microsoft Foundation Class(微软基础类库)的缩写,它的设计目标是简化开
发人员的工作。MFC 使开发人员创建基于 Windows 的应用程序,而不必掌握下层的
Windows 体系结构。由于数据库应用程序是管理数据的重要方面,Microsoft 开发了 ODBC
API 的封装程序,为 ODBC 编程提供了一个面向对象的方法。
MFC 对 ODBC 的封装主要是开发了 CDatabase 类和 CRecordSet 类。
6.1.1 CDatabase 类
CDatabase 类用于应用程序建立同数据源的连接。CDatabase 类包含一个 m_hdbc 变量,
它代表了数据源的连接句柄。如果要建立 CDatabase 类的实例,应先调用该类的构造函数,
再调用 Open 函数,通过调用,初始化环境变量,并执行与数据源的连接。关闭数据源连
接的函数是 Close。
CDatabase 类提供了对数据库进行操作的函数,为了执行事务操作,CDatabase 类提供
了 BeginTrans 函数,当全部数据都处理完成后,可以通过调用 CommitTrans 函数提交事务,
或者在特殊情况下通过调用 Rollback 函数将处理回退。
CDatabase 类提供的函数可以用于返回数据源的特定信息,例如通过 GetConnect 函数
返回在使用函数 Open 连接数据源时的连接字符串,通过调用 IsOpen 函数返回当前的
CDatabase 实例是否已经连接到数据源上,通过调用 CanUpdate 函数返回当前的 CDatabase
实例是否是可更新的,通过调用 CanTransact 函数返回当前的 CDatabase 实例是否支持事务
操作,等等。
总之,CDatabase 类为 C++数据库开发人员提供了 ODBC 的面向对象的编程接口。
6.1.2 CRecordSet 类
要实现对结果集的数据操作,就要用到 CRecordSet 类。CRecordSet 类定义了从数据库
接收或者发送数据到数据库的成员变量,CRecordSet 类定义的记录集可以是表的所有列,
也可以是其中的一列,这是由 SQL 语句决定的。
CRecordSet 类的成员变量 m_hstmt 代表了定义该记录集的 SQL 语句句柄,m_nFields