catch (CDBException *e)
{
TRACE(e->m_strError);
if(pDB->RollBack())
TRACE (“Transaction rolled back\n”);
else
TRACE(“Error in rolling back transaction.\n”);
}
pDB->Close();
delete pDB
本节我们讲述讲述了DAO是什么,如何使用VC++和MFC建立工作在DAO 数据库上的应用程序。
DAO给出了一个通过编程创建和操作数据库的框架,是使用Microsoft Jet数据库引擎访问数据和数据结构的对象的有层次的集合,可以访问的数据源包括:
n Microsoft Jet (.MDB) 数据库。
n ODBC 数据源, 使用ODBC 驱动程序。
n 可安装的ISAM 数据库,如数据库引擎可直接读取的dBASE?, Paradox? 和 Microsoft FoxPro 。
DAO数据库使用的数据库引擎与Microsoft Visual Basic? and Microsoft Access相同,MFC DAO类和其它应用程序框架类一起提供了访问DAO数据库的方便的方法。同时,MFC DAO类也能访问具有ODBC驱动程序的ODBC数据库。
DAO很大程度上是ODBC的超集,它包含ODBC类的大部分功能,并且又增加了很多新功能。ODBC和DAO实现函数库的方式有所不同,ODBC用一组DLL来实现,而DAO用OLE对象来实现。尽管DAO用OLE对象来实现,但MFC DAO类封装了所有细节,给用户提供了与OLE对象交互作用的数据和函数成员。
DAO和ODBC都使用数据库类对象提供与数据库的连接,使用记录集对象保存结果集。DAO中的数据库类为CDaoDatabase,记录集类为CDaoRecordset,它们包含了与ODBC类相似的成员变量和成员函数,同时还增加了很多新的成员变量和成员函数。使用DAO数据库的应用程序至少要用到CDaoDatabase 对象和CDaoRecordset对象。
MFC DAO类的层次结构如图9-25所示: