描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302450580丛书名: 21世纪高等学校规划教材·计算机应用
本书遵循定义、解析、例题和图示结果的逻辑,即一问,一答,一题一结果,由表及里的教学模式,便于读者加强对知识的掌握与理解。书中实例内容具体,过程详尽,操作性强,既能方便教师组织实验教学,又能引导读者自主学习,促进读者对知识的理解与学习效果的检验。并有开放式的课程教学网站http://www.cmu.edu.cn/computer和与教材配套的实验指导及习题集提供支持。
本书适合非计算机专业的学生和初学者学习,既可作为普通高等院校Visual FoxPro课程的教材,又可作为全国NCRE二级考试的辅导教材,还可作为专业技术人员的参考用书。
目录
第1章数据库系统基础知识
1.1数据处理与数据管理技术
1.1.1信息、数据与数据处理
1.1.2数据管理技术的发展
1.1.3数据库系统的相关概念
1.1.4数据库系统的特点
1.2数据模型
1.2.1相关概念
1.2.2实体之间的联系
1.2.3实体联系的表示方法
1.2.4数据模型简介
1.3关系数据库
1.3.1关系的基本概念
1.3.2关系的基本运算
1.4关系完整性约束
1.5Visual FoxPro系统概述
1.5.1Visual FoxPro 6.0简介
1.5.2Visual FoxPro 6.0的功能
1.5.3Visual FoxPro 6.0的特点
1.5.4Visual FoxPro 6.0的安装与启动
1.5.5Visual FoxPro 6.0的集成开发环境
1.5.6Visual FoxPro 6.0的主窗口
1.5.7Visual FoxPro 6.0的工具栏
1.5.8Visual FoxPro 6.0的配置
1.5.9Visual FoxPro 6.0常用文件类型
1.5.10Visual FoxPro 6.0的一些规则
本章小结
第2章Visual FoxPro中的数据与运算
2.1Visual FoxPro中的常量与变量
2.1.1Visual FoxPro中的常量
2.1.2Visual FoxPro中的变量
2.2Visual FoxPro中的表达式
2.2.1数值表达式
2.2.2字符表达式
2.2.3日期时间表达式
2.2.4关系表达式
2.2.5逻辑表达式
2.2.6表达式的优先级
2.3Visual FoxPro中的函数
2.3.1数值函数
2.3.2字符函数
2.3.3日期时间函数
2.3.4类型转换函数
2.3.5测试函数
2.3.6表操作函数
2.3.7系统函数
本章小结
第3章Visual FoxPro中的程序设计
3.1程序设计简介
3.1.1程序文件
3.1.2程序的建立及运行
3.1.3交互式输入语句
3.1.4输出与注释语句
3.2程序结构设计
3.2.1顺序结构设计
3.2.2分支(选择)结构设计
3.2.3循环结构设计
3.3模块化程序设计
3.3.1子程序的建立与调用
3.3.2过程的建立与调用
3.3.3内存变量的作用域
3.3.4过程调用中的参数传递
本章小结
第4章Visual FoxPro中自由表的常规操作
4.1表结构与表文件的常规操作
4.1.1表结构的创建与修改
4.1.2打开、关闭表文件
4.2表记录的基本操作
4.2.1浏览表
4.2.2增加记录
4.2.3删除记录
4.2.4显示记录
4.2.5定位记录指针
4.2.6修改记录
4.3索引
4.3.1索引的基本概念
4.3.2建立索引文件
4.3.3打开索引文件
4.3.4指定主控索引
4.3.5使用索引快速定位
4.4多表操作
4.4.1工作区与多个表
4.4.2表间的临时关联
本章小结
第5章Visual FoxPro中数据库与数据库表的操作
5.1数据库的基本操作
5.1.1数据库的建立、打开与关闭
5.1.2数据库的修改与删除
5.2数据库表的操作
5.2.1创建数据库表
5.2.2数据库表设计器的使用
5.2.3数据库表与自由表之间的转换
5.3数据库表间的关联与数据完整性
5.3.1数据库表间的永久关联
5.3.2数据完整性
本章小结
第6章结构化查询语言SQL
6.1SQL概述
6.2表结构操作
6.2.1定义(创建)表结构
6.2.2修改表结构
6.2.3建立视图
6.2.4删除数据库
6.2.5删除表
6.3表记录操作
6.3.1插入记录
6.3.2更新记录
6.3.3删除记录
6.4SQL的数据查询
6.4.1基本查询
6.4.2带条件(WHERE)的查询
6.4.3连接查询
6.4.4嵌套查询
6.4.5计算查询
6.4.6分组与排序查询
6.4.7集合查询
6.4.8量词和谓词查询
6.4.9空值查询
6.4.10查询去向
本章小结
第7章Visual FoxPro中的视图与查询
7.1视图设计与应用
7.1.1使用本地视图向导创建本地视图
7.1.2使用视图设计器创建本地视图
7.1.3使用视图的有关操作
7.1.4远程视图与连接
7.2查询设计与应用
7.2.1使用查询向导创建查询
7.2.2使用查询设计器创建查询
7.2.3查询设计的运行与修改
7.3视图与查询的特点及区别
7.3.1视图的特点
7.3.2查询的特点
7.3.3视图和查询的区别
本章小结
第8章Visual FoxPro中表单的应用
8.1面向对象程序设计的概念
8.1.1对象与类
8.1.2属性、事件与方法
8.2创建表单
8.2.1表单的基本操作
8.2.2使用表单向导
8.2.3使用表单设计器
8.3表单控件
8.3.1标签
8.3.2文本框
8.3.3编辑框
8.3.4命令按钮
8.3.5命令按钮组
8.3.6复选框
8.3.7选项按钮组
8.3.8列表框
8.3.9组合框
8.3.10表格
8.3.11计时器
8.3.12微调控件
8.4自定义类
8.4.1创建与修改类
8.4.2自定义类的使用
本章小结
第9章Visual FoxPro中菜单的设计与应用
9.1系统菜单的设计
9.2下拉式菜单的设计
9.2.1菜单设计器的使用
9.2.2表单顶层菜单的设计
9.3快捷菜单的设计
本章小结
第10章Visual FoxPro中报表的设计与应用
10.1报表向导
10.1.1单表报表向导
10.1.2一对多报表向导
10.2报表设计器
10.2.1报表的布局
10.2.2报表工具栏
10.2.3报表数据环境
10.3快速报表
10.4分组报表和分栏报表
10.4.1分组报表
10.4.2分栏报表
10.5报表输出
10.5.1报表的页面设置
10.5.2报表预览与打印
本章小结
第11章Visual FoxPro中项目管理器的应用
11.1数据库应用系统开发的基本步骤
11.2项目管理器的使用
11.2.1项目管理器的概念
11.2.2项目的创建与保存
11.2.3项目管理器窗口介绍
11.2.4项目管理器对文件的管理
11.3应用系统的主程序设计及应用程序的连编
11.3.1应用系统的主程序设计
11.3.2应用程序的连编
本章小结
第12章二级公共基础知识
12.1算法与数据结构
12.1.1算法
12.1.2数据结构
12.1.3线性表
12.1.4栈和队列
12.1.5链表
12.1.6树与二叉树
12.1.7查找技术
12.1.8排序技术
12.2软件工程基础
12.2.1软件工程的基本概念
12.2.2结构化分析方法
12.2.3结构化设计方法
12.2.4软件测试
12.2.5程序的调试
本章小结
参考文献
学习Visual FoxPro,不仅是为了创建和管理数据库,而且还为了能够直接使用它编制数据库信息系统,同时树立良好的编程思想。本书的编写依据最新的NCRE考试二级大纲,遵循定义、解析、例题和图示结果的逻辑。本书融入了混合教学模式的理念,克服传统教学模式存在的弊端,同时编写了配套的实验指导教材,旨在提高学生自主学习和运用知识的能力,加强其综合素质的培养。本书涵盖了《全国高等学校非计算机专业学生计算机基础知识和应用能力等级考试大纲》(即NCRE考试大纲)规定的“二级Visual FoxPro考试要求”的全部知识点。全书共12章,第1章数据库系统基础知识由娄岩编写,第2章Visual FoxPro中的数据与运算由庞东兴编写,第3章Visual FoxPro中的程序设计由刘尚辉编写,第4章Visual FoxPro中自由表的常规操作由郑璐编写,第5章Visual FoxPro中数据库与数据库表的操作由马瑾编写,第6章结构化查询语言SQL由徐东雨编写,第7章Visual FoxPro中的视图与查询由曹阳编写,第8章Visual FoxPro中表单的应用由张志常编写,第9章Visual FoxPro中菜单的设计与应用由李静编写,第10章Visual FoxPro中报表的设计与应用由霍妍编写,第11章Visual FoxPro中项目管理器的应用由郑琳琳编写,第12章二级公共基础知识由王艳华编写,书中的例题全部来源于二级考试真题,有助于读者了解题型、出题方向,学好知识的同时为考试做好准备。本书适合非计算机专业的学生和初学者,既可作为普通高等院校Visual FoxPro课程的教材,又可作为全国NCRE二级考试的辅导教材,还可作为专业技术人员的参考用书。全书由娄岩教授担任主编。他合理组织、积极协调。他带领的参编团队成员长期从事一线教学工作,具备丰富的教学经验,编写过多部Visual FoxPro教材,为成功编写此书奠定了坚实的基础。清华大学出版社对本书的出版做了精心策划,充分论证。在此向所有参编人员以及帮助和指导过我们工作的朋友们表示衷心的感谢!由于编者水平有限,加之时间仓促,书中难免存在疏漏之处,恳请广大读者批评指正。娄岩2016年6月
5.1数据库的基本操作
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库具有能为多个用户共享、减少数据的冗余度等特点,是与应用程序彼此独立的数据集合。本章使用的表包括xs.dbf,cj.dbf和xsjy.dbf。5.1.1数据库的建立、打开与关闭1. 建立数据库
1) 命令方式【格式】CREATE DATABASE [] 【功能】建立一个数据库文件,同时打开该数据库。【说明】可以包括盘符和路径名,此时将按指定的磁盘和文件路径保存为数据库文件。数据库文件的扩展名为.dbc。建立数据库文件的同时也自动建立相关联的数据库备注文件,扩展名为.dct,关联的索引文件扩展名为.dcx。【例51】创建数据库“数据1”,同时打开该数据库。
CREATE DATABASE数据1
2) 菜单方式执行“文件”|“新建”命令,在弹出的“新建”对话框中选择“数据库”单选按钮,单击“新建文件”按钮,弹出“创建”对话框,确定需要建立数据库的路径和数据库文件名,单击“保存”按钮后,打开数据库的同时将打开如图51所示的数据库设计器。
图51数据库设计器
2. 打开数据库1) 命令方式【格式】OPEN DATABASE [] 【功能】打开磁盘上指定的数据库文件。【说明】打开一个数据库文件的同时,与其同名的.dct(数据库备份文件)与.dcx(索引文件)也一起被打开。数据库打开后,在“常用”工具栏中可以看见当前正在使用的数据库名,同时当数据库设计器为当前窗口时,系统菜单上出现“数据库”菜单项。2) 菜单方式执行“文件”|“打开”命令,在弹出的“打开”对话框中选择文件类型为“数据库”,选择数据库文件所在的文件夹。选中要打开的数据库文件,单击“确定”按钮即可打开该数据库文件。这种方式在打开数据库的同时,也可以修改数据库。3. 关闭数据库1) 命令方式【格式】CLOSE DATABASE 【功能】关闭当前打开的数据库及其包含的所有文件。2) 使用项目管理器打开已建立的项目文件,出现项目管理器窗口,选择“数据”选项卡,选择“数据库”下需要关闭的数据库名,然后单击“关闭”按钮,则在“常用”工具栏上的“当前数据库”下拉列表框中该数据库名消失。同时在项目管理器中“关闭”按钮变成“打开”按钮。5.1.2数据库的修改与删除1. 修改数据库
1) 命令方式【格式】MODIFY DATABASE 【功能】修改当前打开的数据库文件。【说明】执行该命令后系统将打开数据库设计器,修改数据库。2) 菜单方式用菜单方式打开数据库的同时就打开了数据库设计器,可以对数据库进行修改。2. 删除数据库1) 命令方式【格式】DELETE DATABASE [] 【功能】从磁盘上删除一个数据库文件。【说明】Visual FoxPro的数据库文件并不真正含有数据库表或其他数据库对象,只是在数据库文件中保存了相关的条目信息,表或其他数据库对象是独立存放在磁盘上的。数据库中的表在数据库中被删除后成为自由表。在删除数据库时该数据库必须处于关闭状态。2) 使用项目管理器打开已建立的项目文件,弹出项目管理器窗口,选择“数据”选项卡,选择要删除的“数据库”,然后单击“移去”按钮,弹出如图52所示的对话框,若单击“移去”按钮则仅将数据库从项目中移去,若单击“删除”按钮将数据库从磁盘上删除。
图52“删除数据库”对话框
5.2数据库表的操作
数据库表是数据库的基本组成部分,是处理数据和建立关系型数据库及应用程序的基本单元。Visual FoxPro的表分为两种: 从属于某个数据库的数据库表和不从属于数据库的自由表。如果建立表时数据库是打开的,则建立的表为当前数据库的数据库表,否则建立的是自由表。两者的大多数操作相同且可以相互转换。但当一个表是数据库表时,它就可以具有以下特性。 长表名和表中的长字段名。 表中字段的标题和注释。 默认值、输入掩码和表中字段格式化。 字段级规则和记录级规则。 表字段的默认控件类。 支持参照完整性的主关键字索引和表间关系。 INSERT、UPDATE或DELETE事件的触发器。5.2.1创建数据库表数据库表的建立与自由表的建立方法基本相同,需要注意的是,建立数据库表之前要打开从属的数据库。1. 用命令方式建立数据库表操作步骤如下。(1) 首先打开数据库,在命令窗口中输入“OPEN DATABASE数据1”,打开数据库。(2) 在命令窗口中输入“CREATE表1”后按Enter键,弹出“表设计器”对话框,设置字段名、类型、宽度等属性,如图53所示。
图53“表设计器”对话框
2. 用快捷菜单建立数据库表操作步骤如下。(1) 用菜单方式打开数据库。(2) 在数据库设计器内空白处右击,在弹出的快捷菜单中执行“新建表”命令。(3) 在“新建表”对话框中单击“新建表”按钮。(4) 选择保存路径和表文件名,单击“确定”按钮,弹出“表设计器”对话框,设置字段名、类型、宽度等属性。5.2.2数据库表设计器的使用数据库表的“表设计器”对话框中包含“字段”、“索引”、“表”3个选项卡。1. “字段”选项卡适用于建立表结构,确定表中每个字段的字段名、字段类型、字段宽度和小数位等。与自由表不同的是,“字段”选项卡下面还有显示、字段有效性等属性。(1) 格式: 控制字段在浏览窗口、表单、报表等显示时的样式,它决定了字段的显示风格。格式字符及功能如表51所示。
表51字段的显示格式字符
字符功能字符功能A字母字符,不允许空格和标点符号R显示文本框的格式掩码,但不保存到字段中D使用当前的SET DATA格式T删除前导空格和结尾空格E英国日期格式!字母字符转换成大写K光标移至该字段选择所有内容M使用Space键循环选择固定的字段内容L用0代替数值前面的空格$显示货币符号
(2) 输入掩码: 控制输入字符的数据格式,屏蔽非法内容的输入,从而减少人为的数据输入错误,保证输入的字段数据具有统一的风格,提高输入的效率。掩码字符及功能如表52所示。
表52掩码字符及功能
字符功能字符功能X允许输出任意字符*左侧显示*9数字字符和 -号.指定小数点位置#数字字符, -号和空格,用逗号分隔整数部分$指定位置显示货币符号$$货币符号与数字不分开显示
(3) 标题: 虽然在数据库表中允许字段名最多使用128个字符,即长字段名,但使用时可能会很不方便。所以当表结构中字段名用的是英文时,可以在标题中输入汉字,这样显示该字段值时就比较直观。若没有设置标题,则将表结构中的字段名作为字段的标题。(4) 字段注释: 在数据库表中可以为每个字段加上一些详细的注解,或一些说明性的文字,使得数据表更容易理解,也便于日后对数据表进行维护。【例52】创建数据库“学生库.dbc”,将自由表xs.dbf添加进该数据库,设置xs.dbf的字段显示属性,用户能够使用Space键在性别字段中循环选择“男,女”中的任一个值作为学生的性别。操作步骤如下。(1) 创建数据库“学生库.dbc”,添加xs.dbf,打开xs.dbf表设计器,选择“字段”选项卡,选中xb字段,在“显示”属性的下方的“格式”右侧输入: m,在“输入掩码”右侧输入: 男,女。(2) 在“显示”属性的下方的“标题”右侧输入xb字段的中文名: 性别。结果如图54所示。
图54字段显示属性的设置
(3) 单击“确定”按钮。执行“显示”|“浏览‘xs’”命令,光标定位到xb字段,按Space键可以在性别字段中循环选择“男,女”中的一个值作为学生的性别。2. “索引”选项卡用于创建结构复合索引。与自由表只有3种索引类型不同,数据库表有4种索引类型,增加了一个“主索引”。只有数据库表才能建立主索引,每一个数据库表只能建立一个主索引。此外,只能由主关键字段来建立主索引,主关键字段的特点是不允许出现重复,也不能设置为空值(NULL),如图55所示。
图55索引的设置
【例53】为数据库表xs.dbf按xh升序建立主索引。操作步骤如下。(1) 打开xs.dbf。(2) 为xh字段添加升序索引,如图56所示。
图56添加索引
(3) 在“索引名”下方的文本框中输入索引名,例如“学号”(也可以是xh等),在“类型”下拉列表框中选择“主索引”。(4) 单击“表达式”右侧带省略号的生成器按钮,弹出“表达式生成器”对话框,在“表达式生成器”对话框的“表达式”文本框中输入索引表达式。输入表达式时,可以通过在“字段”列表框中双击所需要的字段,如xh,如图57所示。
图57设置“表达式生成器”对话框
(5) 单击“确定”按钮,完成表达式的输入,返回“表设计器”对话框中。(6) 再单击“确定”按钮。在使用时需将设置好的xh索引指定为主控索引,才能看到索引后的结果。3. “表”选项卡在“表”选项卡中,可以看到数据库及数据库表的相关信息,并对表的记录属性进行描述,能通过记录有效性和触发器控制记录数据,如图58所示。
图58“表”选项卡
其中,触发器是指在数据库表中对记录进行插入、更新、删除等操作时,系统对触发器设置的条件表达式进行验证,若其值为真(.T.),则允许进行相关操作,否则拒绝操作。(1) 插入触发器: 当向表中插入或追加记录时,判断其表达式的值,为“真”时允许插入或追加,为“假”时不允许插入或追加。(2) 更新触发器: 当要修改记录时,判断其表达式的值,为“真”时允许修改,为“假”时不允许修改。(3) 删除触发器: 当要删除记录时,判断其表达式的值,为“真”时允许删除,为“假”时不允许删除。例如,对数据库表xs.dbf的插入触发器设置为.F.,则当向该表中插入一条记录时,屏幕显示“触发器失败”。5.2.3数据库表与自由表之间的转换1. 将自由表转换成数据库表
可以把已建好的自由表添加到数据库设计器中,将其转换成数据库表。操作步骤如下。(1) 打开数据库“学生库.dbc”。(2) 在数据库设计器内空白处右击,在弹出的快捷菜单中执行“添加表”命令。(3) 在“打开”对话框中选择需要添加的自由表,如xs.dbf,单击“确定”按钮,在数据库设计器窗口中就能看到添加进来的xs.dbf。重复第(1)步、第(2)步操作,可以为数据库添加多个表。2. 将数据库表转换成自由表也可以把数据库表从数据库设计器中删除,使之转换成自由表。操作步骤如下。(1) 打开“学生库.dbc”。(2) 右击要删除的数据库表xs.dbf,在弹出的快捷菜单中执行“删除”命令。(3) 在弹出的对话框中单击“移去”按钮。
5.3数据库表间的关联与数据完整性
5.3.1数据库表间的永久关联相对SET RELATION TO命令建立的临时关联而言,数据库表之间的关联被作为数据库信息的一部分加以保存,这种关联是永久性的。当在查询设计器或视图设计器窗口中使用这些表,或者在创建表单或报表的“数据环境设计器”窗口中使用数据库时,表之间的永久关联将作为表之间的默认关联。在创建永久关联之前,两个表需要有一些公共的字段以及以这些字段为依据建立的相应索引。这样的字段被称为主关键字段和外部关键字段。主关键字段存在于发出关联的表中,通常需要为该字段建立一个主索引; 外部关键字段存在于被关联的表中,通常为该字段建立一个普通索引。以主关键字段和外部关键字段创建的索引必须具有相同的索引表达式。【例54】在数据库设计器窗口中,为数据库“学生库.dbc”中的xs.dbf和cj.dbf通过xh建立永久关联。操作步骤如下。(1) 打开数据库“学生库.dbc”,弹出数据库设计器窗口。(2) 以xs.dbf的xh为关键字建立一个主索引xh,再以cj.dbf的xh为关键字建立一个普通索引xh。(3) 在数据库设计器窗口中,用鼠标直接将xs.dbf的xh索引项拖放到cj.dbf的xh索引项上,在两表之间将产生一条关联线。Visual FoxPro将根据两个相关联的关键字段在各自由表中的索引类型将自动确定此种永久关联是一对一关联还是一对多关联。如图59所示的关联线一端为一根,另一端为多根,分别表示是一对多关联中的一方与多方。一对多关联中的一方必须是用主关键字段建立的主索引; 多方可以是按普通关键字段建立的普通索引或唯一索引。若被关联表中的索引是主索引或候选索引,则将自动建立一对一的永久关联。在数据库设计器窗口中双击数据库表之间的关联线,将弹出如图510所示的“编辑关系”对话框。在该对话框中可以修改已建立的关联。此外,若单击关联线,使其变粗,然后按Delete键,则可以删除已建立的关联。
图59建立永久关联
图510“编辑关系”对话框
5.3.2数据完整性数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为4类: 实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义完整性(Userdefined Integrity)。1. 实体完整性与主关键字实体完整性是指关系中的主关键字不能取空值(NULL)。所谓空值就是不知道或无意义的值。如果主关键字为空值,那么其对应的这条记录就是无意义的。如在xs.dbf中,若学号为空值,而姓名、性别等字段却有值,则该条记录无意义。实体完整性是保证表中记录唯一的特性,即在一个表中不允许有完全重复的记录。在Visual FoxPro中利用主关键字或候选关键字来保证表中的记录唯一,即保证实体唯一性。如果一个或几个字段的值能够唯一地标识表中的一条记录,则这样的字段称为候选关键字。在一个表上可能会有几个具有这种特性的字段或字段的组合,可以从中选择一个作为主关键字。例如,对xs.dbf进行实体完整性约束,可以设置xh字段为主索引。设置完毕后,若追加一条xh值为“20060101”的新记录,xh字段的值与之前的记录重复,则会弹出错误提示,如图511所示。
图511实体完整性错误提示
2. 域完整性与约束规则域完整性与约束规则在Visual FoxPro中即建立字段有效性规则。方法是使用表设计器的“字段”选项卡,其中有一组定义字段有效性规则的项,它们是“规则”(字段有效性规则)、“信息”(违背字段有效性规则时的提示信息)、“默认值”(字段的默认值)3项。字段有效性规则的项可以直接输入,也可以单击输入框旁的按钮,弹出表达式“生成器”对话框,在其中编辑、生成相应的表达式。(1) 规则: 限制该字段的数据有效范围。如定义的“cj.dbf”中的成绩字段,可以设置输入的成绩只能在0~100区间内,在规则中输入cj=>0.AND.cj<=100,这样当给cj字段输入记录时若输入范围之外的数值,会弹出对话框提示错误。(2) 信息: 当向设置了规则的字段输入不符合规则的数据时,就会将所设置的信息显示出来,如: “成绩的范围为0-100″。(3) 默认值: 当向表中添加记录时,该字段的预置值。成绩字段设置默认值为0。字段有效性的设置如图512所示。
图512字段有效性的设置
3. 参照完整性与表之间的关联参照完整性用来控制数据的一致性,尤其是数据库中相关表的主关键字和外部关键字之间数据的一致性。当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。例如,cj.dbf由xh、kcdm、pj等多个字段构成,当插入一条记录时,如果没有参照完整性检查,则可能会插入一个并不存在的学生记录,这时插入的记录肯定是错误的。如果在插入记录之前,能够进行参照完整性检查,检查指定学生的xh在数据库中是否存在,则可以保证插入记录的合法性。参照完整性是关系数据库管理系统的一个很重要的功能。在Visual FoxPro中为了建立参照完整性,必须首先建立表之间的联系。若数据库表已建立永久关联,则可在此基础上设置表间的参照完整性。参照完整性主要用于指定如何处理相关数据表中相应的数据记录,其设置在“参照完整性生成器”对话框中进行,如图513所示。
图513设置参照完整性
打开“参照完整性生成器”对话框的方法是: 在数据库设计器中,右击永久关系连线,在弹出的快捷菜单中选择“编辑参照完整性”命令。该对话框中有3个选项卡,分别设置记录的更新、删除和插入规则。(1) “更新规则”选项卡: 用于设置当父表的关键字被修改时如何更改相关记录。 选择“级联”单选按钮则系统会自动用新的关键字值更新子表中所有相关的记录。 选择“限制”单选按钮则表示若子表中有相关的记录则禁止更新。 选择“忽略”单选按钮则表示允许更新,忽略子表中的相关记录。(2) “删除规则”选项卡: 用于设置当父表的记录被删除时如何删除相关记录。 选择“级联”单选按钮则系统会自动删除子表中所有相关的记录。 选择“限制”单选按钮则表示若子表中有相关的记录则禁止删除。 选择“忽略”单选按钮则允许删除,忽略子表中的相关记录。(3) “插入规则”选项卡: 用于设置在子表中插入记录或更新记录时系统如何处理。 选择“限制”单选按钮,若父表中不存在相匹配的记录,则禁止插入。 选择“忽略”单选按钮则允许插入。例如,为xs.dbf和cj.dbf两张表设置参照完整性的插入规则,选择“限制”单选按钮,如图514所示。当向cj.dbf插入一条学生成绩记录,xh是xs.dbf中不存在的,那么会弹出消息框提示禁止插入。
图514设置参照完整性插入规则
【例55】打开数据库“学生库.dbc”,将xs.dbf和cj.dbf添加进该数据库中,通过xh字段建立表间的永久关联。为以上建立的联系设置参照完整性约束: 更新规则为“级联”; 删除规则为“限制”; 插入规则为“限制”。操作步骤如下: (1) 打开数据库“学生库.dbc”。(2) 打开数据库菜单,选择“添加表”,在弹出的“添加表”对话框中选择xs.dbf和cj.dbf。(3) 分别打开xs.dbf和cj.dbf表设计器,选择“索引”选项卡,在“索引名”列输入引号改成中文,在“类型”列选择“主索引”,在“表达式”列输入xh,在“排序”列使箭头向上,单击“确定”按钮,保存表结构。(4) 在数据库设计器中,选中xs.dbf表中的索引xh并拖动到cj.dbf的索引xh上松开,这样两个表之间就建立起了永久关联。(5) 建立好永久关联后,在两处表的xh索引之间有一条线,单击这条表示两个表之间联系的关联线,线会加粗,此时在主菜单中选择“数据库”中的“编辑参照完整性(I)”,系统弹出“参照完整性生成器”对话框,在“更新规则”选项卡中,选择“级联”单选按钮,在“删除规则”选项卡中选择“限制”单选按钮,在“插入规则”选项卡中选择“限制”单选按钮,单击“确定”保存所编辑的参照完整性。4. 用户定义完整性用户定义完整性是指根据用户的实际需要进行完整性约束的设定。用户定义完整性可以涵盖实体完整性、域完整性、参照完整性等完整性类型。下面以记录有效性的设置为例介绍用户定义完整性设定。记录有效性是指定记录的有效条件,只有满足该条件时数据才能输入到表中,它确定的是该记录各字段值之间的总体数据关系是否正确。当记录的数据不符合规则时,由系统显示给用户的提示信息。【例56】设置xsjy.dbf的记录有效性规则,保证“就业类型”为常规就业的学生在“就业单位”字段中不能填写部队。操作步骤如下。(1) 打开xsjy.dbf表设计器,选择“表”选项卡,在“记录有效性”属性下方的“规则”右侧输入: .NOT.(jylx=”常规就业”.AND.dwxz=”部队”),在“信息”右侧输入: “常规就业的去向不应该为部队”。结果如图515所示。
图515记录有效性的设置
(2) 单击“确定”按钮。执行“显示”|“浏览‘xsjy’”命令,追加一条新记录,将其jylx字段填写为“常规就业”、jydw字段填写为“部队”,当光标离开该字段或保存并关闭表时,会弹出出错信息对话框,提示操作者填写学生就业信息时“常规就业的去向不应该为部队”,如图516所示。
图516记录有效性错误提示
本章小结
本章着重讲解了在Visual FoxPro中数据库的基本操作,包括建立、打开和关闭数据库,以及对数据库表进行具体操作。本章需要重点掌握的是数据库表的基本操作,包括设置显示和输入格式、字段有效性与记录有效性规则等。着重练习数据库记录有效性及数据完整性的设置
评论
还没有评论。