第16章用MFC设计数据库应用程序

上传人:熏** 文档编号:243133317 上传时间:2024-09-16 格式:PPT 页数:31 大小:225KB
返回 下载 相关 举报
第16章用MFC设计数据库应用程序_第1页
第1页 / 共31页
第16章用MFC设计数据库应用程序_第2页
第2页 / 共31页
第16章用MFC设计数据库应用程序_第3页
第3页 / 共31页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,16,章 用,MFC,设计 数据库应用程序,本章主要内容,数据库应用系统及数据库系统。,ODBC,的基本概念和结构。,使用,ODBC,数据库类编写数据库应用程序。,使用,ADO,数据库类编写数据库应用程序介绍。,16.1,数据库系统及数据库应用程序,数据库系统,数据库系统组成,16.1,数据库系统及数据库应用程序,标准接口,数据库应用系统的设计,数据库设计,数据库应用程序设计,16.1,数据库系统及数据库应用程序,VC,数据库编程,Visual C+,通过若干种接口来支持关系数据库的访问,这些接口包括,ODBC,(,开发式数据库连接)、,RDO,(,远程数据对象)、,DAO,(,数据访问对象)、,OLE DB,和,ADO,(,ActiveX,数据对象)。这些接口反映了,Micorsoft,对数据库支持的发展演化过程。,16.2,数据库开发技术简介,本节简要介绍,VisualC,+,中常用的数据库开发技术,大致分为三类,即,ODBC API/MFC ODBC,、,DAO,以及,ADO,。,其中,,MFC ODBC,是,MFC,对,ODBC API,的封装,,ADO,是,OLE DB,的高层接口。,16.2.1 ODBC API/MFC ODBC,技术,ODBC,(,Open Database,Conectivity,,,开放式数据库互联),实际上是一个数据库访问库,它包含访问不同数据库所要求的,ODBC,驱动程序。如要操作,Foxpro,数据库,要用,Foxpro,的,ODBC,驱动程序;要访问,DBASE,,,要用,DBASE,的,ODBC,驱动程序。总之,应用程序要操作不同类型的数据库,只要调用,ODBC,所支持的函数,动态链接到不同的驱动程序上即可。随着,ODBC,技术的推出,许多开发工具软件都把,ODBC,技术集成到自己的软件中,如,,Visual basic,、,Visual C+,、,Power Builder,等等。,16.2,.1,ODBC,的基本构成,16.2.2 DAO,技术,DAO,(,Data Access Object,,,数据访问对象)是第一个面向对象地接口,该技术最初用于像,Access,这样的,MicroSoft,产品中。,DAO,依赖于用,MicroSoft,Access,自动获得的,MicroSoft,Jet,数据库引擎。另外,,DAO,还是较早版本的,Visual Basic,所使用的引擎(最新版的,Visual Basic,和,Visual C+,依赖于相同的,ADO/OLE-DB,组合),所以如果需要支持较早的,Visual Basic,应用程序,那么,DAO,是一个不错的选择。不过,目前此技术有被,OLE DB/ADO,取代地趋势,所以一般也不再使用。,16.2.3 ADO,技术,ADO,,即,ActiveX Data Objects,,,是一种特殊的,OLE DB,客户程序,它允许访问程序在,Visual C+,、,Visual Basic,、,VBscript,、,Java,等编程语言中访问。,ADO,是微软大力推荐使用的编程接口,在微软已经停止对,ODBC,和,DAO,继续发展的今天,学习使用,ADO,无疑是正确的选择。,ODBC,管理器,配置,ODBC,数据源的方法和步骤,16.3,配置,ODBC,数据源,MFC,的,ODBC,类有,CDatabase,(,数据库类,),、,CRecordset,(,记录集类,),、,CRecordView,(,可视记录集类,),、,CfieldExchange,(,数据交换类)、,CDBException,(,异常类)。这些类的对象相互配合完成诸如连接数据源、选择和操纵记录、在表单中显示操纵数据、直接调用,ODBC API,函数和使用,SQL,语句等工作,也可以与,MFC,的文档,/,视图框架结构协同工作。,16.4,MFC,的,ODBC,类,CDatabase,类,CDatabase,类对象提供了对数据源的连接,通过它可以对数据源进行操作。,应用程序要访问数据源提供的数据,必须先创建一个与数据源相关联的,CDatabase,类对象,。,在这个类中封装了一些与数据源进行连接相关的操作。,16.4,MFC,的,ODBC,类,例如下面的代码创建了一个,CDatabase,对象,m_db,并与数据源,tmsDSN,进行了连接:,CDatabase,m_db,; /,创建,CDatabase,对象,/,使用数据源,tmsDSN,或连接字符串,ODBC;UID=,sa,连接,m_db.Open,( _T( ,tmsDSN, ),FALSE, FALSE,_T( ODBC;DSN=,tmsDSN;UID,=,sa, );,16.4,MFC,的,ODBC,类,16.4,MFC,的,ODBC,类,CRecordset,类,CRecordset,类对象提供从数据源中提取出的记录集,。,CRecordset,对象有动态行集,(,dynaset,),和快照集,(snapshot),两种工作方式。,动态行集能与其他用户所做的更改保持同步。,快照集则是数据的一个静态视图。,16.4,MFC,的,ODBC,类,使用,CRecordset,派生类的对象选择和操纵数据源数据,。例如检查当前记录的数据字段,过滤、排序记录集,编写默认的,SQL SELECT,语句,对选择的记录进行滚动,添加、修改、删除记录,刷新记录集等等。,例如,CDatabase,m_db,;,m_db.Open(_T(tmsDSN),FALSE,FALSE,_T(ODBC; UID=,sa),FALSE,);,CRecordset,m_set(&m_db,);,m_set.Open(AFX_DB_USE_DEFAULT_TYPE,select * from student);,./,使用记录集,m_set.Close();,m_db.Close,();,16.4,MFC,的,ODBC,类,16.4,MFC,的,ODBC,类,CDBException,类,例如,/,rs,为,CRecordset,派生类的对象,try ,rs.Delete,(); ,catch(CDBException,* e),AfxMessageBox(e,-,m_strError, MB_ICONEXCLAMATION);,e-Delete(); /,删除,CDBException,对象,rs.MoveFirst,();/,丢失记录位置,移到记录集头,return;,rs.MoveNext,();,小结:用,MFC,进行,ODBC,的编程过程,(,1,)设计数据库。,(,2,)定义,ODBC,数据源。,(,3,)创建应用程序外壳。,(,4,)设计主窗体。,(,5,)将控件与数据库字段相关联。,(,6,)编写代码实现相关功能:添加新记录功能、删除记录功能、对记录排序功能、查找记录功能等。,显示和处理表中的数据,然后把位图装载到对象中:,连接两个表,C,类的使用方法在许多方面非常相似。,16.5,ODBC,应用程序实例,16.6,在,Visual C+,中使用,ADO,开发数据库应用程序,在应用程序中,通过,ADO,和,SQL,语句的配合,可以实现对数据库的一系列操作,例如创建数据库、创建表、创建索引,实现数据库的多重查询、高级查询和数据的汇总等技术。在本节,将通过一个具体的实例详细讲解如何在,Visual C+,中,使用,ADO,对象开发数据库应用程序。,16.6.1,Viusal,C+,对,ADO,的支持,Visual C+6.0,为,ADO,操作提供了库支持,一般情况下,每个,Windows,操作系统的,Program FilesCommon FilesSystemado,目录下都有一个,msado,*.,dll,文件,根据,Windows,版本的不同,该文件可以是,msado1.dll,、,msado15.dll,或,msado2.dll,。,在使用,Visual C+6.0,进行,ADO,编程时,可以借助,Visual C+6.0,的,import,预编译指令,将该库文件引用到工程里,从而使,msado,*.,dll,库里的数据和函数声明被应用的代码所使用。,16.6.2,创建数据库与实例工程,实例数据库采用,Access2000,数据库。启动,Access,,,执行“文件”“新建”菜单命令,创建一个空的数据库,Student.mdb,。,可以在,Access,中,添加设计数据库表,也可以在,VC,程序中通过,ADO,创建,本例采用后者。,16.6.3,引入,ADO,对象,ADO,是一组动态链接库,因此在使用之前还必须导入,ADO,并且初始化。在,MFC,应用里,一般在应用类的,InitInstance,成员函数里初始化,OLE/COM,库环境比较合适。初始化过程非常简单,只需简单地调用,AfxOleInit,函数即可。,16.6.4,连接数据源,在工程中引入,ADO,对象后,就可以通过,Connection,对象连接数据源了。,16.6.5,开发技术,连接对象(,Connection,),连接对象表示到数据源的打开的连接,同时也表示与数据源的唯一会话。通常在使用,ADO,操作数据库之前必须首先创建一个连接对象。连接对象为,ADO,对数据源的操作提供了一个操作环境,还可以用于操作事务处理。,16.6.6,创建表并添加数据,在实例中,创建,Access,数据库时,并没有创建数据库表。在程序的初始化函数,OnInitDialog,中,通过连接对象执行,SQL,语句创建一个数据库表,studentinfo,,,该表包含四个字段,分别为,stuNo,、,stuname,、,stuaddress,和,stuphone,,,类型均为,TEXT,类型。,16.6.7,开发技术,ADO,对象命令的执行,在,ADO,对象中,有两种不同的方法可以执行命令。第一种方法是调用,Connection,对象的,Execute,函数,实例中使用的也是这种方法。第二种方法是使用命令对象(,Command,),,它可用于处理负责的命令和使用参数化命令。本节将主要讨论第二种方法的使用。,16.6.8,开发技术,Recordset,对象,要访问和操作数据源的数据就需要创建记录集对象(,Recordset,)。,本节将介绍记录集对象的相关操作,在使用,Recordset,对象对象前,假定已经成功建立了数据源的连接,连接对象指针为,m_pConnection,。,16.6.9,遍历、删除、编辑记录的实现,介绍了,Recordset,对象后,下面回到实例的开发。在前面实现了创建与数据库的连接、数据库表的创建、和通过,Connect,对象执行,SQL,语句向数据库表中添加记录。在本节,将实现遍历表中的记录,并能编辑和删除当前显示的记录。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!