资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第16章 用MFC设计数据库应用程序本章主要内容 n数据库应用系统及数据库系统。nODBC的基本概念和结构。n使用ODBC数据库类编写数据库应用程 序。n使用ADO数据库类编写数据库应用程序 介绍。16.1 数据库系统及数据库应用程序n数据库系统u数据库系统组成16.1 数据库系统及数据库应用程序u 标准接口n数据库应用系统的设计 数据库设计 数据库应用程序设计16.1 数据库系统及数据库应用程序VC数据库编程nVisual C+通过若干种接口来支持关系 数据库的访问,这些接口包括ODBC( 开发式数据库连接)、RDO(远程数据 对象)、DAO(数据访问对象)、OLE DB和ADO(ActiveX数据对象)。这些 接口反映了Micorsoft对数据库支持的发 展演化过程。16.2 数据库开发技术简介n本节简要介绍VisualC+中常用的数据 库开发技术,大致分为三类,即ODBC API/MFC ODBC、DAO以及ADO。其中 ,MFC ODBC是MFC对ODBC API的封装 ,ADO是OLE DB的高层接口。16.2.1 ODBC API/MFC ODBC 技术nODBC(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技术nDAO(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技术nADO,即ActiveX Data Objects,是一种 特殊的OLE DB客户程序,它允许访问程 序在Visual C+、Visual Basic、 VBscript、Java等编程语言中访问。 ADO是微软大力推荐使用的编程接口, 在微软已经停止对ODBC和DAO继续发 展的今天,学习使用ADO无疑是正确的 选择。nODBC管理器n配置ODBC数据源的方法和步骤16.3 配置ODBC数据源nMFC的ODBC类有CDatabase(数据库类)、 CRecordset(记录集类)、CRecordView(可视 记录集类)、CfieldExchange(数据交换类) 、CDBException(异常类)。这些类的对象 相互配合完成诸如连接数据源、选择和操纵 记录、在表单中显示操纵数据、直接调用 ODBC API函数和使用SQL语句等工作,也可 以与MFC的文档/视图框架结构协同工作。16.4 MFC的ODBC类nCDatabase类uCDatabase类对象提供了对数据源的连接,通过 它可以对数据源进行操作。u应用程序要访问数据源提供的数据,必须先创建 一个与数据源相关联的CDatabase类对象。u在这个类中封装了一些与数据源进行连接相关的 操作。16.4 MFC的ODBC类u例如下面的代码创建了一个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类nCRecordset类uCRecordset类对象提供从数据源中提取出的 记录集。uCRecordset对象有动态行集(dynaset)和快照 集(snapshot)两种工作方式。 动态行集能与其他用户所做的更改保持同步 。 快照集则是数据的一个静态视图。16.4 MFC的ODBC类u使用CRecordset派生类的对象选择和操纵数 据源数据。例如检查当前记录的数据字段, 过滤、排序记录集,编写默认的SQL SELECT 语句,对选择的记录进行滚动,添加、修改 、删除记录,刷新记录集等等。u例如 CDatabase m_db; m_db.Open(_T(“tmsDSN“),FALSE,FALSE, _T(“ODBC; UID=sa“),FALSE); CRecordset m_set( 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类nCDBException类 例如 / rs为CRecordset派生类的对象 try rs.Delete(); catch(CDBException * e) AfxMessageBox(e-m_strError, MB_ICONEXCLAMATION); e-Delete(); /删除CDBException对象 rs.MoveFirst();/丢失记录位置,移到记录集头 return; rs.MoveNext();小结:用MFC进行ODBC的编程过程 n(1)设计数据库。n(2)定义ODBC数据源。n(3)创建应用程序外壳。n(4)设计主窗体。n(5)将控件与数据库字段相关联。n(6)编写代码实现相关功能:添加新 记录功能、删除记录功能、对记录排序 功能、查找记录功能等。 n显示和处理表中的数据然后把位图装 载到对象中:n连接两个表nC类的使用方法在许多方面非常相似。16.5 ODBC应用程序实例16.6 在Visual C+中使用ADO 开发数据库应用程序n在应用程序中,通过ADO和SQL语句的 配合,可以实现对数据库的一系列操作 ,例如创建数据库、创建表、创建索引 ,实现数据库的多重查询、高级查询和 数据的汇总等技术。在本节,将通过一 个具体的实例详细讲解如何在Visual C+中,使用ADO对象开发数据库应用 程序。16.6.1 Viusal C+对ADO的支持nVisual 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 创建数据库与实例工程n实例数据库采用Access2000数据库。启 动Access,执行“文件”“新建”菜单命 令,创建一个空的数据库Student.mdb 。可以在Access中,添加设计数据库表 ,也可以在VC程序中通过ADO创建,本 例采用后者。16.6.3 引入ADO对象nADO是一组动态链接库,因此在使用之 前还必须导入ADO并且初始化。在MFC 应用里,一般在应用类的InitInstance成 员函数里初始化OLE/COM库环境比较合 适。初始化过程非常简单,只需简单地 调用AfxOleInit函数即可。16.6.4 连接数据源n在工程中引入ADO对象后,就可以通过 Connection对象连接数据源了。16.6.5 开发技术连接对象( Connection)n连接对象表示到数据源的打开的连接, 同时也表示与数据源的唯一会话。通常 在使用ADO操作数据库之前必须首先创 建一个连接对象。连接对象为ADO对数 据源的操作提供了一个操作环境,还可 以用于操作事务处理。16.6.6 创建表并添加数据n在实例中,创建Access数据库时,并没 有创建数据库表。在程序的初始化函数 OnInitDialog中,通过连接对象执行SQL 语句创建一个数据库表studentinfo,该 表包含四个字段,分别为stuNo、 stuname、stuaddress和stuphone,类 型均为TEXT类型。16.6.7 开发技术ADO对象命 令的执行n在ADO对象中,有两种不同的方法可以 执行命令。第一种方法是调用 Connection对象的Execute函数,实例 中使用的也是这种方法。第二种方法是 使用命令对象(Command),它可用 于处理负责的命令和使用参数化命令。 本节将主要讨论第二种方法的使用。16.6.8 开发技术Recordset对 象n要访问和操作数据源的数据就需要创建 记录集对象(Recordset)。本节将介 绍记录集对象的相关操作,在使用 Recordset对象对象前,假定已经成功 建立了数据源的连接,连接对象指针为 m_pConnection。16.6.9 遍历、删除、编辑记录的 实现n介绍了Recordset对象后,下面回到实 例的开发。在前面实现了创建与数据库 的连接、数据库表的创建、和通过 Connect对象执行SQL语句向数据库表中 添加记录。在本节,将实现遍历表中的 记录,并能编辑和删除当前显示的记录 。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号