一、简单应用(2小题,每题20分,计40分)
在考生文件夹下,打开商品销售数据库CDB,完成如下简单应用:
1.使用一对多报表向导建立名称为P_ORDER的报表。要求从父表顾客表CUST中选择所有字段,从子表订单表ORDER中选择所有字段;两表之间采用"顾客号"字段连接;按"顾客号"字段升序排序;报表样式为"经营式",方向为"纵向";报表标题为"顾客订单表"。然后修改该报表,在页注脚中增加一个标签"制表人:王爱学";该标签水平居中,标签中的":"为中文的冒号。
2.修改一个名称为TWO.PRG的命令文件。该命令文件统计每个顾客购买商品的金额合计(应付款),结果存储在临时表ls中。然后用ls中的每个顾客的数据去修改表scust对应的记录。该命令文件有3行语句有错误,打开该命令文件进行修改。
注意:直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。
本题主要考核点:使用报表向导制作表单、表单报表的使用、修改程序文件。
解题思路:
第1题:启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮,在"向导选取"对话框中选择"一对多报表向导",然后按照报表向导操作即可。然后打开该报表,在页注脚中增加一个标签控件,输入:"制表人:王爱学",选中该标签,再选择"格式"菜单下的"对齐"子菜单下的"水平对齐"。
第2题:利用"文件"菜单下的"打开"命令打开程序文件TWO.PRG。将命令文件修改为:
CLOSE DBF
PRIVATE no,money
USE scust
*下面的一行语句有错误
SELECT 顾客号,sum(数量*单价) 应付款 ;
FROM order JOIN comm ON order.商品号 = comm.商品号 ;
GROUP BY 顾客号 ;
INTO CURSOR ls
SELECT scust
*下面的一行语句有错误
DO WHILE .NOT. EOF()
no = 顾客号
SELECT ls
LOCAT FOR 顾客号 = no
money = 应付款
SELECT scust
*下面的一行语句有错误
REPLACE 应付款 WITH money
SKIP +1
ENDDO
CLOSE TABLE
RETURN
二、基本操作题(共四小题,第1和2题是7分、第3和4是8分)
在考生文件夹下完成下列操作:
1.打开名称为SDB的学生数据库,分别为学生表Student、选课成绩表SC和课程表Course创建主索引。Student表主索引的索引名和索引表达式均为"学号";Course表主索引的索引名和索引表达式均为"课程号";SC表的主索引名为PK_SC,索引表达式为"学号"+"课程号"的字段组合。
2.通过字段"学号"建立Student表与SC表之间的永久联系、通过字段"课程号"建立Course表与表SC之间的永久联系。并为以上建立的永久联系设置参照完整性约束:更新规则为"级联";删除规则为"级联";插入规则为"限制"。
3.使用SQL语句将学号为"s3"的学生记录从表Student中逻辑删除,并将该SQL语句存放在文件ONE.PRG中。
4.创建一个名为Project_S的项目文件。将学生数据库SDB添加到该项目中。