VC语言6.0程序设计从入门到精通-第74部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
o ODBC 使应用程序避免了与数据源连接的复杂性。
o ODBC 的结构允许多个应用程序访问多个数据源,即应用程序与数据源的关系是多对
多的。
2 .MFC 的 ODBC 类
直接用 ODBC API 进行数据库开发是一件很繁琐的事情,因此在 MFC 1。5 后的版本里引
入了封装 ODBC 功能的类。通过这些类提供的与 ODBC 的接口,程序员可以不必理会 ODBC
API 中的繁杂处理而进行数据库操作。主要的 MFC ODBC 类有如下 5 个。
o CDatabase 类:一个 CDatabase 对象表示到数据源的连接,通过它可以操作数据源。要
用 CDatabase 类,首先要建立一个 CDatabase 对象,然后调用它的 OpenEx()函数建立
和数据源的连接。当结束对数据库的操作时,调用 Close()函数关闭连接。
o CRecordSet 类:一个 CRecordSet 对象就是一个记录集,它表示一个从数据源选择的一
组纪录的集合。
o CrecordView 类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交换
机制(DDX )在记录集与表单视图的控件之间传输数据。
o CFieldExchange 类:支持记录字段数据交换(DDX ),即记录集字段数据成员与相应
数据库的表的字段之间的数据交换。
o CDBException 类:当发生错误时,许多 MFC ODBC 调用并不返回错误码,而是返回
一个 CDBException 对象。
3 .MFC 的 DAO 类
DAO 是 Database Access Object (数据访问对象)的简称。与MFC ODBC 类很类似,DAO
中几个主要的类分别为 CDaoDatabase、CDaoRecordSet、CDaoRecordView、CDaoFieldExchange
·330 ·
…………………………………………………………Page 342……………………………………………………………
第 12 章 数据库开发
和 CDaoException 。除了上面 5 个类以外,DAO 类还包括下面 3 个比较重要的类。
o CDaoWorkSpace :管理一个用户和数据库的会话。
o CDaoQueryDef :代表一个查询定义。
o CDaoTableDef :代表一个基本表或附加表所储存的定义,负责管理数据库中表的结构。
可以看到,DAO 的类名和 ODBC 的很相似,只是多了 D 、a、o 这 3 个字母,并且所有
的 DAO 的类都有前缀 Dao 。
通过 DAO 访问数据库和通过 ODBC 访问数据库是不同的,利用 ODBC 访问数据库是通
过各种 DBMS 相对应的 ODBC 驱动程序来实现的,而利用 DAO 访问数据库是通过微软公司
的 Jet 数据库引擎来实现的。
DAO 支持以下 4 个数据库选项:打开一个 Access 数据库(mdb 文件),直接打开一个
ODBC 数据源,通过 Jet 引擎打开一个 ISAM 类型的数据源,把外部表附属到 Access 数据库。
4 .MFC 的 OLE/DB
OLE/DB 是系统级的编程接口,它定义了一组 接口。这组接口封装了各种数据系
统的访问操作,同时也为数据使用方和数据提供方建立了标准。OLE/DB 还提供了一组标准
的服务组件,用于提供查询、缓存、数据更新、事务处理等操作,因此,数据提供方只需实
现一些简单的数据操作,在使用方就可以获得全部的数据控制能力。
OLE/DB 框架定义了应用的 3 个基本类:
o 数据提供程序 Data Provider :拥有自己的数据并以表格形式显示数据的应用程序。
o 使用者 Consumers :使用 OLE/DB 接口对存储在数据提供程序中的数据进行控制的应
用程序。
o 服务提供程序 Service Provider:数据提供程序和使用者的结合。
OLE/DB 虽然增加了操作的灵活性,但是有的时候这种灵活会使操作变得复杂。并且对
于初学者来说,OLE/DB 里面数十个密密麻麻的接口还是有些恐怖的。
5 .ADO 技术
相比前面 4 种技术,ADO 技术显得方便易学,这也是本章的重点,将在本章 12。4~12。6
节详细介绍。
12。1。3 数据库应用程序的开发步骤
数据库应用程序就是为用户提供一个可以满足其长期需求的软件产品 。成功地开发一个
数据库应用程序的关键之一就是要详细地定义用户的需求,然后再围绕用户的需求进行开发。
数据库应用程序的开发一般分如下 3 个步骤。
1.系统设计
系统设计阶段应当根据用户的需求,明确地描述数据库(数据库服务器端 )和应用界面
(客户机端)实现的功能,即决定哪些功能由服务器端实现,哪些功能由客户端实现。然后选
择合适的开发工具,比如 Visual C++ 、Delphi 、Power Builder 等。
·331 ·
…………………………………………………………Page 343……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
2 .系统实现
系统实现阶段的主要任务是使用某种开发工具(本书用 Visual C++ 6。0 )实现系统设计阶
段的思想,并进行调试。在系统设计阶段,通常要对数据库进行备份,以免破坏原来的数据
库。
3 .系统运行和维护
一个应用系统性能的优劣和效率的高低应当由用户来作出判断。应用程序在运行过程
中,用户会提出一些新的要求和建议,根据用户需求的变化,对原来程序进行一定的修改,
使其进一步得到完善和提高。
12。1。4 选择数据库管理系统的原则
当今数据库管理系统多种多样,可遵循一定的原则进行选择。
1.构造数据库的难易程度
需要分析数据库管理系统有没有范式要求,即是否必须按照系统所规定的数据模型分析
现实世界,建立相应的模型;数据库管理语句是否符合国际标准;有没有面向用户的易用的
开发工具;所支持的数据库容量,数据库的容量特性决定了数据库管理系统的使用范围。
2 .程序开发的难易程度
有无计算机辅助软件工程工具 CASE—计算机辅助软件工程工具可以帮助程序员根据
软件工程的方法提供各开发阶段的维护、编码环境,便于复杂软件的开发、维护。有无第 4
代语言的开发平台—第 4 代语言具有非过程语言的设计方法,不需要编写复杂的过程性代
码,易学、易懂、易维护。有无面向对象的设计平台—面向对象的设计思想与人类的逻辑
思维方式十分接近,便于开发和维护。对多媒体数据类型的支持—多媒体数据需求是今后
发展的趋势,支持多媒体数据类型的数据库管理系统必将减少应用程序的开发和维护工作。
3 .数据库管理系统的性能分析
包括对性能评估(响应时间、数据单位时间吞吐量)、性能监控(内外存使用情况、系
统输入/输出速率、SQL 语句的执行、数据库元组控制 )和性能管理(参数设定与调整)的分
析。
4 .对分布式应用的支持
包括数据透明与网络透明程度 。数据透明是指用户在应用程序中不需要指出数据在网络
中节点上的位置,数据库管理系统可以自动搜索网络,提取所需数据。网络透明是指用户在
应用中无需指出网络所采用的协议,数据库管理系统自动将数据包转换成相应的协议数据。
5 .并行处理能力
支持多 CPU 模式的系统(SMP、CLUSTER、MPP )、负载的分配形式、并行处理的颗粒
·332 ·
…………………………………………………………Page 344……………………………………………………………
第 12 章 数据库开发
度和范围。
6 .可移植性和可扩展性
可移植性指垂直扩展和水平扩展能力 。垂直扩展要求新平台能够支持低版本的平台,数
据库客户机/服务器机制支持集中式管理模式,这样才能保证用户以前的投资和系统。水平扩
展要求满足硬件上的扩展,支持单 CPU 模式转换成多 CPU 并行机模式(SMP、CLUSTER、
MPP )。
7 .数据完整性约束
数据完整性指数据的正确性和一致性保护,包括实体完整性、参照完整性、复杂的事务
规则。
8.并发控制功能
对于分布式数据库管理系统,并发控制功能是必不可少的。因为它面临的是多任务分布
环境,所以可能会有多个用户点在同一时刻对同一数据进行读写操作 。为保证数据的一致性,
要由数据库管理系统的并发控制功能进行控制。评价并发控制的标准应从以下几方面考虑。
o 保证查询结果一致性方法;
o 数据锁的颗粒度(数据锁的控制范围,表、页、元组等 );
o 数据锁的升级管理功能;
o 死锁的检测和解决方法。
9 .容错能力
异常情况下对数据进行的容错处理是以硬件的容错、有无磁盘镜像处理功能软件的容
错、有无软件方法异常情况的容错功能为评价标准的。
10.安全性控制
包括安全保密的程度(账户管理、用户权限、网络安全控制、数据约束)
11.支持汉字处理能力
包括数据库描述语言的汉字处理能力(表名、域名和数据)和数据库开发工具对汉字的
支持能力。
12。2 设计创建和维护 Access 数据库
Access 数据库是目前应用最广泛的小型数据库之一,它简单易学,非常适合初学者。本
节以 Access2002 为例,详细介绍 Access 数据库的设计、创建和维护。
实例 12…1:Access 数据库实例。源代码在光盘中“12实例 12…1”目录下。
·333 ·
…………………………………………………………Page 345……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
12。2。1 创建 Access 数据库
打开 Access 应用程序,依次选择“文件” “新建”,则弹出如图12…1 所示的界面。然
后在“新建”一栏中选择“空数据库 ”,接着弹出一个如图 12…2 所示的对话框,让用户填写
数据库的名称,并选择将要保存的磁盘地址。本例要创建一个存储通讯录的数据库,名称为
“
Info。mdb ”,保存在默认目录下。
图 12…1 新建数据库
图 12…2 为新建数据库命名及选择保存地址
12。2。2 创建数据表
在图 12…2 所示的对话框中单击“创建”按钮,则弹出如图 12…3 所示的界面。
图 12…3 创建数据表
·334 ·
…………………………………………………………Page 346……………………………………………………………
第 12 章 数据库开发
12。2。3 设计和修改数据表的结构
本例要创建的数据库是通讯录数据库,在进行下一步操作之前,应该考虑本数据库包含
哪些表,以及每张表的结构如何。为简单起见,在本小节只考虑一张表,这张表只记录有关
人员的联系方式 。此表应包含每个人的 ID,即表的主键,还应该包括每个人的姓名(Name )、
电话(Telephone )以及住址(Address )。其中 ID 和 Telephone 的数据类型为数字,Name 和
Address 的数据类型为文本。设计好这张表后,下面具体介绍创建表的过程。
在如图 12…3 所示的界面上双击“使用设计器创建表 ”选项,打开如图 12…4 所示的界面。
然后在此界面中的字段名称部分分别填上 ID、Name 、Telephone 和 Address ,相应的数据类
型分别选择数字、文本、数字和文本。然后在“ID ”字段上单击鼠标右键,在弹出的对话框
中选择“主键”,将 ID 定义为此表的主键。创建后的数据表如图 12…5 所示。返回如图 12…3
所示的创建数据表,将该数据表重命名为 Contact,并保存。完成后的界面如图 12…6 所示。
图 12…4 设计数据表
图 12…5 设计后的数据表
·335 ·