数据库系统实例.docx
- 文档编号:5418826
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:112
- 大小:1.90MB
数据库系统实例.docx
《数据库系统实例.docx》由会员分享,可在线阅读,更多相关《数据库系统实例.docx(112页珍藏版)》请在冰豆网上搜索。
数据库系统实例
第1章数据库开发技术基础1
1.1我们的学习任务1
1.1.1录入学生档案信息模块1
1.1.2打印学生档案信息模块2
1.1.3学生档案信息维护模块3
1.1.4退出档案管理系统模块4
1.2数据库的基本概念5
1.2.1使用DatabaseDesktop创建表5
1.2.2使用DatabaseDesktop向表中输入数据7
1.3数据库别名机制8
1.3.1使用DatabaseDesktop创建别名8
1.3.2使用SQLExplorer创建别名9
1.4数据库查询语言SQL11
1.4.1SELECT命令11
1.4.2UPDATE命令15
第2章设计主菜单并录入学生档案信息16
2.1学生档案管理系统的菜单设计17
2.2学生档案管理系统数据录入的界面设置18
2.2.1第一步:
新建一个窗体并与主菜单连接起来19
2.2.2第二步:
设置“学生档案管理系统”的学生档案录入窗口的界面20
2.3编写学生档案录入窗口的相关程序21
2.4查找学生档案信息并修改或删除窗口的设计27
2.4.1第一步:
新建一个窗体并与主菜单连接起来27
2.4.2第二步:
设置查找学生档案信息并修改或删除窗口的界面28
2.4.3第三步:
“查找学生档案信息并修改或删除窗口”的程序设计29
3.1按照学号从小到大的顺序打印学生档案信息32
3.1.1第一步:
设置“按照学号从小到大的顺序打印学生档案信息”32
的窗体界面和报表格式32
3.1.2第二步:
编写打印学生档案信息窗口的程序34
3.2统计并打印某个班级的男生和女生数目36
3.2.1第一步:
设置“统计并打印某个班级的男生和女生数目”的窗体界面和报表格式36
3.2.2第二步:
编写统计并打印某个班级的男生和女生数目窗口的程序37
第4章维护数据库中的数据39
4.1添加一个新班级39
4.1.1第一步:
设置“添加一个新班级”的窗体40
4.1.2第二步:
编写“添加一个新班级”窗口的程序42
4.2删除一个老班级46
4.2.1第一步:
设置“删除一个老班级”的窗体界面46
4.2.2第二步:
编写“删除一个老班级窗口”的程序48
4.3修改班级名称50
4.3.1第一步:
设置“修改班级名称”的窗体界面50
4.3.2第二步:
编写修改班级名称窗口的程序52
第5章数据库软件的包装54
5.1为学生档案管理系统添加封面54
5.1.1第一步:
设置封面的窗口界面55
5.1.2第二步:
设计显示封面窗口的程序56
5.2设计学生档案管理系统的“关于”窗口57
5.2.1第一步:
设置封面的窗口界面57
5.2.2第二步:
设计显示封面窗口的程序59
5.3制作学生档案管理系统的工具栏和状态栏59
5.3.1第一步:
在主窗体上制作工具栏59
5.3.2第二步:
在主窗体上制作状态栏61
5.4制作学生档案管理系统的安装程序63
5.4.1第一步:
启动安装程序64
5.4.2第二步:
设置SettheVisualDesign(设置可视化界面)栏64
5.4.3第三步:
设置SpecifyComponentsandFiles(特殊组件和文件)栏66
5.4.4第四步:
设置SelectUserInterfaceComponents(选择用户界面组件)栏68
5.4.5第五步:
设置SelectInstallShieldObjectsforDelphi5(为Delphi5选择安装目标)栏69
5.4.6第六步:
设置MakeRegisteryChange(制作注册表表项)栏70
5.4.7第七步:
设置SpecifyFoldersandIcons(指定文件夹和图标)栏70
5.4.8第八步:
设置DiskBuilder(生成磁盘)栏71
5.4.9第九步:
设置TesttheInstallation(测试安装)栏72
5.4.10第十步:
设置CreateDistributionMedia(创建分发媒介)栏72
6.2程序运行异常的处理72
6.2.1异常的产生73
6.2.2异常处理语句74
6.3输出数据到Excel和Word77
6.3.1第一步:
设置窗体界面78
6.3.2第二步:
设计各个事件的程序代码80
6.4在程序中自动建立别名84
6.4.1定义和检测数据库别名的主要思路85
6.4.2定义和检测数据库的主要思路85
6.4.3自动检测和创建数据库别名和表格的界面设计和程序设计86
第1章数据库开发技术基础
Delphi是由INPRISE公司开发的可视化快速应用程序开发工具,无论是开发数据库还是国际互联网的应用程序,使用它都能轻易地完成。
特别是在数据库程序开发方面,Delphi有着更为强大的功能。
1.1我们的学习任务
对于大多数学生,最熟悉的管理环境就是对学校的管理。
现在就让我们着手设计一个“学生档案管理系统”,并以此为案例来学习Delphi的编程技术。
使用Delphi数据库技术来设计和制作管理软件,最主要的就是把需求软件的部门的管理工作流程和我们要设计的管理程序的工作流程统一起来,否则,就会产生一个没有实用价值的软件。
在每一个学校,“学生档案管理系统”的管理思想对每一个学生来说并不陌生,并不需要我们重新去了解和学习。
这样,在学习设计和制作“学生档案管理系统”的过程中,我们的注意力主要集中在窗口界面的设计和程序代码的设计上面,并密切注意程序的设计思想跟学校的档案管理思想是否一致以及如何一致。
当然,我们设计制作的“学生档案管理系统”只是一个学习的案例,不可能把Delphi的所有知识都包含进来,但既然你能设计这套系统软件,相信其他软件也不会难住你,而且一定会越做越好。
一般来说,“学生档案管理系统”应该包括的方面有:
学生档案的信息录入;档案查询后的修改和删除;查询、打印每个班级的所有学生的档案信息,统计、打印每个班级的男生和女生人数;对班级数据的维护;整个软件的美化设置;最后要形成一个安装程序提供给用户安装使用。
根据实际需要,我们把整个管理系统分成了4个模块:
录入学生档案信息模块;打印学生档案信息模块;学生档案信息维护模块;退出档案管理系统模块。
下面就分别介绍我们将要设计制作的“学生档案管理系统”的主窗口、各个模块的功能和用户界面。
“学生档案管理系统”启动以后的主窗口如图1.1所示。
在“学生档案管理系统”主窗口的上方,我们可以看到有4个主菜单,对应着4个功能模块,接着是拥有9个快捷按钮的工具栏,中间是子窗口的显示区域,最下面是管理系统的状态栏,显示出系统的当前状态、日期、时间。
对应着4个主菜单的4个功能模块分别是:
录入学生档案信息模块;打印学生档案信息模块;学生档案信息维护模块;退出档案管理系统模块。
1.1.1录入学生档案信息模块
录入学生档案信息模块的主要功能是能够让用户把学生的档案信息通过键盘录入到数据表长期保存,这个功能是由“把学生的档案信息录入到数据表”子菜单来实现的。
如果录入的档案信息有错误,可以直接通过学号查询到这个学生的档案信息并进行修改,对于已经转学或者毕业的学生,可以通过学号查询到对应的档案信息,这个功能是由“查找学生档案信息并修改或删除”子菜单实现的。
双击主菜单“录入学生档案信息”,在弹出的子菜单中找到“把学生的档案信息录入到数据表”后单击,弹出“学生档案录入窗口”,如图1.2所示。
在这个窗口可以直接录入的档案信息有学号、姓名、年龄、电话、住址,可以选择的档案信息有性别和班级。
录入档案信息后单击“确定”按钮,就可以把这些档案信息保存到数据表中。
录入结束后可以单击“关闭”按钮关闭这个窗口。
通过主菜单“录入学生档案信息”找到子菜单“查找学生档案信息并修改或删除”后单击,弹出“查找学生档案信息并修改或删除窗口”,如图1.3所示。
在这个窗口中输入某个学生的学号,单击“查找”按钮,如果数据表中不存在这个学生的档案信息,系统会显示出相应的提示;如果数据表中存在这个学生的档案信息,该学生的档案信息就会显示在窗口中对应的信息栏内。
用户可以修改这些信息,然后单击“修改”按钮,结果保存到数据表中,也可以单击“删除”按钮直接从数据表中删除这个学生的档案信息。
单击“关闭”按钮就可以关闭这个窗口了。
1.1.2打印学生档案信息模块
打印学生档案信息模块的主要功能是能够让用户把学生的档案信息和统计信息直接输出到打印机上,不需要用户重新排版,从而节省了用户的工作量。
打印某个班级的学生档案信息是由“按照学号从小到大的顺序打印学生档案信息”子菜单来实现的,统计打印男生女生数目的功能是由“统计并打印某个班级的男生和女生数目”子菜单实现的。
通过主菜单“打印学生档案信息”找到子菜单“按照学号从小到大的顺序打印学生档案信息”后单击,弹出“按照学号从小到大的顺序打印学生档案信息窗口”,如图1.4所示。
从班级组合框列表中选择某个班级后,“打印预览”和“联机打印”按钮变为可以执行的,单击其中“打印预览”按钮,实现预览报表功能。
打印预览报表的形式如图1.5所示。
单击“联机打印”按钮,报表直接输出到打印机上(计算机要与打印机连接并接通电源)。
单击“退出”按钮可以关闭这个窗口。
通过主菜单“打印学生档案信息”找到子菜单“统计并打印某个班级的男生和女生数目”后单击,弹出“统计并打印某个班级的男生和女生数目窗口”,如图1.6所示。
从班级组合框列表中选择某个班级后,“统计预览”和“统计打印”按钮变为可以执行的,单击其中“统
计预览”按钮,实现统计预览报表功能,统计预览报表的形式如图1.7所示。
单击“统计打印”按钮,统计报表直接输出到打印机上。
单击“退出”按钮可以关闭这个窗口。
1.1.3学生档案信息维护模块
学生档案信息维护模块的主要功能是能够在新学期开始的时候添加一个新班级,这个功能是由“添加一个新班级”菜单实现的。
当某个班级的学生档案不需要再保存的时候,能够删除这个班级和班级中全部学生的档案信息,这个功能是由“删除一个老班级”菜单实现的。
在录入班级名称的时候如果有错误,允许用户自己修改这个班级的名称并且一同在学生档案中改正过来,这个功能是由“修改班级名称”菜单实现的。
通过主菜单“学生档案信息维护”,找到子菜单“添加一个新班级”后单击,弹出“添加一个新班级窗口”,如图1.8所示。
在班级编辑框中输入新班级的名称,“添加”按钮变为可执行的,单击“添加”按钮,就可以把新班级名称保存到数据表。
添加新班级的结果可以从下面的班级组合框列表中看到。
单击“退出”按钮可以关闭这个窗口。
在“学生档案信息维护”子菜单中,还设有“删除一个老班级窗口”、“修改班级名称”,单击它们,可分别弹出如图1.9和图1.10所示的窗口。
与前面叙述的操作类似,可以删除某个班级信息或者修改某班级名称。
1.1.4退出档案管理系统模块
退出管理系统并返回到Windows模块的主要功能是退出管理系统并返回到Windows,这个功能是由“关于…”菜单实现的。
通过主菜单“退出档案管理系统”找到子菜单“关于…”后单击,弹出“关于…”窗口,如图1.11所示,窗口中显示出当前计算机的内存容量和利用率、制作单位、电子邮件地址、版权等信息。
单击“确定”按钮关闭这个窗口。
本节最后,我们要特别提请读者注意,在编写“学生档案管理系统”的过程中,需要保存数据表和编写的程序代码,所以我们要使用操作系统中的“Windows资源管理器”或者“我的计算机”在计算机的D盘上建立两个文件夹d:
\publicdatabase和d:
\xueshengguanli,其中文件夹d:
\publicdatabase用来保存“学生档案管理系统”的数据表,文件夹d:
\xueshengguanli用来保存我们要编写的“学生档案管理系统”的Delphi程序。
当然,也可以保存在其他的文件夹下面,不过,在编写程序的过程中一定要始终记住所建立的文件夹的名称和位置。
1.2数据库的基本概念
在制作“学生档案管理系统”时,首先要建立起若干数据表,用来存放学生的档案信息。
数据表是数据库的基本组成元素,也就是我们常见的表格,如图1.12那样。
若干数据表按一定关系组合在一起便构成了数据库。
我们使用Delphi自带的工具——数据库桌面(Desktop)来设计“学生档案管理系统”中使用的数据表,并输入几条记录。
“学生档案管理系统”中使用的数据库中包含两个数据表:
学生档案信息数据表students.db和班级数据表classes.db。
其中数据表students.db存放某个学校所有班级的全部学生的档案信息,数据表classes.db存放这个学校的班级信息。
这两个表的形式如图1.12和图13所示。
1.2.1使用DatabaseDesktop创建表
在学习数据库编程之前,我们需要学习一些与数据库有关的几个概念,比如数据库、字段、记录等。
所谓的数据库是一种比喻的说法,数据好比一些货物,而数据库就是存放这些货物的一个仓库,也就是说数据库是一个统一保存数据并加以管理的系统。
一般来说,数据库应该包含3个部分的内容。
(1)数据表:
数据表就是一组相关的数据按行排列成的一张表格。
比如把一个班所有学生的档案信息存放在一个表中,每一行对应一名学生,称为一条记录。
在一条记录中,包括学生的学号、姓名以及年龄等许多的列,每一列称为一个字段。
每一个字段都有相应的描述信息,如数据类型、数据宽度等。
(2)各种硬件存储介质:
存储介质简单地说就是我们计算机上的硬盘、软盘等存储数据表和程序的存储介质。
(3)处理数据库的各种软件:
处理数据库的软件,也就是我们在本课程要设计和制作的学生档案管理软件,它能对数据进行有效和安全的管理。
下面,我们使用DeskTop程序来创建学生档案信息表students.db,并保存在文件夹D:
\publicdatabas
(1)启动Delphi5.0,从“Tools”菜单中选择“DatabaseDesktop”命令,Desktop程序启动后,出现如图1.14所示的界面。
(2)从DatabaseDesktop的“File”菜单中选择“New”命令,DatabaseDesktop显示出另一个子菜单。
因为要创建一个新表,所以从子菜单中选择“Table”命令。
DatabaseDesktop显示如图1.15所示的设置表类型的对话框,我们使用它的默认值Paradox7。
注:
如果单击TableType组合框中的向下箭头按钮,则显示若干可选择的表类型。
实际上,选择任意类型的表都可以,Delphi可以使用所有类型的表。
为简单起见,这里选用默认值为Paradox7类型的表。
(3)单击TableType对话框中的“OK”按钮,DatabaseDesktop弹出CreateParadox7Table:
(Untitled)对话框,如图1.16所示。
下面我们用CreateParadox7Table:
(Untitled)对话框来构造表1.12所示的学生档案信息数据表students.db。
①单击FieldName下面的一行,并输入xuehao,这是指定第一个字段的名称为学号。
②用鼠标或按键盘的Tab按键将光标移到Type栏下,然后右击鼠标,DatabaseDesktop
显示一个具有多种数据类型的菜单,如图1.17所示。
因为学号字段的类型为字符型,所以选择Alpha项。
这个菜单中常用数据类型的含义如表1.1所示。
③移动光标到Size栏,输入8。
④移动光标到Key栏,双击鼠标或按键盘的空格键,DatabaseDesktop在Key栏放置一个“*”号,这表示xuehao字段是一个关键字段。
关键字段的特征是保证数据表中该字段的
1.2.2使用DatabaseDesktop向表中输入数据
一般地,可以通过编写一个程序来向数据表Students.db和数据表classes.db中输入数据,在下章中将学习怎样创建这样的程序。
但在本节,首先学习怎样使用DatabaseDesktop向表中直接输入数据。
(1)从DatabaseDesktop的“File”菜单中选择“Open”命令,然后从弹出的菜单中选择Table命令,DatabaseDesktop显示出OpenTable对话框,如图1.19所示。
(3)从DatabaseDesktop的“Table”菜单中选择“EditData”命令,DatabaseDesktop
将数据表students.db置于编辑模式下,这样就可以向数据表students.db中输入记录了。
(4)向数据表students.db中输入表1.4中的数据,若要向一个字段输入数据,则单击该字段,然后输入数据。
也可以用键盘上的光标键把光标从一个字段移到另一个字段,从一个记录移到另一个记录。
表1.4要向数据表students.db中输入的记录数据
注意:
我们并不需要保存向数据表students.db中输入的数据,因为当我们完成任何一个记录的输入操作或修改操作时,只要把光标从当前记录移到另一个记录,DatabaseDesktop就自动保存了这些记录的数据。
输入完所有记录的数据以后,数据表students.db的形式如图1.21所示。
关闭第一个数据表students.db,使用同样的方法向第二个数据表classes.db中输入表1.5中的记录数据。
输入完所有的记录后,数据表classes.db的形式如图1.22所示。
表1.5要向数据表classes.db中输入的记录数据
1.3数据库别名机制
在上一节创建数据表的过程中,需要保存数据表。
在保存之前,总是要选择保存数据表的路径。
其实,在以后编写应用程序的时候,经常需要输入或者选择这个路径。
比如Table控件、Query控件等许多控件的Databasename属性是经常要用到的,如果在这儿直接输入数据表的路径是很不方便的,而且也很容易出错。
为此,Delphi为数据库提供了别名机制。
实际上,数据库别名就是数据表存放的工作目录,它就是这个工作目录的一个“绰号”。
选择了这个“绰号”就等于选择了这个工作目录。
给工作目录赋予一个别名是良好的编程习惯。
因为在编程时,常常需要输入工作目录,而设置一个别名后,就可以简单地输入别名或者选择别名来代替很长的工作目录名。
而且,在某种情况下,比如要改变工作目录,只改变别名的赋值就可以实现了。
1.3.1使用DatabaseDesktop创建别名
现在使用DataBaseDesktop来为工作目录D:
\publicdatabase赋予一个别名stumanager.
(1)启动DatabaseDesktop,从DatabaseDesktop的“Tools”菜单中选择“AliasManager”
命令,单击鼠标。
DatabaseDesktop显示出AliasManager对话框,如图1.23所示。
使用AliasManager对话框,给D:
\publicdatabase工作目录设置别名。
(2)在Path编辑框中输入D:
\publicdatabase,建立新的别名,单击“New”按钮。
现在DatabaseDesktop的Databasealias编辑框等待输入一个新的别名,在Databasealias编辑框中输入stumanager,现在AliasManager对话框的样式如图1.24所示。
(3)在AliasManager对话框中单击“OK”按钮,DatabaseDesktop显示出PublicAliasesHaveChanged对话框,如图1.25所示。
在这个对话框中单击“是”按钮,新别名的设置被保存在配置文件IDAPI.CFG中。
IDAPI.CFG配置文件是专门用来存放别名的。
注意:
在PublicAliasesHaveChanged对话框中,如果单击“否”按钮,那么新别名的设置将不被保存。
如果单击“取消”按钮,DatabaseDesktop将返回到AliasManager对话框。
(4)这样,数据库别名stumanager的创建就完成了。
如果想看看刚才创建的别名,就再次从DatabaseDesktop的“Tools”菜单中选择“AliasManager”命令。
DatabaseDesktop显示出AliasManager对话框,单击这个对话框的Databasealias编辑组合框右边的下拉箭头,可以看到已经创建完成的别名stumanager,如图1.26所示。
1.3.2使用SQLExplorer创建别名
使用DatabaseDesktop创建别名并不是很直观,现在使用SQLExplorer来为工作目录D:
\publicdatabase赋予一个别名xuesheng。
同时会看到,同一个工作目录可以有许多个不同名称的别名。
(1)从Delphi的“Database”菜单中选择“Explorer”命令,单击鼠标,启动SQLExplorer
程序。
SQLExplorer程序启动完毕后的窗口如图1.27所示。
(2)把鼠标指向Databases并单击鼠标右键,SQLExplorer会出现一个快捷菜单,如图1.28所示。
选择“New…”命令单击鼠标后就会出现“NewDatabaseAlias”对话框,如图1.29所示。
单击DatabaseDriverName所对应的下拉列表,有许多类型的驱动程序,选择其默认值STANDARD。
(3)单击图1.29中的“OK”按钮,SQLExplorer创建了一个默认值为STANDARD1的别名,如图1.30所示。
要想创建别名xuesheng,需要修改STANDARD1为xuesheng。
修改的方法和在“Windows资源管理器”中修改文件名的操作方法完全相同。
(4)窗口右侧的Definition标签中有一个PATH的属性,PATH属性右侧有一个带三个点的按钮,单击此按钮后出现如图1.31所示的“SelectDirectory”对话框。
选择Drivers对应的列表框为硬盘D,选择Directories对应的目录树为D:
\publicdatabase,然后单击“OK”按钮。
(5)这时的SQLExplorer窗口如图1.32所示。
(6)虽然设置好了别名的PATH属性,但是这些设置并没有保存。
把鼠标指向别名xuesheng,单击右键,SQLExplorer会出现一个快捷菜单,如图1.33所示。
选择“Apply”命令后SQLExplorer出现confirm对话框,如图1.34所示,询问是否保存设置,单击“OK”按钮保存。
很显然,别名xuesheng创建完成了。
那么,平时应该使用哪一个方法来创建数据库别名呢?
其实这两种方法都可以安全、方便地创建数据库别名,具体使用哪一种创建方法可因习惯而定。
1.4数据库查询语言SQL
要编写一个好的数据库应用程序,除了要使用Delphi所提供的组件外,还要经常使用数据库查询语言SQL(StructuredQueryLanguage)。
SQL是一种非程序语言,使用SQL语言通常不需要指定对数据的存取方法,而只关心要得到什么结果。
SQL语言的命令个数很少,学起来也比较容易入门。
1.4.1SELE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实例
![提示](https://static.bdocx.com/images/bang_tan.gif)