更新时间:2022-03-14 19:46
类CDaoDatabase代表了一个数据库连接。使用它可以操纵数据库中的数据。有关支持的数据库格式,请参阅成员函数GetName。在一个给定工作区(由CDaoWorspace对象代表)中,同时可以有多个活动的CDaoDatabase对象。工作区维护了一组开放数据库对象——数据库连接。
注意:
MFC DAO数据库类与那些基于ODBC的MFC数据库类是不同的。所有的DAO数据库类的名字都有CDao前缀。类CDaoDatabase提供了一个类似于ODBC类CDabase的接口。二者主要的不同在于:CDatabse是通过ODBC和ODBC驱动程序存取数据库的,而CDaoDatabase则是通过数据存取对象(Data Access Object,DAO)存取数据库的。DAO基于Microsoft Jet数据库引擎。一般说来,基于DAO的MFC类比基于ODBC的类处理能力更强。基于DAO的类可以通过ODBC驱动也可以经由自己的数据库引擎存取数据。基于DAO的类也支持数据定义操作(DDL),比如不用直接调用DAO而通过类建立表。
用法
在创建记录集时,可以隐式地建立数据库对象,也可以显式地创建数据库对象。要显式地通过CDaoDatabase利用现有的数据库,只需:
建立一个新的Microft Jet数据库(.MDB),要构造一个CDaoDatabase对象并且调用它的成员函数Create。 在调用Create之后不要再调用Open。
打开一个现有的数据库,要构造一个CDaoDatabase对象并且调用它的成员函数Open。
上面的这些方法都把DAO数据库对象添加到工作区的Databases集合中,并在数据上建立一个连接。以后需要构造CDaoRecordset,CDaoTableDef或CDaoQueryDef来操纵连接上的数据库,要向它们的构造函数传送CDaoDatabase对象的指针。使用完连接之后,要调用成员函数Close并撤消CDaoDatabase对象。Close会关闭所有没有关闭的记录集。
在工作区级支持数据库的事务处理。参阅类CDaoWorkspace的成员函数BeginTrans,CommuitTrans和Rollback。有关更详细的信息,请参阅联机文档“Visual C++程序员指南”中的“DaoWorkspace:管理事务”。
ODBC连接
建议在使用ODBC数据源时把外部表连到一个Microsoft Jet数据库(.MDDB)。有关更详细的信息,请参阅联机文档“Visual C++程序员指南”中的“DAO扩展:处理外部数据源”。
收集
每个数据库都拥有自己的表定义、查询定义、记录集和关系对象的收集。类CDaoDatabase提供了操纵这些对象的成员函数。
注意:
上述对象存储在DAO中,而不是存储在ODBC对象中。MFC提供了支持表定义、查询定义和记录集对象的类,但没有支持关系对象的类。
#include