资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,版权所有 复制必究,第 19 章,数据库编程,本 章,内 容,课 时 安 排,19.1,数据库的相关概念,19.2 ODBC,数据库程序设计,19.3 DAO,数据库程序设计,19.4,习题,2,课 时,教 学 目 的,1,、了解数据库的相关概念,2,、掌握,ODBC,数据库程序设计方法,3,、掌握,DAO,数据库程序设计方法,教 学 重 难 点,1,、掌握,ODBC,数据库程序设计方法,2,、掌握,DAO,数据库程序设计方法,MFC,提供了对数据库编程的强大支持。对于数据库的访问,,MFC,提供了两组类:,ODBC,(,Open Database Connectivity),和,DAO(Database Access Object).,利用这两个功能强大的类,用户可以方便的开发出基于,ODBC,或,DAO,的数据库应用程序。,教 学 过 程,19.1,数据库的相关概念,数据库是数据的集合,它由一个或多个表及其相互关系组成。每一个表中都存储了对一类对象的数据描述。一般将表中的一行称作记录(,record,)或行(,row,),将表的每一列称作字段(,field,)或列(,column,)。,若一个数据库只有一个表,则称之为简单数据库。若数据库由多个相关的表组成,则称其为关系数据库。关系数据库利用公共关键字段将它的表联系起来,,DBMS,(,Database Management System,,数据库管理系统)用来定义、管理和处理数据库与应用程序之间的联系,例如,FoxPro,、,Access,、,Sybase,等都是,DBMS,。,图,19-1,说明了用户、,DBMS,和数据库三者的关系。,SQL(Structured,Query Language,,结构化查询语言,),最早由,IBM,提出,是专门用来处理关系数据库的基于文本的语言。,SQL,为数据库提供了完善而一致的接口,它不是独立的计算机语言,需要,DBMS,的支持才能执行。,SQL,是一种标准的数据库语言,目前大多数,DBMS,都支持它。,19.2 ODBC,数据库程序设计,ODBC,(,Open Database Connectivity,,开放数据库互连)建立了一组规范,并提供了一组对数据库访问的标准,API,,这些,API,利用,SQL,来完成其大部分任务。,ODBC,本身也提供了对,SQL,语言的支持,用户可以直接将,SQL,语句传送给,ODBC,。,用户,数据库,DBMS,1.ODBC,简介,一个基于,ODBC,的应用程序对数据库的操作不依赖任何,DBMS,,不直接与,DBMS,打交道,所有的数据库操作由对应的,DBMS,的,ODBC,驱动程序完成。,一个完整的,ODBC,由下列几个部件组成:,应用程序(,Application,),ODBC,管理器(,Administrator,),驱动程序管理器(,Driver Manager,),ODBC API,ODBC,驱动程序,数据源,应用程序要访问一个数据库,首先必须用,ODBC,管理器注册一个数据源,建立起,ODBC,与具体数据库的联系。在,ODBC,中,,ODBC API,不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。,2.MFC,的,ODBC,类简介,MFC,的,ODBC,类主要包括:,CDatabase,类:针对某个数据库,它负责连接数据源。,CRecordset,类:针对数据源中的记录集,它负责对记录的操作。,CRecordView,类:负责界面。,CFieldExchange,类:负责,CRecordset,与数据源的数据交换。,CDBException,类:代表,ODBC,类产生的异常。,3.,CDatabase,类,要建立与数据源的连接,首先应构造一个,CDatabase,对象,然后再调用,CDatabase,的,Open,成员函数。,4.,CRecordset,类,用户一般需要用,ClassWizard,创建一个,CRecordset,的派生类,,ClassWizard,可以为派生的记录集类创建一批数据成员,这些数据成员与记录的各字段相对应,被称为字段数据成员或域数据成员。记录集的建立实际上主要是一个查询过程,,SQL,的,SELECT,语句用来查询数据源。,5.,CRecordView,类,CRecordView,提供了一个表单视图来显示当前记录。用户一般需要创建一个,CRecordView,的派生类并在其对应的对话框模板中加入控件。,6,程序举例,【,例,19-1】,在,Access,中创建表,并存入文件,student.mdb,中。编写程序访问数据库,并能完成显示记录、添加记录、删除记录、修改记录和查找记录等操作。,19.3 DAO,数据库程序设计,DAO,和,ODBC,不同,不需要设计数据源即可访问数据库,比,ODBC,更灵活使用更广泛。,1.,什么是,DAO,DAO,(,Database Access Object,)使用,Microsoft Jet,数据库引擎来访问数据库。与,ODBC,一样,,DAO,提供了一组,API,供编程使用。,MFC,也提供了一组,DAO,类,封装了底层的,API,,从而大大简化了程序的开发。利用,MFC,的,DAO,类,用户可以编写独立于,DBMS,的应用程序。,(,1,),DAO,和,ODBC,的相似之处,二者都支持对各种,ODBC,数据源的访问。,DAO,提供了与,ODBC,功能相似的,MFC,类。,AppWizard,和,ClassWizard,对使用,DAO,和,ODBC,对象的应用程序提供了类似的支持。,(,2,),DAO,的优点,DAO,可以通过,ODBC,驱动程序访问,ODBC,数据源。但,DAO,是基于,Microsoft Jet,引擎的,通过该引擎,,DAO,可以直接访问,Access,、,FoxPro,、,dBASE,、,Paradox,、,Excel,等数据库。,CDaoDatabase,类可以直接与这些数据库进行连接,而不必在,ODBC,管理器中注册,DSN,。,由于,DAO,可以访问,ODBC,数据源,下面几条可以作为,DAO,替代,ODBC,的理由:,在某些情况下可以获得更好的性能,特别是在访问,Microsoft Jet,(,.MDB,)数据库时。,与,ODBC,兼容,DAO,允许数据有效检查,DAO,允许用户说明表与表之间的关系,当然,,DAO,的出现并不意味着,ODBC,已经过时了。如果用户的工作必须严格限于,ODBC,数据源,尤其是在开发,Client/Server,结构的应用程序时,用,ODBC,有较好的性能。,2.,程序举例,【,例,19-2】,将邮编和区号数据库内容以表格的形式显示在屏幕上,如图,19-13,所示,数据库名为,ybqh.mdb,。,19.4,习题,作业,:P294,第,1,、,2,、,3,、,6,题,上机实现:,P294,第,5,题,,P295,第,7,题,End,
展开阅读全文