《Visual FoxPro数据库程序设计》实验指导书
列的文本框,输入出生日期,单击该行左边的“排序”列按钮,使其为降序标识“↓”。
步骤3:记录按部门字段降序,部门相同按基本工资降序排列,建立普通索引。单击“索引名”列下部的文本框,输入bmjbgz后,单击该行“表达式”列文本框右侧的对话框按钮,出现“表达式生成器”对话框,利用“字段”列表框,“函数”等功能,在“表达式”文本框输入表达式部门代码+STR(基本工资,8,2),单击“确定”按钮,返回“表设计器”对话框,单击该项行左边的“排序”列按钮,使其为降序标识“↓”。
3.数据库建立、数据库设计器的使用和数据库的操作命令 (1)实验要求
① 新建一个数据库文件glk.dbc。
② 向其添加4个自由表rsb.dbf、gzb.dbf、bmdm.dbf和zz.dbf。 ③ 使用命令完成下列操作: a. 关闭数据库glk.dbc; b. 修改数据库glk.dbc;
c. 在数据库中新建职工联系表lxb(编号 C(4),姓名 C(8),家庭住址 C(40),电话号码 C(13))
e. 从数据库glk.dbc中称去表lxb; f.浏览数据库glk.dbc文件。 (2)操作步骤
① 新建数据库:选择“文件”菜单的“新建”命令→打开“新建”对话框,选择“文件类型”为“数据库”,单击“新建文件”按钮→打开“创建”对话框,在“数据库名”文本框中输入glk.dbc,单击“保存”,此时建立了数据库glk.dbc,同时打开“数据库设计器”窗口。
上述操作也可以使用命令来建立glk.dbc数据库,命令是: ② 添加自由表:在“数据库设计器”窗口中,选定快捷菜单的“添加表”命令,在“打开”对话框中选定rsb.dbf,单击“确定”按钮,表rsb.dbf就添加进了“数据库设计器”窗口中,以同样的方法添加表gzb.dbf、bmdm.dbf和zz.dbf。
③使用命令操作是: 1)CLOSE DATABASE 2)MODIFY DATABASE glk
3)CREATE TABLE lxb (编号 C(4),姓名 C(8),家庭住址 C(40),电话号码 C(13)) 4)REMOVE TABLE lxb 5)CLOSE DATABASE USE glk.dbc BROWSE
21
《Visual FoxPro数据库程序设计》实验指导书
4.设置数据库表显示属性、字段级、记录级规则 (1)实验要求
对数据库glk.dbc中的表rsb.dbf按如下要求设置:
① 设置基本工资字段数值以千分位格式显示,标题为“职工基本工资”。 ② 设置性别字段有效性规则为:性别==“男”.OR.性别==“女”。 出错提示信息为“输入错误,性别只能为男或女”,默认值为“男”。
③ 设置记录级规则要求为:职称为教授的职工的最低基本工资>=1650,其他职工的基本工资范围为:550<=基本工资>=3000,其表达式为:
职称=“教授”.AND.基本工资>=1650.OR.职称#“教授”.AND.(基本工资>=550.AND.基本工资<=3000)
出错提示信息为:“教授的基本工资要>=1650元,其他职工为:550<=基本工资<=3000”。
④ 设置触发器:要求每逢星期一才可做插入、追加、更新和删除记录的操作。 (2)操作步骤 ① 按下列步骤操作:
步骤1:打开数据库表rsb.dbf,进入“表设计器”窗口,其命令为: USE rsb
MODIFY STRUCTURE && 进入”表设计器”窗口
步骤2:设置基本工资的属性:选择“表设计器”中的“字段”选项卡,选择“基本工资”字段,在“显示”区的“输入掩码”框中输入9,999.00,在“标题”框中输入职工基本工资,如图5-1所示。
图5-1
② 选择“表设计器”中的“字段”选项卡,选择“性别”字段,在“字段有效性”区内的“规则”框内输入性别==“男”.OR.性别==“女”,在“信息”框中输入“输入错误,性别只能为男或女”,在“默认值”框中输入“男”,如图5-2所示。
③ 选择“表设计器”中的“表”选项卡,在“记录有效性”区内的“规则”框内输入:职称=“教授”.AND.基本工资>=1650.OR.职称#“教授”.AND.(基本工资>=550.AND.基本工资<=3000)。在“信息”框中输入:“教授的基本工资要>=1650元,其他职工为:550<=基本工资<=3000”。如图5-3所示。
22
《Visual FoxPro数据库程序设计》实验指导书
图5-3
④ 选择“表设计器”中的“表”选项卡,在“触发器”区内的“插入触发器”框内输入CDOW(DATE())=”Monday”,同理,在“更新触发器”和“删除触发器”输入上述相同内容,如图5-4所示。
图5-4
CDOW(<日期表达式>)函数是返回日期表达式所表示星期几的英文单词,如CDOW({^2004/11/28})返回字符串值“Sunday”。
如果出现缓冲或完整性规则不能操作试试:在insert blank before/after 之前加一句CursorSetProp('Buffering',1,'表名')就可以了。
经过上述对字段的显示属性、字段级规则、记录级规则和触发器的设置,试改变相关的数据来验证这些规则的作用。
5.数据库的表间永久关系的建立及参照完整性的设置 (1)实验要求
① 在数据库glk.dbc中,分别设置表rsb.dbf对表gzb.dbf的一一关系、对表bmdm.dbf的多一关系和对表zz.dbf的一多关系。
② 在数据库glk.dbc中,设置父表rsb.dbf和子表gzb.dbf的参照完整性规则:删除规则为“级联”即当父表rsb.dbf删除记录时,要求子表gzb.dbf中相应记录也要删除;更新规则和插入规则都设置为“限制”。
23
图5-2
《Visual FoxPro数据库程序设计》实验指导书
(2)操作步骤 ① 按下列步骤操作:
步骤1:按下表建立各表的相关索引(已存在有下列索引的不必重新建立)。
数据库glk中永久关系索引情况表 表名 rsb rsb gzb bmdm zz bh bmdm bh dm bh 步骤2:画出连线:
建立表rsb与表gzb连线:将表rsb 索引部分中的主索引bh拖到表gzb索引部分中的主索引bh处,形成一条一一关系连线;
建立表rsb与表zz的连线:将表rsb索引部分中的主索引bh拖到表zz索引部分中的普通索引bh处,形成一条一多关系连线。
建立表rsb与表bmdm的连线:将表bmdm索引部分中的候选索引dm拖到表rsb索引部分中的普通索引bmdm处,形成一条多一关系连线。
② 按下列步骤操作
步骤1:打开“参照完整性生成器”对话框:在“数据库设计器”窗口中,双击表rsb与表gzb连线,打开“编辑关系”对话框,单击“参照完整性”按钮,打开“参照完整性生成器”对话框(系统可能要求先“清理数据库”,然后才能设置“参照完整性”,清理数据库操作为:选择“数据库”菜单中的“清理数据库”命令)。
步骤2:设置更新、删除和插入规则:选择“更新规则“选项卡,卡选择rsb与gzb 所在关系行,然后在“更新”列选择“限制”,在“删除”列选择“级联”,在“插入”列选择“限制”。最后单击“确定”按钮,保存设置并生成参照完整性代码,退出“参照完整性生成器”。
上述参照完整性设置后,对父表rsb的6号记录作删除标记,观察子表gzb的6号记录的变化,去掉父表rsb的6号记录的删除标记,再看看子表gzb的变化。 五、课后练习
1.在rsb.dbf中,按部门升序,基本工资的降序排序记录,生成排序表文件pxl1.dbf,要求包含有编号、姓名、部门、职称和基本工资五个字段。
2.在rsb.dbf中,记录按性别降序排列,性别相同的按工作日期降序排列建立复合结构索引,索引标识名xbgzrq,类型为普通索引。
3.将职工联系表lxb.dbf添加到数据库glk.dbc中,然后设置“电话号码”字段属
24
索引名 索引类型 主索引 普通索引 主索引 候选索引 普通索引 索引表达式 编号 部门代码 编号 代码 编号