access数据库是什么数据库
展开全部
DAO(Database Access Object)使用Microsoft Jet数据库引擎来访问数据库。
Microsoft Jet为象Access和Visual Basic这样的产品提供了数据引擎。
与ODBC一样,DAO提供了一组API供编程使用。MFC也提供了一组DAO类,封装了
底层的API,从而大大简化了程序的开发。利用MFC的DAO类,用户可以编写独立于
DBMS的应用程序。
DAO是从Visual C++4.0版开始引入的。一般地讲,DAO类提供了比ODBC类更广
泛的支持。一方面,只要有ODBC驱动程序,使用Microsoft Jet的DAO就可以访问
ODBC数据源。另一方面,由于DAO是基于Microsoft Jet引擎的,因而在访问
Access数据库(即*.MDB文件)时具有很好的性能。
10.8.2 DAO和ODBC的相似之处
DAO类与ODBC类相比具有很多相似之处,这主要有下面几点:
二者都支持对各种ODBC数据源的访问。虽然二者使用的数据引擎不同,但都可以满
足用户编写独立于DBMS的应用程序的要求。
DAO提供了与ODBC功能相似的MFC类。例如,DAO的CDaoDatabase类对应ODBC的
CDatabase类,CDaoRecordset对应CRecordset,CDaoRecordView对应CRecordView
,CDaoException对应CDBException。这些对应的类功能相似,它们的大部分成员
函数都是相同的。
AppWizard和ClassWizard对使用DAO和ODBC对象的应用程序提供了类似的支持。
由于DAO和ODBC类的许多方面都比较相似,因此只要用户掌握了ODBC,就很容
易学会使用DAO。实际上,用户可以很轻松地把数据库应用程序从ODBC移植到DAO。
Visual C++随盘提供了一个名为DaoEnrol的例子,该例实际上是Enroll的一个
DAO版本。读者可以打开DaoEnrol工程看一看,它的源代码与Enroll的极为相似。
读者可以按照建立Enroll的步骤来建立DaoEnrol,其中只有若干个地方有差别,这
主要有以下几点:
选取的数据源不同。在用AppWizard创建DaoEnrol时,以及在用ClassWizard创建
CDaoRecordset类的派生类时,在Database Options对话框中应该选择DAO而不是
ODBC。而且DAO的数据源是通过选择一个.MDB文件来指定的,即点击“...”按钮后
在文件对话框中选择要访问的.MDB文件。
记录集的缺省类型不同。ODBC记录集的缺省类型是快照(Snapshot),而DAO则是动
态集(Dynaset)。
参数化的方式不同。DAO记录集的m_strFilter和m_strSort中的参数不是“?”号,
而是一个有意义的参数名。例如,在下面的过滤器中有一个名为CourseIDParam的
参数。
m_pSet->m_strFilter ="CourseID = CourseIDParam";
在DoFieldExchange函数中,有下面两行:
pFX->SetFieldType(CDaoFieldExchange::param);
DFX_Text(pFX, _T("CourseIDParam"), m_strCourseIDParam);
DFX函数的第二个参数也是CourseIDParam。
Microsoft Jet为象Access和Visual Basic这样的产品提供了数据引擎。
与ODBC一样,DAO提供了一组API供编程使用。MFC也提供了一组DAO类,封装了
底层的API,从而大大简化了程序的开发。利用MFC的DAO类,用户可以编写独立于
DBMS的应用程序。
DAO是从Visual C++4.0版开始引入的。一般地讲,DAO类提供了比ODBC类更广
泛的支持。一方面,只要有ODBC驱动程序,使用Microsoft Jet的DAO就可以访问
ODBC数据源。另一方面,由于DAO是基于Microsoft Jet引擎的,因而在访问
Access数据库(即*.MDB文件)时具有很好的性能。
10.8.2 DAO和ODBC的相似之处
DAO类与ODBC类相比具有很多相似之处,这主要有下面几点:
二者都支持对各种ODBC数据源的访问。虽然二者使用的数据引擎不同,但都可以满
足用户编写独立于DBMS的应用程序的要求。
DAO提供了与ODBC功能相似的MFC类。例如,DAO的CDaoDatabase类对应ODBC的
CDatabase类,CDaoRecordset对应CRecordset,CDaoRecordView对应CRecordView
,CDaoException对应CDBException。这些对应的类功能相似,它们的大部分成员
函数都是相同的。
AppWizard和ClassWizard对使用DAO和ODBC对象的应用程序提供了类似的支持。
由于DAO和ODBC类的许多方面都比较相似,因此只要用户掌握了ODBC,就很容
易学会使用DAO。实际上,用户可以很轻松地把数据库应用程序从ODBC移植到DAO。
Visual C++随盘提供了一个名为DaoEnrol的例子,该例实际上是Enroll的一个
DAO版本。读者可以打开DaoEnrol工程看一看,它的源代码与Enroll的极为相似。
读者可以按照建立Enroll的步骤来建立DaoEnrol,其中只有若干个地方有差别,这
主要有以下几点:
选取的数据源不同。在用AppWizard创建DaoEnrol时,以及在用ClassWizard创建
CDaoRecordset类的派生类时,在Database Options对话框中应该选择DAO而不是
ODBC。而且DAO的数据源是通过选择一个.MDB文件来指定的,即点击“...”按钮后
在文件对话框中选择要访问的.MDB文件。
记录集的缺省类型不同。ODBC记录集的缺省类型是快照(Snapshot),而DAO则是动
态集(Dynaset)。
参数化的方式不同。DAO记录集的m_strFilter和m_strSort中的参数不是“?”号,
而是一个有意义的参数名。例如,在下面的过滤器中有一个名为CourseIDParam的
参数。
m_pSet->m_strFilter ="CourseID = CourseIDParam";
在DoFieldExchange函数中,有下面两行:
pFX->SetFieldType(CDaoFieldExchange::param);
DFX_Text(pFX, _T("CourseIDParam"), m_strCourseIDParam);
DFX函数的第二个参数也是CourseIDParam。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询