一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
在考生目录下完成如下操作:
1. 创建一个新的项目"客户管理"。
2. 在新建立的项目"客户管理"中创建数据库"订货管理"。
3. 在"订货管理"数据库中建立表order_list,表结构如下:
客户号 字符型(6)
订单号 字符型(6)
订购日期 日期型
总金额 浮动型(15.2)
4. 为order_list表创建一个主索引,索引名和索引表达式均是"订单号"。
解答: 1.方法1:利用菜单新建项目:单击“新建”工具或“文件”菜单下的“新建”菜单项,在“新建”对话框中选择“项目”,单击“新建文件”按钮,在出现的“创建”对话框中输入项目文件名“客户管理”,单击“确定”按钮即可。
方法2:利用命令创建项目:
在命令窗口中直接输入:CREATE PROJECT 客户管理
2.方法1:利用菜单建立数据库
展开管理器中“数据”选项。选择数据库,单击“新建”按钮,在弹出的选项中选择“新建数据库”,在打开的“创建”对话框中输入数据库名:订货管理,最后单击“保存”即可完成。
方法2:利用命令建立数据库
在命令窗口中直接输入命令:CREATE DATABASE 订货管理
Application.Projects[1].Files.Add('订货管理.dbc')
3.方法1:利用菜单建立表结构
在刚建好的数据库中单击鼠标右键弹出一个快捷菜单(如下图)。

选择“新建表”。在出现的对话框中单击“新建表”按钮,在后续的“创建”对话框中输入表名“order_list”, 完成后,会弹出“表设计器”,如下图:

在“表设计器”中分别输入每个字段的字段名、字段类型、字段宽度和小数位数,输入完毕,单击“确定”按钮,在随后的“是否输入记录”对话框中单击“否”按钮。
方法2:利用命令直接建立表结构
在命令窗口中直接输入命令:
open database 订货管理
create table order_list (客户号 C(6),订单号 C(6),订购日期 D,总金额 F(15,2))
4.方法1:使用“表设计器”直接建立索引
单击“显示”菜单下的“表设计器”命令,打开order_list的“表设计器”,选择“索引”页框,在索引名项和表达式项均输入(或选择)“订单号”,索引类型选择“主索引”(如下图),单击“确定”按钮,在随后的确认对话框中单击“是”按钮。 [NextPage]
二、简单应用(2小题,每题20分,计40分)
在考生目录下完成如下简单应用:
1. 将order_list1表中的全部记录追加到order_list表中,然后用SQL SELECT语句完成查询:按总金额降序列出所有客户的客户号、客户名及其订单号和总金额,并将结果存储到results表中(其中客户号、客户名取自customer表,订单号、总金额取自order_list表)。
解答: (1)将order_list1表中的全部记录追加到order_list表中,用命令:
use order_list
append from order_list1
(2)使用SQL语句完成查询。
方法1:利用查询设计器来完成。具体步骤为:
第一步:单击“文件”菜单中的“新建”,在“新建”对话框中选择“查询”,单击“新建文件”进入查询设计器,将order_list和customer两个表添加到查询设计器中。
注意,两个表联接的字段名是“客户号”
第二步:选取字段。将试题要求的字段添加到选定字段列表中。(注意:其中客户号、客户名取自customer表,订单号、总金额取自order_list表)
第三步:排序依据。单击“排序依据”页框,将“总金额”添加到“排序条件”列表框中,在“排序选项”选项组中选择“降序”。
第四步:确定输出去向
单击查询设计器中的“查询去向”按钮,或单击右键,在快捷菜单中选择“输出设置”。
在弹出的“查询去向”对话框中,单击“表”按钮,并在“表名”列表框中输入表的名字:results。
第五步:运行查询。单击“运行按钮”

,即完成查询操作。
方法2:利用命令完成。直接在命令框中输入下列SQL语句。
SELECT Customer.客户号, Customer.客户名, Order_list1.订单号,;
Order_list1.总金额 FROM customer INNER JOIN order_list1 ON Customer.客户号 =; Order_list1.客户号 ORDER BY Order_list1.总金额 DESC INTO TABLE results.dbf
2. 打开FORM1表单,并按如下要求进行修改(注意:最后保存所做的修改):
(1) 表单中有5个随机排列的命令按钮,不要移动或改变"基准按钮"的位置(否则影响成绩),然后使其他命令按钮与"基准按钮"左部对齐;
(2) 在这组命令按钮的右边添加一个表格控件,并将它的RecordSourceType属性设置为"表",然后设置另一个相关属性使在表格控件中显示customer表的记录。
解答: (1)使用工具或菜单打开表单Form1,在表单设计器中拖动鼠标(或按住shift再单击各按钮)选定所有命令按钮(注意:不要移动按钮),再单击布局工具栏中,左对齐工具,结果如下图:

(2)打开表格控件工具栏,在表单的按钮右侧拖出一个表格,选中表格,进入“属性窗口”,单击“数据”页框。改变以下两个参数:
RecordSourceType属性设置为"表",RecordSource属性为:customer,最后保存表单。[NextPage]
三、综合应用(1小题,计30分)
当order_detail表中的单价修改后,应该根据该表的"单价"和"数量"字段修改order_list表的总金额字段,现在编写程序实现此功能,具体要求和注意事项如下:
(1) 根据order_detail表中的记录重新计算order_list表的总金额字段的值;
(2) 一条order_list记录可以对应几条order_detail记录;
(3) 在编程前应保证在基础操作中正确地建立了order_list表,在简单应用中为该表追加了记录(注意只能追加一次);
(4) 最后将order_list表中的记录按总金额降序排序存储到od_new表中(表结构与order_list表完全相同);
(5) 将程序保存为prog1.prg文件。
解答:
Prog1.prg程序代码如下:
Sele 订单号,sum(单价*数量) as 总金额 from order_detai1 group by 订单号 into table t
set talk off
use t in 0
index on 订单号 tag xx
set order to tag xx
use order_list in 2
select 2
set relation to 订单号 into order_detail
replace all 总金额 with t.总金额
sort on 总金额/desc to od_new
set talk on
附:本题相关表


