数据库应用软件开发 ——delphi
DESCRIPTION
数据库应用软件开发 ——delphi. 软件蓝领班毕业设计. 目录. 第 1 章 概述 第 2 章 系统分析和设计 第 3 章 Delphi 与数据库设计 第 4 章 Delphi 连接数据库的不同方式比较 第 5 章 Delphi 界 面 设 计 第 6 章 Delphi 查 询 设 计 第 7 章 Delphi 报表设计 第 8 章 Delphi 实现数据库的备份与恢复 第 9 章 Delphi 应用程序的封装与发布. 第 1 章 概述. 1. 什么是软件 ? 软件是指计算机程序及其有关的数据和文档。 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/1.jpg)
数据库应用软件开发——数据库应用软件开发—— delphidelphi
软件蓝领班毕业设计软件蓝领班毕业设计
![Page 2: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/2.jpg)
目录目录第1章 概述第1章 概述第2章 系统分析和设计第2章 系统分析和设计第3章第3章 DelphiDelphi与数据库设计与数据库设计第4章 第4章 DelphiDelphi连接数据库的不同方式比较连接数据库的不同方式比较第5章 第5章 Delphi Delphi 界 面 设 计界 面 设 计第6章 第6章 Delphi Delphi 查 询 设 计查 询 设 计第7章 第7章 DelphiDelphi报表设计报表设计第8章 第8章 DelphiDelphi实现数据库的备份与恢复实现数据库的备份与恢复第9章 第9章 DelphiDelphi应用程序的封装与发布应用程序的封装与发布
![Page 3: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/3.jpg)
第第 11 章 概述章 概述1. 1. 什么是软件 什么是软件 ? ? 软件是指计算机程序及其有关的数据和文档。软件是指计算机程序及其有关的数据和文档。软件文档(软件文档( software documentationsoftware documentation )是以人们)是以人们可读的形式出现的技术数据和信息。可读的形式出现的技术数据和信息。““ 软件是程序以及开发、使用和维护所需要的所软件是程序以及开发、使用和维护所需要的所有文档有文档 (document)(document) 。”。”
![Page 4: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/4.jpg)
2. 2. 软件生存周期定义软件生存周期定义从设计软件产品开始到产品不能使用为止的时间周期。从设计软件产品开始到产品不能使用为止的时间周期。软件生存周期中,软件开发与维护时的费用越低,软件的使用软件生存周期中,软件开发与维护时的费用越低,软件的使用
寿命越长,产生的价值就越大,这就是掌握软件工程学的目寿命越长,产生的价值就越大,这就是掌握软件工程学的目的。的。
3. 3. 软件生存周期的阶段划分软件生存周期的阶段划分由软件计划、软件开发和软件运行维护三个时期组成。由软件计划、软件开发和软件运行维护三个时期组成。软件计划时期分为问题定义、可行性研究、需求分析三阶段。软件计划时期分为问题定义、可行性研究、需求分析三阶段。软件开发时期分为软件概要设计、软件详细设计、软件实现、软件开发时期分为软件概要设计、软件详细设计、软件实现、
综合测试等阶段。综合测试等阶段。软件运行过程中需要不断地进行维护,使软件持久满足用户需软件运行过程中需要不断地进行维护,使软件持久满足用户需
要。要。
![Page 5: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/5.jpg)
第 第 2 2 章 学生成绩管理章 学生成绩管理系统分析与设计 系统分析与设计
2.1 2.1 系 统 分 析系 统 分 析
2.2 系 统 设 计2.2 系 统 设 计
![Page 6: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/6.jpg)
2.1 2.1 系 统 分 析系 统 分 析2.1.1 2.1.1 可行性分析可行性分析
要开发的是小型数据库应用软件,利用开发者学过的 delphi 语言和 access 数据库可以实现,机房配备相关软件和硬件,有 4 个月的开发时间已经足够。
![Page 7: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/7.jpg)
2.1.2 2.1.2 需求分析需求分析需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求,即明确系统究竟要“做什么”。 。需求分析是发现、逐步求精、建模、规格说明和复审的过程。为了全面反映出系统各方面的需求,在需求分析阶段应在与用户充分沟通和调查研究的基础上,运用各种需求分析的工具和技术,为系统建立准确的数据模型、功能模型、行为模型以及数据字典。
2.1.1 确定目标系统的具体要求 (1) 确定系统的运行环境要求 (2) 系统的性能要求 (3) 确定系统功能
![Page 8: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/8.jpg)
2 .1.2 建立目标系统的逻辑模型模型是为了理解事物而对事物做出一种抽象,对事物的无歧义的书面描述。模型由一组图形符号和组成图形的规则组成。建模的基本目标是:描述用户需求 为软件的设计奠定基础 定义一组需求,用以验收产品。模型分为: 数据模型 : 来描述数据对象及相互关系。用实体—关系图( E—R ) 功能模型 : 用数据流图 行为模型 : 用状态转换图数据字典用来描述软件使用或产生的所有数据对象, 并对各种图形工具所不能表达的内容加以补充。
![Page 9: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/9.jpg)
学生成绩管理系统实体 - 关系图
数据模型
![Page 10: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/10.jpg)
画学生成绩管理系统的数据流图。
功能模型
![Page 11: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/11.jpg)
输入/处理/输出( Input Process Output )图的简称。
画出学生成绩管理系统的 IPO 图。
![Page 12: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/12.jpg)
数据字典使用的符号
= 表示“等价于”或“定义为”= 表示“等价于”或“定义为”+ 连接+ 连接[ ][ ] ,, | | 表示“或”,用“表示“或”,用“ |”|” 分隔,表示可任选其中某一项分隔,表示可任选其中某一项{ } { } 表示“重复” 表示“重复” ( ) ( ) 表示“可选”,用“,”号隔开表示“可选”,用“,”号隔开
1{A} 1{A} 表示 表示 A A 的内容至少要出现 的内容至少要出现 1 1 次。次。{B} {B} 表示 表示 B B 的内容允许重复 的内容允许重复 0 0 至任意次。至任意次。 如: 成绩单=学号+姓名+如: 成绩单=学号+姓名+ 1{1{ 课程名+成绩课程名+成绩 }3 }3
也可写为 成绩单=学号+姓名+ 也可写为 成绩单=学号+姓名+ {{ 课程名+成绩课程名+成绩 }}
![Page 13: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/13.jpg)
2.2 2.2 系 统 设 计系 统 设 计2.2.1 2.2.1 功能设计功能设计
作为学生成绩管理系统,从功能上主要作为学生成绩管理系统,从功能上主要分为登录模块、主程序模块和退出模块分为登录模块、主程序模块和退出模块 33
大部分。大部分。
![Page 14: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/14.jpg)
登录模块主要用于登录学生成绩管理系统,是进入系统的第登录模块主要用于登录学生成绩管理系统,是进入系统的第一步,主要涉及数据库的连接,用户名、密码的检测判断和软一步,主要涉及数据库的连接,用户名、密码的检测判断和软件验证。件验证。 主程序模块是整个系统的操作界面,包括班级管理、档案管主程序模块是整个系统的操作界面,包括班级管理、档案管理、交费管理、课程管理、成绩管理、奖惩管理、奖学金管理、理、交费管理、课程管理、成绩管理、奖惩管理、奖学金管理、学生补助管理、勤工助学管理、统计分析以及系统帮助等模块。学生补助管理、勤工助学管理、统计分析以及系统帮助等模块。
![Page 15: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/15.jpg)
退出模块包括数据备份数,即退出系统的同时退出模块包括数据备份数,即退出系统的同时
对整个操作过程中的数据库数据进行备份。对整个操作过程中的数据库数据进行备份。
图图 2-12-1 所示为学生成绩管理系统的功能模块图。所示为学生成绩管理系统的功能模块图。
![Page 16: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/16.jpg)
班
级管
理
学
生信
息管
理
课
程管
理
成
绩管
理
奖
惩管
理
教
师信
息管
理
统
计分
析
系
统帮
助
系统登录
退出
图 2-1 学生成绩管理系统功能模块图
![Page 17: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/17.jpg)
2.2.2 2.2.2 系统结构框图系统结构框图 系统结构框图可以反映系统主要功能之间的关系,对学生系统结构框图可以反映系统主要功能之间的关系,对学生成绩管理系统进行总体设计,需要对整个系统的结构有一个成绩管理系统进行总体设计,需要对整个系统的结构有一个清楚的认识和设计。清楚的认识和设计。 图图 2-22-2 所示为学生成绩管理系统的结构框图。所示为学生成绩管理系统的结构框图。
![Page 18: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/18.jpg)
学生成绩管理系统的结构图
![Page 19: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/19.jpg)
学生成绩管理系统在学生入学时输入学生基本信息。每次单科成绩是按班级内学生学号的顺序依次输入每位学生的平时成绩和考试成绩。然后由计算机计算每位学生的单科成绩总评分。输出的学生个人成绩单格式。班级各科成绩汇总表。
![Page 20: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/20.jpg)
2.2.3 2.2.3 系统实现系统实现 学生成绩管理系统是一个数据库应用系统,实学生成绩管理系统是一个数据库应用系统,实现该系统所采用的框架是单机结构。 现该系统所采用的框架是单机结构。
![Page 21: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/21.jpg)
第 第 3 3 章 章 DelphiDelphi 与数据库设与数据库设计计
3.1 3.1 常用桌面型数据库常用桌面型数据库
3.2 常 用 大 型 数 据 库3.2 常 用 大 型 数 据 库
3.3 3.3 学生成绩管理系统数据库设计学生成绩管理系统数据库设计
![Page 22: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/22.jpg)
3.1 3.1 常用桌面型数据库常用桌面型数据库DBFDBF 格式的数据库文件是最常用的数据库格式的数据库文件是最常用的数据库格式文件之一,它可由多种数据库软件创格式文件之一,它可由多种数据库软件创建,包括建,包括 dBASEdBASE 、、 FoxproFoxpro 、、 Visual FoxpVisual Foxproro 、、 ClipperClipper 等,通过使用这些数据库工等,通过使用这些数据库工具,可以直接编辑、修改、查询存储在以具,可以直接编辑、修改、查询存储在以DBFDBF 为后缀文件中的数据,采用为后缀文件中的数据,采用 MicrosofMicrosoft Excelt Excel 也可以打开并修改也可以打开并修改 DBFDBF 数据数据
![Page 23: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/23.jpg)
ParadoxParadox 数据库是数据库是 BorlandBorland 公司的第一个公司的第一个数据库开发工具。数据库开发工具。
创建创建 ParadoxParadox 数据库可以采用随数据库可以采用随 DelDelphiphi 一起分发的一起分发的 Database DesktopDatabase Desktop 工具,工具,它可以创建和修改表结构、索引,可以输它可以创建和修改表结构、索引,可以输入、修改表中的记录数据。入、修改表中的记录数据。
AccessAccess 数据库数据库Microsoft AccessMicrosoft Access 是微软公司推出的是微软公司推出的 OfficOffice e 组件中的一个重要组成部分,是目前应组件中的一个重要组成部分,是目前应用最广泛的主流桌面数据库管理系统之一。用最广泛的主流桌面数据库管理系统之一。
![Page 24: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/24.jpg)
3.2 3.2 常 用 大 型 数 据 常 用 大 型 数 据 库库简 介简 介
大型数据库泛指那些容量大、功能完善、大型数据库泛指那些容量大、功能完善、速度快的速度快的 DBMSDBMS (( Database Manager SysDatabase Manager Systemtem ),例如),例如 MS SQL ServerMS SQL Server 、、 OracleOracle 、、DB/2DB/2 、、 InformixInformix 、、 SybaseSybase 等,大型数据等,大型数据库与普通数据库是从安全性、严谨性、共库与普通数据库是从安全性、严谨性、共享性等原则上进行区分的。大型数据库向享性等原则上进行区分的。大型数据库向分布式数据库和对象数据库技术方向发展。分布式数据库和对象数据库技术方向发展。
![Page 25: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/25.jpg)
从功能角度来看,大型数据库对因特网的支从功能角度来看,大型数据库对因特网的支
持、对数据库仓库持、对数据库仓库 OLAPOLAP (( OnLine AnalytiOnLine Analyti
cal Processingcal Processing ,联机分析处理)应用的支持,联机分析处理)应用的支持
越来越强,其管理平台正在向集成化、智能越来越强,其管理平台正在向集成化、智能
化、平台化发展。化、平台化发展。
![Page 26: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/26.jpg)
大型数据库可以进行巨量数据的处理,大型数据库可以进行巨量数据的处理,例如,例如, OracleOracle 能够处理数百万能够处理数百万 TBTB 容量的容量的数据。同时,大型数据库与桌面型数据库数据。同时,大型数据库与桌面型数据库相比较,最显要的特点就是内含存储过程、相比较,最显要的特点就是内含存储过程、触发器、视图和自定义数据类型等数据库触发器、视图和自定义数据类型等数据库元素,同时有的大型数据库还可以建立用元素,同时有的大型数据库还可以建立用户自己的函数、规则等,以扩充数据库的户自己的函数、规则等,以扩充数据库的功能。大型数据库支持功能。大型数据库支持 SQLSQL 语句,可通语句,可通过约束、规则、触发器等数据库对象来保过约束、规则、触发器等数据库对象来保证数据的完整性,包括实体完整性、参照证数据的完整性,包括实体完整性、参照完整性和数据域的完整性。完整性和数据域的完整性。
![Page 27: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/27.jpg)
需要注意的是,各大型数据库的需要注意的是,各大型数据库的 SQLSQL
语法规范在符合语法规范在符合 SQL92SQL92 标准的基础上,都标准的基础上,都对对 SQLSQL 语法进行了相应的扩充,这些扩充语法进行了相应的扩充,这些扩充并不能保证不同类型的数据库之间相互兼并不能保证不同类型的数据库之间相互兼容,这点在数据库平台发生变更的时候要容,这点在数据库平台发生变更的时候要充分考虑。充分考虑。
![Page 28: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/28.jpg)
大型数据库均可为用户提供多层的客户大型数据库均可为用户提供多层的客户机机 // 服务器数据库应用平台。数据库驻留服务器数据库应用平台。数据库驻留在一个中央计算机上,作为数据服务器,在一个中央计算机上,作为数据服务器,用户端通过应用程序访问该数据服务器上用户端通过应用程序访问该数据服务器上的数据库。访问的时候,服务器首先对客的数据库。访问的时候,服务器首先对客户端进行安全认证,在获得许可后,数据户端进行安全认证,在获得许可后,数据服务器对客户端提出的数据访问请求进行服务器对客户端提出的数据访问请求进行处理,然后将执行结果返回给客户端。处理,然后将执行结果返回给客户端。
![Page 29: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/29.jpg)
这种客户机向服务器提出服务请求,服这种客户机向服务器提出服务请求,服
务器进行处理服务请求,然后,将结果返务器进行处理服务请求,然后,将结果返
回到客户端的数据处理模式就是客户机回到客户端的数据处理模式就是客户机 //
服务器工作模式。服务器工作模式。
![Page 30: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/30.jpg)
考虑到本系统的通用性与开发的可易性,考虑到本系统的通用性与开发的可易性,我们采用我们采用 MS Access 2000MS Access 2000 数据库进行开发,数据库进行开发,数据连接方式采用数据连接方式采用 ADOADO ,开发完成后可,开发完成后可以非常容易地升级到网络级的应用,网络以非常容易地升级到网络级的应用,网络数据库可以采用数据库可以采用 MS SQL Server 7.0MS SQL Server 7.0 或或 MS MS SQL Server 2000SQL Server 2000 。。
3.3 3.3 学生成绩管理系统数据库设计学生成绩管理系统数据库设计
![Page 31: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/31.jpg)
第 第 4 4 章 章 DelphiDelphi 连接数据库的不同方式比较连接数据库的不同方式比较
4.1 4.1 BDEBDE
4.2 ADO4.2 ADO
4.34.3 dbExpress dbExpress
4.4 ODBC 4.4 ODBC
4.5 4.5 学生成绩管理系统连接数据库学生成绩管理系统连接数据库
![Page 32: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/32.jpg)
4.1 BDE4.1 BDE BDEBDE (( Borland Database EngineBorland Database Engine )是)是BorlandBorland 公司推出的一套数据引擎,用来实公司推出的一套数据引擎,用来实现应用程序与数据库之间的连接。使用现应用程序与数据库之间的连接。使用 BDEBDE的时候,需要使用的时候,需要使用 BDE AdministratorBDE Administrator 来配来配置一个别名,这个别名实质上是访问数据库置一个别名,这个别名实质上是访问数据库的一个标识符,内部封装了访问数据库所需的一个标识符,内部封装了访问数据库所需要的多个参数,如图要的多个参数,如图 4-14-1 所示,不同的数据所示,不同的数据库所封装的参数是不一样的。 库所封装的参数是不一样的。
![Page 33: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/33.jpg)
图 4-1
![Page 34: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/34.jpg)
4.1.1 BDE4.1.1 BDE 文件组成文件组成 BDEBDE 所需要的一系列文件在默认情况下位于所需要的一系列文件在默认情况下位于 \\Program Files\Common files\Borland Shared\BDProgram Files\Common files\Borland Shared\BDEE 目录下,包括不同类型数据的支持库、目录下,包括不同类型数据的支持库、 BDE ABDE Administratordministrator (( bdeadmin.exebdeadmin.exe )、数据迁移工具)、数据迁移工具(( datapump.exedatapump.exe )、帮助文件等。)、帮助文件等。 BDEBDE通常采通常采用以下用以下 33种方式实现应用程序与数据库的连接。种方式实现应用程序与数据库的连接。
![Page 35: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/35.jpg)
(( 11 )采用)采用 BorlandBorland公司自己内置的驱动程序来连接数据公司自己内置的驱动程序来连接数据库。一般应用在连接库。一般应用在连接 ParadoxParadox 、、 dBasedBase 等数据库。等数据库。 (( 22 )采用)采用 SQL LinksSQL Links 连接数据库。一般应用在客户机连接数据库。一般应用在客户机 //服务器模式下的数据库应用程序开发。服务器模式下的数据库应用程序开发。 (( 33 )采用)采用 ODBCODBC 方式连接数据库。一般应用在不具备方式连接数据库。一般应用在不具备内置驱动,又不具备内置驱动,又不具备 SQL LinksSQL Links驱动程序的数据库。驱动程序的数据库。
![Page 36: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/36.jpg)
如果数据库是如果数据库是 Microsoft AccessMicrosoft Access ,则分发,则分发 BDEBDE相关文件相关文件
的同时还要分发的同时还要分发 DAODAO (( Data Access ObjectsData Access Objects ),它是基于),它是基于
COMCOM 技术的数据访问 技术的数据访问 APIAPI ,提供了对,提供了对 JetJet 和和 ODBCODBC 的封装。的封装。
![Page 37: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/37.jpg)
4.1.2 BDE4.1.2 BDE 组件组件 在组件面板在组件面板 BDEBDE页上集成了访问和管理页上集成了访问和管理BDEBDE 数据集的数据集的 VCLVCL 组件,如图组件,如图 4-24-2 所示。所示。
图 4-2
![Page 38: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/38.jpg)
其中包括其中包括 TTableTTable 、、 TQueryTQuery 、、 TdatabaseTdatabase 等组件,这些等组件,这些都是不可见组件。都是不可见组件。 TtableTtable代表任何数据库中的物理表或数据代表任何数据库中的物理表或数据集,集, TQueryTQuery 可实现单表或多表的查询,实现连接或嵌套的可实现单表或多表的查询,实现连接或嵌套的各种复杂查询,实现按照各种复杂查询,实现按照 SQLSQL 合法语句完成的功能,例如合法语句完成的功能,例如 II
nsertnsert 、、 UpdateUpdate 、、 DropDrop 等操作。等操作。
![Page 39: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/39.jpg)
4.1.3 BDE4.1.3 BDE手工配置手工配置 在开发应用程序时,使用的数据库可以通过在开发应用程序时,使用的数据库可以通过 BDE AdminiBDE Administratorstrator来进行配置。来进行配置。 BDE AdministratorBDE Administrator 可在可在 DelphiDelphi安装程安装程序组或者控制面版中打开。序组或者控制面版中打开。 配置完成后,通过“配置完成后,通过“ Open”Open” 操作可以进行测试是否成功,操作可以进行测试是否成功,如图如图 4-34-3 所示。所示。
![Page 40: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/40.jpg)
图 4-3
![Page 41: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/41.jpg)
如果配置如果配置 BDEBDE 别名成功,可以使用别名成功,可以使用 DelphiDelphi 自自
带的带的 SQL ExploreSQL Explore 来打开其中的表、视图、存储来打开其中的表、视图、存储
过程等数据库对象。过程等数据库对象。
![Page 42: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/42.jpg)
4.1.4 4.1.4 程序设计中建立程序设计中建立 BDEBDE别名别名 在程序中建立在程序中建立 BDEBDE别名,需要使用别名,需要使用 BDEBDE 组件面板上的组件面板上的 DDatabaseatabase控件。操作步骤如下。控件。操作步骤如下。 (( 11 )启动)启动 DelphiDelphi后,新建或选择已存在的后,新建或选择已存在的 DataModuleDataModule ,,然后选择然后选择 BDEBDE 组件面板,将组件面板,将 DatabaseDatabase控件添加到控件添加到 DataMouDataMoudledle 上,并取名为上,并取名为 Database1Database1 。如图。如图 4-44-4 所示。所示。
![Page 43: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/43.jpg)
图 4-4
![Page 44: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/44.jpg)
(( 22 )鼠标双击控件)鼠标双击控件 Database1Database1 ,弹出如图,弹出如图 4-54-5 所示界面,进行所示界面,进行
别名参数设置。别名参数设置。
(( 33 )单击“)单击“ OK”OK” 完成完成 BDEBDE 的设置。的设置。
![Page 45: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/45.jpg)
图 4-5
![Page 46: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/46.jpg)
有以下两点需要注意。有以下两点需要注意。 (( 11 )在其他单元中,如果要使用所定义的)在其他单元中,如果要使用所定义的 DatabaseDatabase ,必须使,必须使用用 USEUSE语句引入语句引入 DataMoudleDataMoudle 单元,否则无法实现关联引用。 单元,否则无法实现关联引用。 (( 22 )把数据规则定义在同一模块是一种好的编程习惯,不但方)把数据规则定义在同一模块是一种好的编程习惯,不但方便使用和维护,而且对于以后程序的扩展升级也方便,很容易迁移便使用和维护,而且对于以后程序的扩展升级也方便,很容易迁移到三层或多层。所以建议将到三层或多层。所以建议将 DatabaseDatabase 、、 TableTable 、、 QueryQuery 等对象创建等对象创建到同一个到同一个 DataMoudleDataMoudle 管理模块中。管理模块中。
![Page 47: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/47.jpg)
4.1.5 4.1.5 动态创建动态创建 BDEBDE别名别名 程序中可以动态创建程序中可以动态创建 BDEBDE别名,以降低应用程序与数据库别名,以降低应用程序与数据库的关联密切性。下面给出一种解决方案。(假设应用程序工程的关联密切性。下面给出一种解决方案。(假设应用程序工程文件为文件为 cjgl.prjcjgl.prj ,编译后生成的执行程序为,编译后生成的执行程序为 cjgl.execjgl.exe ))
![Page 48: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/48.jpg)
(( 11 )建立)建立 cjgl.inicjgl.ini 文本配置文件 文本配置文件 (( 22 )使用代码将)使用代码将 cjgl.inicjgl.ini 中数据库选项的内容读取到中数据库选项的内容读取到 DatDatabaseabase 的参数列表中,实现应用程序与实际数据库的代码隔离。的参数列表中,实现应用程序与实际数据库的代码隔离。 (( 33 )在程序中,所有需要引用)在程序中,所有需要引用 DataBaseNameDataBaseName 的的 BDEBDE数据组件,其属性数据组件,其属性 DataBaseNameDataBaseName均引自该均引自该 DataModleDataModle 中的中的DataBaseDataBase 。。
![Page 49: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/49.jpg)
4.1.6 4.1.6 通过通过 BDEBDE别名查看数据库对象别名查看数据库对象 通过通过 BDEBDE别名查看数据库对象的操作步骤如下。别名查看数据库对象的操作步骤如下。
(( 11 ) 打开) 打开 SQL ExploreSQL Explore后,在后,在 DatabaseDatabase列表中选择将列表中选择将要查看的要查看的 BDEBDE别名,如图别名,如图 4-64-6 所示。所示。
![Page 50: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/50.jpg)
图 4-6
![Page 51: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/51.jpg)
(( 22 )用鼠标单击别名前面的“)用鼠标单击别名前面的“ +”+” 号,号,或者在别名上单击鼠标右键,或者使用菜或者在别名上单击鼠标右键,或者使用菜单来打开当前的别名,如图单来打开当前的别名,如图 4-74-7 所示。所示。
图 4-7
![Page 52: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/52.jpg)
打开别名后,数据库对象名称以树形打开别名后,数据库对象名称以树形结构显示出来,如图结构显示出来,如图 4-84-8 所示。 所示。
图4-8
![Page 53: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/53.jpg)
(( 33 )用鼠标单击对象名称,可以查看)用鼠标单击对象名称,可以查看具体的内容,如图具体的内容,如图 4-94-9 所示。所示。
图 4-9
![Page 54: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/54.jpg)
4.2 ADO4.2 ADO ADOADO (( ActiveX Data ObjectsActiveX Data Objects )是)是 MiMi
crosoftcrosoft 公司提供的访问数据库的一套组件,公司提供的访问数据库的一套组件,其底层为其底层为 OLE DBOLE DB 。。 ADOADO 是是 MicrosoftMicrosoft 公公司近年来所提出的数据访问策略之一,这些司近年来所提出的数据访问策略之一,这些策略大多以大写字母的缩写来表示,了解其策略大多以大写字母的缩写来表示,了解其含义,有助于对含义,有助于对 ADOADO 有更清楚的认识。有更清楚的认识。
![Page 55: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/55.jpg)
4.2.1 ADO4.2.1 ADO 组件组件 在组件面板在组件面板 ADOADO 页上集成了访问和管页上集成了访问和管理理 ADOADO 数据集的数据集的 VCLVCL 组件,如图组件,如图 4-104-10 所所示。示。
图 4-10
![Page 56: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/56.jpg)
4.2.2 4.2.2 程序设计中建立程序设计中建立ADOADO 连接连接 在程序中建立在程序中建立ADOADO 连接,需要使用连接,需要使用 ADOADO 组件面板上的组件面板上的 ADOConneADOConnectionction控件。操作步骤如下。控件。操作步骤如下。 (( 11 )启动)启动 DelphiDelphi后,新建或选择已存在的后,新建或选择已存在的 DataModuleDataModule ,然后选,然后选择择ADOADO 组件面板,组件面板,将将 ADOConnectionADOConnection控件添加到控件添加到 DataMoudleDataMoudle 上,并取名为上,并取名为 ADOConnecADOConnection1tion1 。。
![Page 57: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/57.jpg)
(( 22 )鼠标双击控件)鼠标双击控件 ADOConnection1ADOConnection1 ,弹出如图,弹出如图 4-14-1
11 所示界面,进行别名参数设置。所示界面,进行别名参数设置。
(( 33 )单击“)单击“ OK”OK” 完成完成 ADOADO 的设置。的设置。
![Page 58: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/58.jpg)
图 4-11
![Page 59: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/59.jpg)
有以下几点需要注意。有以下几点需要注意。(( 11 )在其他单元中,如果要使用所定义的)在其他单元中,如果要使用所定义的 ADOConnectionADOConnection ,必须,必须使用使用 USEUSE语句引入语句引入 DataMoudleDataMoudle 单元,否则无法实现关联引用。单元,否则无法实现关联引用。(( 22 )把数据规则定义在同一模块中是一种好的编程习惯,不但方)把数据规则定义在同一模块中是一种好的编程习惯,不但方便使用和维护,而且便于以后程序的扩充,很容易迁移到三层或多便使用和维护,而且便于以后程序的扩充,很容易迁移到三层或多层应用。所以建议将使用到的组件 。层应用。所以建议将使用到的组件 。
![Page 60: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/60.jpg)
在图在图 4-114-11 中,单击按钮“中,单击按钮“ Build”Build” ,进,进
入入 ADOADO 链接串配置向导,如图链接串配置向导,如图 4-124-12 所示。所示。
![Page 61: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/61.jpg)
图4-12
![Page 62: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/62.jpg)
图图 4-134-13 和图和图 4-144-14 分别给出了分别给出了 ParadoxParadox 和和 MS SQL ServerMS SQL Server
两种数据库的参数配置界面。如果有口令保护,并且不希望两种数据库的参数配置界面。如果有口令保护,并且不希望程序连接数据库时提示输入用户名称和对应的口令,则需要程序连接数据库时提示输入用户名称和对应的口令,则需要在界面中输入用户名称和对应的密码,并且要注意修改在界面中输入用户名称和对应的密码,并且要注意修改 ADAD
OConnectionOConnection 的的 LoginPromptLoginPrompt 的属性为的属性为 FalseFalse 。。
![Page 63: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/63.jpg)
图 4-13
![Page 64: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/64.jpg)
图 4-14
![Page 65: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/65.jpg)
完成参数填充后,单击按钮“测试连接”完成参数填充后,单击按钮“测试连接”可以测试给出的参数是否正确。如果正确,可以测试给出的参数是否正确。如果正确,系统提示“测试连接成功”,如图系统提示“测试连接成功”,如图 4-154-15 所所示。 示。
图 4-15
![Page 66: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/66.jpg)
4.2.3 4.2.3 动态建立动态建立 ADOADO 连接连接 (( 11 )建立)建立ADOADO 连接的参数保存在程序的配置文件连接的参数保存在程序的配置文件 gxgl.inigxgl.ini 中 。中 。 (( 22 )在应用程序中,创建)在应用程序中,创建 DatabaseDatabase前使用下面的代码将前使用下面的代码将 gxgl.ingxgl.in
ii 中数据库选项的内容读取到中数据库选项的内容读取到 DatabaseDatabase 的参数列表中,实现应用程的参数列表中,实现应用程序与实际数据库的代码隔离。序与实际数据库的代码隔离。
![Page 67: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/67.jpg)
注意事项。注意事项。 (( 11 )以上代码假设)以上代码假设 ADOConnectionADOConnection在在 DataMoudleDataMoudle 中创中创建,并且建,并且 DataMoudleDataMoudle 的名字为的名字为 DMDataDMData 。。 (( 22 )由于使用了)由于使用了 TiniFileTiniFile 对象,需要在声明中引入对象,需要在声明中引入 inifilesinifiles ,,即使用即使用 usesuses语句声明语句声明 inifilesinifiles 。。
![Page 68: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/68.jpg)
(( 33 )由于使用了)由于使用了 ApplicationApplication 对象,需要在声明中引入对象,需要在声明中引入 FormsForms 。。 (( 44 )对于)对于 theInitheIni ,在本例中作为全局变量,要求系统启动时,在本例中作为全局变量,要求系统启动时首先创建首先创建 theInitheIni ,例如,可在,例如,可在 DMDataDMData 的的 initializationinitialization初始化模初始化模块中建立;在系统退出时要释放,例如,在块中建立;在系统退出时要释放,例如,在 DMDataDMData 的的 finalizatiofinalizationn 模块中执行模块中执行 FreeanNil(theIni)FreeanNil(theIni) 。。
![Page 69: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/69.jpg)
4.2.4 4.2.4 不同数据库的不同数据库的 ADOADO链接串定义链接串定义 11 .. DBF/FoxProDBF/FoxPro
22 .. OracleOracle
33 .. MySQL MySQL
44 .. Interbase Interbase
![Page 70: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/70.jpg)
55 .. Sybase Sybase 66 .. Informix Informix 77 .. Excel Excel 88 .. Text Text 99..Visual FoxProVisual FoxPro 1010.. ParadoxParadox
![Page 71: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/71.jpg)
4.3 dbExpress4.3 dbExpress 4.3.1 dbExpress4.3.1 dbExpress 组件组件
在组件面板在组件面板 dbExpressdbExpress 页上集成了访页上集成了访问和管理问和管理 dbExpressdbExpress 数据集的数据集的 VCLVCL 组件,组件,如图如图 4-164-16 所示。 所示。
图 4-16
![Page 72: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/72.jpg)
4.3.2 4.3.2 使用使用 dbExpressdbExpress 创建数据库应用程创建数据库应用程序序
图 4-17
![Page 73: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/73.jpg)
图 4-18
![Page 74: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/74.jpg)
图 4-19
![Page 75: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/75.jpg)
图 4-20
![Page 76: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/76.jpg)
图 4-21
![Page 77: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/77.jpg)
图 4-22
![Page 78: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/78.jpg)
图 4-23
![Page 79: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/79.jpg)
图 4-24
![Page 80: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/80.jpg)
图 4-25
![Page 81: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/81.jpg)
图 4-26
![Page 82: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/82.jpg)
图 4-27
![Page 83: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/83.jpg)
图 4-28
![Page 84: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/84.jpg)
图 4-29
![Page 85: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/85.jpg)
图 4-30
![Page 86: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/86.jpg)
图 4-31 只能单向浏览
![Page 87: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/87.jpg)
图 4-32
![Page 88: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/88.jpg)
图 4-33
![Page 89: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/89.jpg)
采用采用 dbExpressdbExpress 也能够实现数据的双向浏览和修改保存,也能够实现数据的双向浏览和修改保存,
1. 1. 通过组件通过组件 TSimpleDataSetTSimpleDataSet来实现来实现
2. 2. 使用使用 TSQLDataSetTSQLDataSet搭配搭配 TDataSetProviderTDataSetProvider 和和 TClientDataTClientData
SetSet 组件来实现组件来实现
![Page 90: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/90.jpg)
4.4 ODBC4.4 ODBC
ODBCODBC (( Open Database ConnectivitOpen Database Connectivit
yy )即“开放式数据库互连”,是)即“开放式数据库互连”,是 MicrosofMicrosof
tt 公司的一种技术 。公司的一种技术 。
图图 4-364-36 给出了应用给出了应用 ODBCODBC 环境的环境的 44 个个层次模型。层次模型。
![Page 91: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/91.jpg)
ODBC数据库应用程序
驱动程序管理器
SQLServerDri ver
Oracl eDri ver
FoxproDri ver
……
SQLServer数据源
Oracl e数据源
Foxpro数据源 ……
图 4-36
![Page 92: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/92.jpg)
配置配置 ODBCODBC ,可打开,可打开 WindowsWindows 操作系统中的操作系统中的
控制面板,通过附带的控制面板,通过附带的 ODBCODBC 数据源管理器进行数据源管理器进行
配置,如图配置,如图 4-374-37 所示。所示。
![Page 93: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/93.jpg)
图 4-37
![Page 94: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/94.jpg)
4.4.1 4.4.1 通过管理器创建通过管理器创建 ODBCODBC 数据源数据源
4.4.2 4.4.2 动态创建动态创建 ODBCODBC 数据源数据源
![Page 95: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/95.jpg)
动态建立动态建立 ODBCODBC 的过程可仿照上述代码来完成。需要的过程可仿照上述代码来完成。需要注意的是,不同的数据库所对应的参数是不一样的,具体的注意的是,不同的数据库所对应的参数是不一样的,具体的参数可通过手工建立参数可通过手工建立 ODBCODBC ,然后参考注册表“,然后参考注册表“ HKEY_CHKEY_C
URRENT_USER\Software\ODBC\ODBC.INI\ODBC Data SURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data S
ources”ources”键下的内容进行相应修改。 键下的内容进行相应修改。
![Page 96: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/96.jpg)
4.5 4.5 学生成绩管理系统连接数据库学生成绩管理系统连接数据库
本系统在开发时采用本系统在开发时采用 MS AccessMS Access 数据数据
库。根据前面我们讨论的内容可以看出,库。根据前面我们讨论的内容可以看出,
采用采用 ADOADO 数据连接方式最方便。 数据连接方式最方便。
![Page 97: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/97.jpg)
第 第 5 5 章 章 Delphi Delphi 界 面 设 界 面 设 计 计
5.1 5.1 设计界面应考虑的问题设计界面应考虑的问题
5.2 校务管理系统界面设计 5.2 校务管理系统界面设计
5.3 设计通用型数据输入界面5.3 设计通用型数据输入界面
5.4 系 统 安 全 设 计5.4 系 统 安 全 设 计
5.5 系 统 性 能 优 化5.5 系 统 性 能 优 化
![Page 98: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/98.jpg)
用户界面(用户界面( User InterfaceUser Interface ,, UIUI )是应用程序非)是应用程序非常重要的,它直接影响到程序的使用价值。对于大多数常重要的,它直接影响到程序的使用价值。对于大多数用户来说,界面就是他们对一个产品的全部了解,界面用户来说,界面就是他们对一个产品的全部了解,界面就是程序。一个内部设计良好,功能、性能都不错,但就是程序。一个内部设计良好,功能、性能都不错,但界面不好的应用程序就不是一个好的程序。我们采用界面不好的应用程序就不是一个好的程序。我们采用 DDelphielphi 开发开发 WindowsWindows 应用程序,一定要重视界面的设计。应用程序,一定要重视界面的设计。
![Page 99: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/99.jpg)
5.1 5.1 设计界面应考虑的问题设计界面应考虑的问题5.1.15.1.1常用的用户界面设计技巧和技术常用的用户界面设计技巧和技术
(( 11 )界面一致)界面一致(( 22 )建立标准并遵循这个标准)建立标准并遵循这个标准(( 33 )阐明规则)阐明规则(( 44 )同时支持生手和熟手)同时支持生手和熟手
![Page 100: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/100.jpg)
(( 55 )界面间切换很重要)界面间切换很重要(( 66 )界面上的布局很重要)界面上的布局很重要(( 77 )提示信息和标签措辞要适当)提示信息和标签措辞要适当(( 88 )了解控件)了解控件(( 99 )对其他软件不盲从)对其他软件不盲从(( 1010 )颜色使用要适当)颜色使用要适当
![Page 101: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/101.jpg)
(( 1111 )遵循对比原则)遵循对比原则(( 1212 )字体使用要适当)字体使用要适当(( 1313 )灰掉而不是移走)灰掉而不是移走(( 1414 )使用非破坏性的缺省按钮)使用非破坏性的缺省按钮(( 1515 )区域排列)区域排列
![Page 102: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/102.jpg)
(( 1616 )数据对齐要适当)数据对齐要适当(( 1717 )屏幕不能拥挤)屏幕不能拥挤(( 1818 )有效组合)有效组合(( 1919 )在操作焦点处打开窗口)在操作焦点处打开窗口(( 2020 )弹出菜单不应是惟一的功能来源,而应是屏幕上各)弹出菜单不应是惟一的功能来源,而应是屏幕上各操作功能的补充操作功能的补充
![Page 103: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/103.jpg)
5.1.2 5.1.2 常用的窗体设计技巧常用的窗体设计技巧常用的窗体设计技巧有如下几个方面。常用的窗体设计技巧有如下几个方面。(( 11 )注意界面间切换、界面布局。)注意界面间切换、界面布局。(( 22 )理解窗口中的各组件。)理解窗口中的各组件。(( 33 )使用颜色要谨慎。界面中除非有特殊需要,否则不要使用非常鲜艳的颜色。)使用颜色要谨慎。界面中除非有特殊需要,否则不要使用非常鲜艳的颜色。(( 44 )遵循对比原则。在浅色背景上使用深色文字,在深色背景上使用浅色文字。)遵循对比原则。在浅色背景上使用深色文字,在深色背景上使用浅色文字。
![Page 104: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/104.jpg)
(( 55 )字体使用要适当、一致。建议窗口容器及所有的)字体使用要适当、一致。建议窗口容器及所有的可视组件使用中文宋体,可视组件使用中文宋体, 99 磅(小五号)字体,字符集磅(小五号)字体,字符集使用使用 CHINESE_GB2312CHINESE_GB2312 ,这样可保证窗口在,这样可保证窗口在Windows 9Windows 9X X 和 和 Windows 2000Windows 2000 系列操作系统中不变形。系列操作系统中不变形。(( 66 )菜单或按钮等对象不可用时,使用)菜单或按钮等对象不可用时,使用 DisableDisable属性使属性使其灰掉而不是移走或不可见。其灰掉而不是移走或不可见。
![Page 105: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/105.jpg)
(( 77 )对于缺省按钮,要保证其不会产生错误的操作。)对于缺省按钮,要保证其不会产生错误的操作。
(( 88 )编辑区域左对齐,相应的标签则应右对齐。)编辑区域左对齐,相应的标签则应右对齐。
(( 99 )整数、浮点数右对齐,字符串左对齐。)整数、浮点数右对齐,字符串左对齐。
![Page 106: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/106.jpg)
(( 1010 )避免屏幕中各个对象形成拥挤的现象,布局间距要均)避免屏幕中各个对象形成拥挤的现象,布局间距要均匀一致。匀一致。 (( 1111 )使用方框和间隔对窗体上有逻辑关系的项目加以组合。)使用方框和间隔对窗体上有逻辑关系的项目加以组合。 (( 1212 )在操作焦点处打开窗口。)在操作焦点处打开窗口。 (( 1313 )右键弹出菜单不应是惟一的功能来源。)右键弹出菜单不应是惟一的功能来源。
![Page 107: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/107.jpg)
5.2 5.2 校务管理系统界面设计校务管理系统界面设计 5.2.1 5.2.1 创建主程序创建主程序
主程序是程序控制的核心,在主程序主程序是程序控制的核心,在主程序的窗体中可以调用程序中的任一个模块,的窗体中可以调用程序中的任一个模块,实现系统的所有功能。主程序窗体一般包实现系统的所有功能。主程序窗体一般包括菜单栏、主界面和状态栏括菜单栏、主界面和状态栏 33 部分。 部分。
![Page 108: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/108.jpg)
图5-1
![Page 109: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/109.jpg)
图 5-2
![Page 110: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/110.jpg)
图 5-3
![Page 111: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/111.jpg)
图 5-4
![Page 112: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/112.jpg)
图 5-5
![Page 113: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/113.jpg)
图 5-6
![Page 114: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/114.jpg)
图 5-7
![Page 115: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/115.jpg)
图 5-8
![Page 116: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/116.jpg)
图 5-9
![Page 117: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/117.jpg)
5.2.2 5.2.2 菜单菜单 在进行菜单设计时,在主窗体在进行菜单设计时,在主窗体 MainFrmMainFrm 上拖放上拖放 TmainMenuTmainMenu ,,双击或单击鼠标右键,在弹出的菜单中选择“双击或单击鼠标右键,在弹出的菜单中选择“ Menu Designer”Menu Designer” ,,如图如图 5-105-10 所示。设定系统菜单项如图所示。设定系统菜单项如图 5-115-11 所示,运行效果如图所示,运行效果如图5-125-12 所示。 所示。
![Page 118: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/118.jpg)
图 5-10
![Page 119: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/119.jpg)
图 5-11
![Page 120: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/120.jpg)
图 5-12
![Page 121: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/121.jpg)
5.2.3 5.2.3 窗体窗体 执行“执行“ File”→“New”→“Form”File”→“New”→“Form” ,创建新的窗体界面。按照上,创建新的窗体界面。按照上面讲述的步骤设定窗体字体,修改窗体及对应单元的面讲述的步骤设定窗体字体,修改窗体及对应单元的 NameName ,然后,然后存盘。根据功能的设计,在此窗体上依次拖放、编排对应可视化组存盘。根据功能的设计,在此窗体上依次拖放、编排对应可视化组件,同时注意进行属性的初始化和对应方法或事件的处理。在引用件,同时注意进行属性的初始化和对应方法或事件的处理。在引用此窗体的单元中,注意使用此窗体的单元中,注意使用 usesuses语句加入引用。图语句加入引用。图 5-135-13 所示为基所示为基本课程设置界面。本课程设置界面。
![Page 122: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/122.jpg)
图 5-13
![Page 123: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/123.jpg)
图 5-14
![Page 124: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/124.jpg)
图 5-15
![Page 125: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/125.jpg)
图 5-16
![Page 126: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/126.jpg)
5.2.4 5.2.4 数据录入界面数据录入界面 数据录入界面是数据的入口,数据录入一般有两种方式:表单式数据录入界面是数据的入口,数据录入一般有两种方式:表单式录入和浏览式录入。录入和浏览式录入。 表单式录入方式有两种,一种是采用表单式录入方式有两种,一种是采用 TDBEditTDBEdit 、、 TDBMemoTDBMemo 、、TDBCheckBoxTDBCheckBox 等数据控制组件来组成录入界面。 第二种是采用非数等数据控制组件来组成录入界面。 第二种是采用非数据控制组件,例如据控制组件,例如 TEditTEdit 、、 TMemoTMemo 、、 TCheckBoxTCheckBox 等组件构成录入界等组件构成录入界面。 面。
![Page 127: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/127.jpg)
5.2.5 5.2.5 数据浏览界面数据浏览界面 一般情况下,数据浏览界面与数据录入界面的差别为:在一般情况下,数据浏览界面与数据录入界面的差别为:在数据浏览界面中不能对数据进行修改、删除等操作,对于用户数据浏览界面中不能对数据进行修改、删除等操作,对于用户来说数据是只读的,数据操作侧重于浏览而不是编辑。来说数据是只读的,数据操作侧重于浏览而不是编辑。 在“高校学生校务管理系统”中,数据浏览界面结构如在“高校学生校务管理系统”中,数据浏览界面结构如图图 5-195-19 所示。 所示。
![Page 128: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/128.jpg)
图 5-19
![Page 129: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/129.jpg)
5.3 5.3 设计通用型数据输入界面设计通用型数据输入界面 为了减少代码量,在分析同类型功能为了减少代码量,在分析同类型功能模块的基础上,如果能够实现公用输入模模块的基础上,如果能够实现公用输入模块,则建议设计通用型数据输入界面。例块,则建议设计通用型数据输入界面。例如,对于简单的数据输入,可以直接采用如,对于简单的数据输入,可以直接采用如图如图 5-235-23 所示的界面来完成。 所示的界面来完成。
![Page 130: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/130.jpg)
图 5-23
![Page 131: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/131.jpg)
5.4 5.4 系 统 安 全 设 计系 统 安 全 设 计 一般的系统安全设计应该保证以下几点。一般的系统安全设计应该保证以下几点。
(( 11 )有口令保护。)有口令保护。(( 22 )对不同级别的操作员分)对不同级别的操作员分配不同的权限。配不同的权限。(( 33 )数据存储中,对敏感的)数据存储中,对敏感的
内容进行加密处理。 内容进行加密处理。
![Page 132: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/132.jpg)
5.4.1 5.4.1 系统登录界面系统登录界面
图 5-28
![Page 133: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/133.jpg)
5.4.2 5.4.2 权限分配与设计权限分配与设计 利用数据位来存储权限。例如第利用数据位来存储权限。例如第 00位为“位为“ 1”1” 时表示具有“增时表示具有“增加班级权限”,为“加班级权限”,为“ 0”0” 时表示没有“增加班级权限”,依此类推时表示没有“增加班级权限”,依此类推来设定所有的权限。存储权限的字段可以是字符型,也可以是整来设定所有的权限。存储权限的字段可以是字符型,也可以是整型。当为整型的时候,注意对于型。当为整型的时候,注意对于 IntegerInteger类型的数据为类型的数据为 3232位,说位,说明最多可以保存明最多可以保存 3232种权限,即要注意数据类型字节数的问题。 种权限,即要注意数据类型字节数的问题。
![Page 134: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/134.jpg)
5.5 5.5 系 统 性 能 优 化系 统 性 能 优 化 狭义地讲,软件性能是指软件在尽可狭义地讲,软件性能是指软件在尽可能少地占用系统资源的前提下,尽可能高能少地占用系统资源的前提下,尽可能高地提高运行速度;地提高运行速度; 广义地讲,软件性能是指软件质量的广义地讲,软件性能是指软件质量的属性,包括正确性、可靠性、易用性、安属性,包括正确性、可靠性、易用性、安全性、可扩展性、兼容性和可移植性。 全性、可扩展性、兼容性和可移植性。
![Page 135: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/135.jpg)
应当对业务进行充分的面向对象的分析和设计,从而得到应当对业务进行充分的面向对象的分析和设计,从而得到我们真正需要实现什么以及如何去实现。我们真正需要实现什么以及如何去实现。 代码量的增大,应当充分考虑可重用性代码,以面向对象代码量的增大,应当充分考虑可重用性代码,以面向对象技术去构建自己常用的、性能稳定的源代码工具包,作为插接技术去构建自己常用的、性能稳定的源代码工具包,作为插接件,去构建不同的系统 。件,去构建不同的系统 。
![Page 136: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/136.jpg)
针对执行程序,如果功能、代码很多,应该考虑执针对执行程序,如果功能、代码很多,应该考虑执
行代码的“分装” 。行代码的“分装” 。
系统内部有些不常使用的对象,建议在使用的时候系统内部有些不常使用的对象,建议在使用的时候
才创建,使用完成后接着进行释放 。才创建,使用完成后接着进行释放 。
![Page 137: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/137.jpg)
第 第 6 6 章 章 Delphi Delphi 查 询 设 计 查 询 设 计 6.1 6.1 设计查询界面应考虑的问题设计查询界面应考虑的问题
6.2 校务管理系统查询设计6.2 校务管理系统查询设计
6.3 设计通用型查询界面 6.3 设计通用型查询界面
![Page 138: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/138.jpg)
6.1 6.1 设计查询界面应考虑的问题设计查询界面应考虑的问题 对于数据库管理系统,数据查询占有对于数据库管理系统,数据查询占有很重要的地位,而且必不可少。数据查询很重要的地位,而且必不可少。数据查询既可以查询所输入的各种数据,也可以对既可以查询所输入的各种数据,也可以对有关数据进行统计汇总,所以设计查询界有关数据进行统计汇总,所以设计查询界面的时候应当考虑统计、汇总的操作。面的时候应当考虑统计、汇总的操作。
![Page 139: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/139.jpg)
用户查询的结果应当能够在屏幕上直接显示出来,同时必要用户查询的结果应当能够在屏幕上直接显示出来,同时必要的时候,也应该考虑查询结果能够在打印机上输出,以满足不的时候,也应该考虑查询结果能够在打印机上输出,以满足不同查询的需要。同查询的需要。 查询数据应当充分考虑用户的不同需要,既要有对常用数据查询数据应当充分考虑用户的不同需要,既要有对常用数据的查询,又应当考虑用户对数据的其他需求,所以建立查询界的查询,又应当考虑用户对数据的其他需求,所以建立查询界面的时候不应当局限于某些数据,应当充分考虑用户业务规则面的时候不应当局限于某些数据,应当充分考虑用户业务规则的需求。的需求。
![Page 140: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/140.jpg)
查询界面应当简洁、明快,使用户操作方便。容易上手查询界面应当简洁、明快,使用户操作方便。容易上手的操作界面始终是用户乐于接受的,相反,操作复杂、约的操作界面始终是用户乐于接受的,相反,操作复杂、约束又很多的查询界面,即使最后结果能够满足查询结果的束又很多的查询界面,即使最后结果能够满足查询结果的要求,用户往往也是不容易接受的。要求,用户往往也是不容易接受的。
![Page 141: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/141.jpg)
查询数据的方法在查询数据的方法在 DelphiDelphi 中一般应用较广的是使用中一般应用较广的是使用 SQLSQL语语句,或者利用句,或者利用 DataSetDataSet 的的 FilterFilter属性来实现。前者功能强大,可属性来实现。前者功能强大,可以同步实现排序、统计个数、求和、平均、最大、最小等操作,以同步实现排序、统计个数、求和、平均、最大、最小等操作,而且可以通过关联语句实现多个表的组合查询、模糊查询;后而且可以通过关联语句实现多个表的组合查询、模糊查询;后者针对当前者针对当前 DatasetDataset缓冲中的数据按照一定条件进行过滤,具有缓冲中的数据按照一定条件进行过滤,具有查询速度快的特点。针对不同的需求,这两种查询方法都有各查询速度快的特点。针对不同的需求,这两种查询方法都有各自的特点,可应用于不同场合。自的特点,可应用于不同场合。
![Page 142: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/142.jpg)
6.2 6.2 校务管理系统查询设计校务管理系统查询设计
6.2.1 SQL6.2.1 SQL 的应用的应用
6.2.2 Filter6.2.2 Filter 的应用的应用
![Page 143: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/143.jpg)
6.3 6.3 设计通用型查询界面设计通用型查询界面 数据查询是有共性的,即根据用户查数据查询是有共性的,即根据用户查
询的要求去合成(或创建)查询过滤语句,询的要求去合成(或创建)查询过滤语句,
实现数据的查询。 实现数据的查询。
![Page 144: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/144.jpg)
第第 7 7 章章 DelphiDelphi 报表设计 报表设计 7.1 7.1 设计报表应考虑的问题设计报表应考虑的问题
7.2 实现用户自定义报表7.2 实现用户自定义报表
7.3 7.3 Delphi 7Delphi 7自带报表系统介绍自带报表系统介绍
7.4 7.4 FastReport FastReport 介 绍介 绍
7.5 校务管理系统报表 7.5 校务管理系统报表
![Page 145: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/145.jpg)
7.1 7.1 设计报表应考虑的问题设计报表应考虑的问题 数据报表是数据库应用系统不可分割数据报表是数据库应用系统不可分割的重要组成部分,作为企事业单位上报、的重要组成部分,作为企事业单位上报、下达、存档的重要信息载体,数据报表已下达、存档的重要信息载体,数据报表已经成为管理信息系统中重要的一项功能,经成为管理信息系统中重要的一项功能,并且,由于数据的多样性和统计信息的增并且,由于数据的多样性和统计信息的增加,数据报表的系统实现变得越来越复杂。加,数据报表的系统实现变得越来越复杂。
![Page 146: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/146.jpg)
在设计数据库应用程序的时候,报表一方面要反映出用户在设计数据库应用程序的时候,报表一方面要反映出用户的需求,另一方面应该能够根据用户业务要求衍生出一系列对用的需求,另一方面应该能够根据用户业务要求衍生出一系列对用户实际有所帮助的统计、分析报表。户实际有所帮助的统计、分析报表。 报表的输出格式有纸张打印和屏幕输出两种,设计应用系统报表的输出格式有纸张打印和屏幕输出两种,设计应用系统的时候这两种格式均应能够实现。此外,为了实现数据的交换,的时候这两种格式均应能够实现。此外,为了实现数据的交换,应该考虑报表以其他格式的保存,例如应该考虑报表以其他格式的保存,例如 HtmlHtml超文本格式、微软超文本格式、微软ExcelExcel 的格式(的格式( *.XLS*.XLS )等,实现信息数据的共享。)等,实现信息数据的共享。
![Page 147: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/147.jpg)
一般情况下,用户业务需求是不断发展变化一般情况下,用户业务需求是不断发展变化
的,设计出的报表系统应该能够适应这种动态业的,设计出的报表系统应该能够适应这种动态业
务的发展,及时为用户提供新格式的报表。务的发展,及时为用户提供新格式的报表。
![Page 148: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/148.jpg)
尽管报表格式相对固定,但是由于用户业务的调整而带尽管报表格式相对固定,但是由于用户业务的调整而带来的报表的修改也应当考虑。为了减少维护成本,增强用户来的报表的修改也应当考虑。为了减少维护成本,增强用户报表功能,应充分考虑报表模板的可维护性,也就是说,如报表功能,应充分考虑报表模板的可维护性,也就是说,如果用户能够自己维护、扩充报表及报表模板,那么对于加强果用户能够自己维护、扩充报表及报表模板,那么对于加强所开发的应用系统的功能是非常有意义的。所开发的应用系统的功能是非常有意义的。
![Page 149: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/149.jpg)
7.2 7.2 实现用户自定义报表实现用户自定义报表7.2.1 7.2.1 概述概述
采用采用 DelphiDelphi 开发报表应用程序可以使用第三开发报表应用程序可以使用第三方方 VCLVCL 报表组件,包括报表组件,包括 DelphiDelphi 自带的报表系统。自带的报表系统。这些组件功能强大、使用方便,不过在编写应用这些组件功能强大、使用方便,不过在编写应用系统的时候,建立属于自己的报表系统往往还是系统的时候,建立属于自己的报表系统往往还是很有必要的,一方面可以更灵活地实现报表需求,很有必要的,一方面可以更灵活地实现报表需求,另外可以不用考虑版权等约束,此外还有可能减另外可以不用考虑版权等约束,此外还有可能减少不要的代码,使程序更加简练。少不要的代码,使程序更加简练。
![Page 150: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/150.jpg)
DelphiDelphi 中封装了中封装了 TPrinterTPrinter 对象,它隐藏了大部分的对象,它隐藏了大部分的打印管理工作,通过打印管理工作,通过 TPrinterTPrinter 的属性和方法使程序员可以的属性和方法使程序员可以像在窗体画布上画图一样在打印机上进行输出。像在窗体画布上画图一样在打印机上进行输出。 TPrinter.TPrinter.CanvasCanvas 表示的是打印机的输出画布,大多数显示文本、图表示的是打印机的输出画布,大多数显示文本、图像、画图的程序都可以如同窗体画布上显示的一样在打印像、画图的程序都可以如同窗体画布上显示的一样在打印机上打印输出,这样通过机上打印输出,这样通过 TPrinterTPrinter 可以实现自定义报表。 可以实现自定义报表。
![Page 151: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/151.jpg)
7.2.2 7.2.2 文本打印文本打印 使用使用 TPrinterTPrinter打印文本的时候,只需向打印机发送文本即可 。打印文本的时候,只需向打印机发送文本即可 。
界面如图界面如图 7-17-1 所示,其中所示,其中 FontDialog1FontDialog1 的属性的属性 DeviceDevice取值为取值为 fdfd
PrinterPrinter 。。
![Page 152: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/152.jpg)
图 7-1
![Page 153: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/153.jpg)
7.2.3 7.2.3 图形打印和窗体打印图形打印和窗体打印 打印图形依赖于打印图形依赖于 TPrinter.CanvasTPrinter.Canvas ,完全类似于在窗体,完全类似于在窗体画布上绘制图形。 画布上绘制图形。
窗体的打印直接使用窗体的打印直接使用 TFormTForm 的的 PrintPrint 方法即可。方法即可。
![Page 154: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/154.jpg)
7.3 Delphi 77.3 Delphi 7 自带报表系统介绍自带报表系统介绍 随随 Delphi 7Delphi 7 一起安装使用的是一套一起安装使用的是一套 RRaveave 的报表组件,如图的报表组件,如图 7-27-2 所示,它由所示,它由 1313个控件组成,来完成报表的工程管理、引个控件组成,来完成报表的工程管理、引擎、数据连接等功能。 擎、数据连接等功能。
图 7-2
![Page 155: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/155.jpg)
各部分功能简介如表各部分功能简介如表 7-37-3 所示。所示。
![Page 156: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/156.jpg)
采用采用 RaveRave 设计报表的是通过设计报表的是通过 Rave DesignerRave Designer来实现的。来实现的。在在 RaveRave 组件面板上选择组件面板上选择 TrvProjectTrvProject控件并拖放到设计报表控件并拖放到设计报表的的 FormForm 上, 双击上, 双击 TrvProjecTrvProjec控件或者在控件或者在 DelphiDelphi 的的 IDEIDE 开发开发环境中,选择“环境中,选择“ Tools”→“RaveDesigner”Tools”→“RaveDesigner” 命令,打开命令,打开 Rave Rave
DesignerDesigner ,启动窗口如图,启动窗口如图 7-37-3 所示。所示。
![Page 157: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/157.jpg)
图图 7-37-3
![Page 158: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/158.jpg)
Rave DesignerRave Designer 的主界面如图的主界面如图 7-47-4 所示,报表开发环境所示,报表开发环境由菜单栏、工具栏、组件面板、属性编辑器、页面设计器、由菜单栏、工具栏、组件面板、属性编辑器、页面设计器、事件编辑器、对象浏览器组成。报表设计器是一个可视化事件编辑器、对象浏览器组成。报表设计器是一个可视化的开发环境,类似于的开发环境,类似于 DelphiDelphi 开发环境。 开发环境。
![Page 159: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/159.jpg)
图 7-4
![Page 160: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/160.jpg)
使用使用 RaveRave 设计一个数据报表。 设计一个数据报表。
![Page 161: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/161.jpg)
7.4 FastReport 7.4 FastReport 介 绍介 绍7.4.1 FastReport7.4.1 FastReport 简介简介
顾名思义,顾名思义, FastReportFastReport 就是“快速报就是“快速报表”系统,是目前数据库管理与应用开发表”系统,是目前数据库管理与应用开发常用的一套报表系统。常用的一套报表系统。 FastReportFastReport 由由 DelpDelphihi编写完成,可获取多种数据源来实现报编写完成,可获取多种数据源来实现报表,例如表,例如 BDEBDE 、、 ADOADO 、、 IBOIBO (连接(连接 InteInterBaserBase ),甚至字符列表、),甚至字符列表、 PascalPascal 数组等。数组等。
![Page 162: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/162.jpg)
具有以下功能。具有以下功能。(( 11 )独立的可视化的报表设计器,能够完成报表模板的设计。)独立的可视化的报表设计器,能够完成报表模板的设计。(( 22 )报表模板支持文件存储、数据库)报表模板支持文件存储、数据库 BLOBBLOB字段存储、字段存储、 DFDFMM窗体存储、数据流存储等模式,支持最终用户的调用修改。窗体存储、数据流存储等模式,支持最终用户的调用修改。(( 33 )由于使用纯)由于使用纯 DelphiDelphi编写完成,所以可以将整个报表支编写完成,所以可以将整个报表支持系统编译连接到应用程序。持系统编译连接到应用程序。
![Page 163: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/163.jpg)
(( 44 )支持很多有用组件,例如文本、线段、图像、图形、)支持很多有用组件,例如文本、线段、图像、图形、 OOLELE 对象、格式文本、图表、条形码、带阴影的文本等。对象、格式文本、图表、条形码、带阴影的文本等。(( 55 )报表页数无限制。)报表页数无限制。(( 66 )使用纸张无限制(打印可用纸张与打印机设备有关)。)使用纸张无限制(打印可用纸张与打印机设备有关)。(( 77 )输出支持预览和打印,支持向)输出支持预览和打印,支持向 TXTTXT 、、 RTFRTF 、、 HTMLHTML 、、CVSCVS 等格式的文件输出。等格式的文件输出。
![Page 164: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/164.jpg)
(( 88 )支持子母表、分组报表、多页报表、多栏报表等多种形)支持子母表、分组报表、多页报表、多栏报表等多种形式的报表输出。式的报表输出。(( 99 )报表内置)报表内置 PascalPascal解释器,支持创建自己的报表组件、函解释器,支持创建自己的报表组件、函数类库,从而可使报表更加生动、直观。数类库,从而可使报表更加生动、直观。(( 1010 )支持多种获取外部数据源的连接,例如)支持多种获取外部数据源的连接,例如 BDEBDE 、、 ADOADO 等。等。
![Page 165: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/165.jpg)
图图 7-187-18~图~图 7-207-20 所示为所示为 FastReport2.52FastReport2.52安装后的组件面板,安装后的组件面板,共有共有 33 组组件:组组件: FastReportFastReport 面板上的组件为报表系统的主要组面板上的组件为报表系统的主要组件,包括设计器、预览、数据连接组件等;件,包括设计器、预览、数据连接组件等; FastReport ExportsFastReport Exports为报表输出文件格式控制组件,包括为报表输出文件格式控制组件,包括 RTFRTF 、、 XLSXLS 、、 HTMLHTML 、、BMPBMP 等;等; FastReport ToolsFastReport Tools 为一组界面控件,主要应用于为一组界面控件,主要应用于 FastFastReport DesignerReport Designer 界面中设计,当然,也可以使用这组控件用于界面中设计,当然,也可以使用这组控件用于我们设计的界面。 我们设计的界面。
![Page 166: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/166.jpg)
图 7-18
图 7-19
图 7-20
![Page 167: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/167.jpg)
7.5 7.5 校务管理系统报表校务管理系统报表 7.5.1 OLE7.5.1 OLE 技术简介技术简介7.5.2 7.5.2 采用采用 ExcelExcel 实现报表输出实现报表输出
优点。优点。 ① ① 报表设计器就是报表设计器就是 ExcelExcel 自身,功能强自身,功能强大、方便易用;报表模板可随时根据需要大、方便易用;报表模板可随时根据需要进行改正。进行改正。
![Page 168: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/168.jpg)
② ② ExcelExcel打印预览等功能强大,可以直接使用。打印预览等功能强大,可以直接使用。 ③ ③ ExcelExcel自身提供强大的自动化接口,方便易控。自身提供强大的自动化接口,方便易控。 ④ ④ 减少开发成本,提高开发效率。减少开发成本,提高开发效率。 但是,采用但是,采用 ExcelExcel 作为报表工具的应用程序要求用户使用作为报表工具的应用程序要求用户使用端必须安装端必须安装 MicrosoftMicrosoft 的的 ExcelExcel ,这点是不利的,因为不能够,这点是不利的,因为不能够保证所有的应用系统用户都安装了保证所有的应用系统用户都安装了MS ExcelMS Excel 。 。
![Page 169: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/169.jpg)
DelphiDelphi控制控制ExcelExcel 的实现原理和方法。的实现原理和方法。
11 .创建.创建 ExcelExcel 文件文件22 .数据表格控制.数据表格控制
(( 11 )数据的导入)数据的导入(( 22 )单元格的合并、边框的控制)单元格的合并、边框的控制(( 33 )表格的复制与粘贴)表格的复制与粘贴
![Page 170: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/170.jpg)
33 .文件的保存.文件的保存44 .报表制作应注意的问题.报表制作应注意的问题
(( 11 )报表格式的选择)报表格式的选择(( 22 )打印)打印(( 33 )报表时间和表头)报表时间和表头
![Page 171: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/171.jpg)
第 第 8 8 章 章 DelphiDelphi 实现数据库的备份与恢实现数据库的备份与恢复 复
8.1 8.1 文件复制方式备份数据库文件复制方式备份数据库
8.2 数据差额方式备份与恢复 8.2 数据差额方式备份与恢复
8.3 校务管理系统的数据库备份8.3 校务管理系统的数据库备份
![Page 172: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/172.jpg)
8.1 8.1 文件复制方式备份数据库文件复制方式备份数据库
系统的安全性包括数据库的安全,数据系统的安全性包括数据库的安全,数据库的安全一方面需要加强用户管理,防止非库的安全一方面需要加强用户管理,防止非法侵入,另一方面要做好数据库的及时备份,法侵入,另一方面要做好数据库的及时备份,防止因各种原因导致的数据丢失等。防止因各种原因导致的数据丢失等。
![Page 173: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/173.jpg)
纯粹的桌面型数据库一般都是以文件为单位进行管纯粹的桌面型数据库一般都是以文件为单位进行管理的,这样的数据库最简单的备份方法就是直接拷贝数理的,这样的数据库最简单的备份方法就是直接拷贝数据库文件,对于索引文件(据库文件,对于索引文件( *.idx*.idx 、、 *.cdx*.cdx 等)、备注文等)、备注文件(件( *.fpt*.fpt )等也要同步备份。对于大型数据库,将备)等也要同步备份。对于大型数据库,将备份出的文件拷贝到不同的介质进行保存,实现数据库的份出的文件拷贝到不同的介质进行保存,实现数据库的备份。当然大型数据库的备份备份。当然大型数据库的备份 // 恢复功能是很强大的。恢复功能是很强大的。
![Page 174: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/174.jpg)
总之,备份数据库的原则就是将保存数据的总之,备份数据库的原则就是将保存数据的
文件拷贝到异地、异存储介质上,以达到数据安文件拷贝到异地、异存储介质上,以达到数据安
全备份的目的。全备份的目的。
![Page 175: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/175.jpg)
8.1.1 Delphi8.1.1 Delphi 实现文件的复制实现文件的复制下面给出下面给出 DelphiDelphi 实现文件复制的几种方法。实现文件复制的几种方法。 实现文件拷贝,调用实现文件拷贝,调用 APIAPI函数需要函数需要 LZEXPAND.DLLLZEXPAND.DLL
实现文件拷贝,使用文件流的方式实现文件拷贝,使用文件流的方式实现文件拷贝,利用内存块读写实现文件拷贝,利用内存块读写 bufferbuffer 实现实现
![Page 176: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/176.jpg)
8.1.2 8.1.2 不同数据库的全文件备份与恢复不同数据库的全文件备份与恢复讲述讲述 MS SQL ServerMS SQL Server 数据库的备份数据库的备份 // 恢复。恢复。
11 .冷操作.冷操作————备份备份
22 .冷操作.冷操作————恢复恢复
![Page 177: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/177.jpg)
33 .热操作.热操作————备份备份方法:通过方法:通过 SQLSQL 备份语句备份语句BackupBackup来实现。来实现。语法:语法: Backup DataBase DatabaseName to Disk FileName [with init]Backup DataBase DatabaseName to Disk FileName [with init]
实现:在实现:在Query AnalyzerQuery Analyzer 环境中执行上述命令,或通过代码来实现。 环境中执行上述命令,或通过代码来实现。
![Page 178: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/178.jpg)
44 .热操作.热操作————恢复恢复方法:通过方法:通过 SQLSQL 恢复语句恢复语句 RestoreRestore来实现。来实现。语法:语法: Restore DataBase DatabaseName to Disk FileName Restore DataBase DatabaseName to Disk FileName
实现:在实现:在 Query AnalyzerQuery Analyzer 环境中执行上述命令,或通过代码来实现。环境中执行上述命令,或通过代码来实现。
![Page 179: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/179.jpg)
8.2 8.2 数据差额方式备份与恢复数据差额方式备份与恢复 8.2.1 8.2.1 原理原理
采用差额方式备份与恢复最关键的技术采用差额方式备份与恢复最关键的技术是“时间”概念,即在数据保存的同时要是“时间”概念,即在数据保存的同时要记录当前的时间,这样对于所有的数据,记录当前的时间,这样对于所有的数据,都会记录下“时间”,从而为差额备份与都会记录下“时间”,从而为差额备份与恢复提供了技术依据。恢复提供了技术依据。
![Page 180: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/180.jpg)
8.2.2 SQL8.2.2 SQL 与文件流实现数据差额备份与恢复与文件流实现数据差额备份与恢复 备份过程实现的基本思路如下。备份过程实现的基本思路如下。 (( 11 )通过)通过 TADOQueryTADOQuery 实现与数据表的连接,通过实现与数据表的连接,通过 selesele
ctct语句中的语句中的 wherewhere子句实现获取特定时间的数据。子句实现获取特定时间的数据。
![Page 181: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/181.jpg)
(( 22 )将获取的数据以记录、字段顺序进行保存,保存的过程中,由)将获取的数据以记录、字段顺序进行保存,保存的过程中,由于涉及文件的读写,采用文件流方式比较快且操作方便。于涉及文件的读写,采用文件流方式比较快且操作方便。 对于恢复,则首先将数据读入到对于恢复,则首先将数据读入到 ADODatasetADODataset 中,然后依次送回到数中,然后依次送回到数据库中。据库中。 上述方法实现起来比较复杂,需要考虑的注意事项较多,这里不再详上述方法实现起来比较复杂,需要考虑的注意事项较多,这里不再详细阐述。细阐述。
![Page 182: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/182.jpg)
8.2.3 ADO8.2.3 ADO 连接方式下的特殊应用连接方式下的特殊应用 在在 ADOdataSetADOdataSet 中有个中有个 SaveToFileSaveToFile 方法,通过方法,通过 SaveToFileSaveToFile可以将当前数据集中的数据保存到一个文件中,如果这个文件可以将当前数据集中的数据保存到一个文件中,如果这个文件存在,则进行覆盖。语法为:存在,则进行覆盖。语法为:procedure SaveToFile(const FileName: String = ''; procedure SaveToFile(const FileName: String = ''; Format: TPersistFormat = pfADTG);Format: TPersistFormat = pfADTG);
![Page 183: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/183.jpg)
与之相对应的是与之相对应的是 LoadFromFileLoadFromFile ,实现了从一个文件,实现了从一个文件
中读取数据到数据集中,语法为:中读取数据到数据集中,语法为:
procedure LoadFromFile(const FileName: WideString);procedure LoadFromFile(const FileName: WideString);
![Page 184: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/184.jpg)
8.3 8.3 校务管理系统的数据库备份校务管理系统的数据库备份 由于校务管理系统的数据相对来说并由于校务管理系统的数据相对来说并不大,所以在数据库备份的时候可以采用不大,所以在数据库备份的时候可以采用全额备份的方式,即备份整个数据库的内全额备份的方式,即备份整个数据库的内容,通过采用以下两种方式实现备份。容,通过采用以下两种方式实现备份。
![Page 185: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/185.jpg)
(( 11 )对于)对于 AccessAccess 数据库,可以直接备份数据库,可以直接备份 AccessAccess 所对应的数据文件,即所对应的数据文件,即 GG
XData.mdbXData.mdb 。。(( 22 )对于)对于 MS SQL ServerMS SQL Server 数据库,采用以下数据库,采用以下 Backup DatabaseBackup Database 方式。方式。 程序中使用代码完成。程序中使用代码完成。 程序外通过程序外通过 MS SQL ServerMS SQL Server集成环境来实现。集成环境来实现。
![Page 186: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/186.jpg)
第 第 9 9 章 章 DelphiDelphi 应用程序的封装与发布 应用程序的封装与发布
9.1 9.1 应 考 虑 的 问 题应 考 虑 的 问 题
9.2 系统帮助文件的制作9.2 系统帮助文件的制作
9.3 安 装 盘 的 制 作9.3 安 装 盘 的 制 作
![Page 187: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/187.jpg)
9.1 9.1 应 考 虑 的 问 题应 考 虑 的 问 题 DelphiDelphi 的功能很强大,可以开发多种的功能很强大,可以开发多种类型的应用程序或支持库组件,为了实现类型的应用程序或支持库组件,为了实现对开发产品的分发,需要对开发出来的产对开发产品的分发,需要对开发出来的产品及相关文件进行打包封装。在封装与分品及相关文件进行打包封装。在封装与分发的过程中,要注意以下几个方面的问题。发的过程中,要注意以下几个方面的问题。
![Page 188: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/188.jpg)
(( 11 )要保证文件能够正常运行。一般情况下,我)要保证文件能够正常运行。一般情况下,我们开发出来的程序需要许多其他文件作为支持,例如数们开发出来的程序需要许多其他文件作为支持,例如数据文件、数据库支持文件、数据库链接文件、系统配置据文件、数据库支持文件、数据库链接文件、系统配置文件等,这些文件在我们的开发环境中已经具备,但在文件等,这些文件在我们的开发环境中已经具备,但在用户端不能保证所有的文件都具备,所以应当考虑在应用户端不能保证所有的文件都具备,所以应当考虑在应用程序封装的时候不能遗忘系统辅助文件。用程序封装的时候不能遗忘系统辅助文件。
![Page 189: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/189.jpg)
(( 22 )要充分考虑开发环境与实际运行环境的不同。)要充分考虑开发环境与实际运行环境的不同。
当完成产品后,应当充分进行测试,包括目前流行的几当完成产品后,应当充分进行测试,包括目前流行的几
种操作系统下运行、不同硬件配置下系统的运行等。种操作系统下运行、不同硬件配置下系统的运行等。
![Page 190: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/190.jpg)
(( 33 )一般情况下,随着系统分发的文件除了支撑系统运行的文)一般情况下,随着系统分发的文件除了支撑系统运行的文件,还应当包括辅助系统运行的一些文件,通过这些文档可以使用件,还应当包括辅助系统运行的一些文件,通过这些文档可以使用户快速上手,应用我们的系统。户快速上手,应用我们的系统。 (( 44 )安装程序应当简洁、明快,操作方便,安装的过程中用户)安装程序应当简洁、明快,操作方便,安装的过程中用户的操作要少,尽量做到一气呵成,安装全部所需要的各种文件。的操作要少,尽量做到一气呵成,安装全部所需要的各种文件。
![Page 191: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/191.jpg)
9.2 9.2 系统帮助文件的制作系统帮助文件的制作 HLPHLP 格式是格式是 MicrosoftMicrosoft 公司推出的系统帮助公司推出的系统帮助文件格式,它可以增加书签、注解,允许全文检文件格式,它可以增加书签、注解,允许全文检索。 索。 CHMCHM 文件格式是文件格式是 MicrosoftMicrosoft 公司于公司于 19981998年推年推出的基于出的基于 HTMLHTML 文件特性的帮助文件系统,以替文件特性的帮助文件系统,以替代早先的代早先的 WinHelpWinHelp 帮助系统,它也是一种超文本帮助系统,它也是一种超文本标识语言,在标识语言,在Windows 98Windows 98 中把中把 CHMCHM类型文件称类型文件称做“已编译的做“已编译的 HTMLHTML 帮助文件”。 帮助文件”。
![Page 192: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/192.jpg)
9.2.1 9.2.1 使用工具软件制作帮助使用工具软件制作帮助 制作制作 HLPHLP 文件采用文件采用 MS WordMS Word编写编写 RTFRTF 格式的文件,使用格式的文件,使用 Microsoft Microsoft
Help WorkshopHelp Workshop (简称(简称HWHW )创建帮助工程文件,然后引入)创建帮助工程文件,然后引入 RTFRTF 格式的格式的源文件,通过编译形成源文件,通过编译形成 HLPHLP 格式文件。格式文件。 HWHW 的主界面如图的主界面如图 9-19-1 所示。 所示。
![Page 193: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/193.jpg)
图 9-1
![Page 194: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/194.jpg)
制作制作 CHMCHM 格式的文件,则需要通过格式的文件,则需要通过 MS FrontPageMS FrontPage
或或 DREAMWaves DREAMWaves 等软件建立若干超文本文件,然后通等软件建立若干超文本文件,然后通过过 Microsoft HTML Help WorkshopMicrosoft HTML Help Workshop (简称(简称 HHWHHW )编)编译译生成生成 CHMCHM 格式的文件。格式的文件。 HHWHHW 的主界面如图的主界面如图 9-29-2 所示。所示。
![Page 195: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/195.jpg)
图 9-2
![Page 196: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/196.jpg)
9.2.2 9.2.2 校务管理系统挂接帮助文件的实现校务管理系统挂接帮助文件的实现 高校学生校务管理系统的帮助采用高校学生校务管理系统的帮助采用 CHMCHM 格式,首先通过建格式,首先通过建立立 FrontPageFrontPage来建立超文本链接的页面,按照不同的功能分别存来建立超文本链接的页面,按照不同的功能分别存储为不同的文件,根据需要,可以在页面中嵌入图片、声音、动储为不同的文件,根据需要,可以在页面中嵌入图片、声音、动画、链接等元素。启动画、链接等元素。启动HTML Help WorkShopHTML Help WorkShop 应用程序,按照应用程序,按照前面讲述的使用方法建立前面讲述的使用方法建立HELPHELP 工程文件,并设置相关参数,调工程文件,并设置相关参数,调入编写好的超文本文件(入编写好的超文本文件( *html*html )) ,, 开发过程如图开发过程如图 9-39-3 所示。所示。
![Page 197: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/197.jpg)
图 9-3
![Page 198: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/198.jpg)
最后结果主界面如图最后结果主界面如图 9-49-4 所示。 所示。
图 9-4
![Page 199: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/199.jpg)
9.2.3 9.2.3 关于系统的制作关于系统的制作 关于系统,即帮助菜单中的关于系统,即帮助菜单中的 AboutAbout窗体,一般的应用系统窗体,一般的应用系统都有类似的界面,用于显示本系统的版本信息、联系方式等。都有类似的界面,用于显示本系统的版本信息、联系方式等。关于系统的设计比较简单,只要美观、大方就可以。关于系统的设计比较简单,只要美观、大方就可以。 最简单的实现最简单的实现 AboutAbout 功能的方法是使用功能的方法是使用 WindowsAPIWindowsAPI函函数数 ShellAboutShellAbout ,代码如下,执行效果如图,代码如下,执行效果如图 9-59-5 所示。 所示。
![Page 200: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/200.jpg)
图 9-5
![Page 201: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/201.jpg)
9.3 9.3 安 装 盘 的 制 作安 装 盘 的 制 作9.3.1 9.3.1 使用工具软件制作安装盘使用工具软件制作安装盘
目前制作安装系统的工具类软件非常目前制作安装系统的工具类软件非常多,而且都是图形化操作界面,例如多,而且都是图形化操作界面,例如 InstaInstallshieldllshield 、、 Installshield ExpressInstallshield Express 、、 Wise InsWise Installertaller 、、 SetupBuilderSetupBuilder 、、 Installer2goInstaller2go 等,等,其中其中 Installshield ExpressInstallshield Express 是是 InstallshieldInstallshield公司专门为公司专门为 DelphiDelphi 定制并随定制并随 DelphiDelphi 一起分一起分发的一套安装盘工具软件。 发的一套安装盘工具软件。
![Page 202: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/202.jpg)
9.3.2 9.3.2 制作校务管理系统安装盘应注意的问题制作校务管理系统安装盘应注意的问题 校务管理系统所涉及的数据库是校务管理系统所涉及的数据库是 MS AccessMS Access (或者是(或者是 MS MS SQL ServerSQL Server ),系统中连接数据库采用的是),系统中连接数据库采用的是 ADOADO 方式,这方式,这需要使用需要使用 MicrosoftMicrosoft 的的 ADOADO 数据引擎,如果客户端安装了以数据引擎,如果客户端安装了以下产品之一,则可以不必单独安装下产品之一,则可以不必单独安装 ADOADO 数据引擎:数据引擎:
![Page 203: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/203.jpg)
MS Windows 2000MS Windows 2000
MS Windows XPMS Windows XP
MS Office 2000MS Office 2000 以上版本的办公套件以上版本的办公套件
MS SQL Server 7.0MS SQL Server 7.0 以上版本以上版本
MSDEMSDE
![Page 204: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/204.jpg)
如果需要单独安装如果需要单独安装 ADOADO 数据引擎,则可以直接从数据引擎,则可以直接从 MicrMicr
osoftosoft网站上免费下载网站上免费下载MDAC_TYP27.EXEMDAC_TYP27.EXE并进行安装,所并进行安装,所
以制作安装盘的时候,建议将以制作安装盘的时候,建议将MDAC_TYP27.EXEMDAC_TYP27.EXE 同步分同步分
发。发。
![Page 205: 数据库应用软件开发 ——delphi](https://reader031.vdocuments.site/reader031/viewer/2022012302/5681545e550346895dc27697/html5/thumbnails/205.jpg)
采用工具创建安装盘比较简单,关键把握以下几个方面。采用工具创建安装盘比较简单,关键把握以下几个方面。① ① 系统自身所有的文件不能有遗漏,对应子目录要正确。系统自身所有的文件不能有遗漏,对应子目录要正确。② ② 系统运行所需要的支持文件不能有遗漏,安装要正确。系统运行所需要的支持文件不能有遗漏,安装要正确。③ ③ 数据库文件及设置要正确。数据库文件及设置要正确。④ ④ 建议对需要注册的服务、建议对需要注册的服务、 OCXOCX 库等实现自动注册。库等实现自动注册。⑤ ⑤ 涉及的注册表、配置文件应该正确。涉及的注册表、配置文件应该正确。