一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下的"商品销售"数据库中完成如下操作:
1. 将"销售表"中的日期在2000年12月31日前(含2000年12月31日)的记录复
制到一个新表"2001.dbf"中。
2.将"销售表"中的日期(日期型字段)在2000年12月31日前(含2000年12月
31日)的记录物理删除。
3.打开"商品表",使用BROWSE命令浏览时,使用"文件"菜单中的选项将"商
品表"中的记录生成文件名为"商品表.htm"的HTML格式文件。
4.为"商品表"创建一个主索引,索引名和索引表达式均是"商品号";为"销
售表"创建一个普通索引(升序),索引名和索引表达式均是"商品号"。
本题主要考核点:
SQL查询语句的使用、SQL语言中删除语句的使用、如何将一个表存为一个HTML文件、表的索引的建立方法等知识点。
解题思路:
第一步:打开考生文件夹下的"商品销售"数据库
第二步:在命令窗口中输入以下语句:
SELECT * FROM 销售表 WHERE 日期<={^2000-12-31} INTO TABLE 2001.DBF
并执行该语句。根据要求要得到2001年12月31日以前的销售表的记录,将条件:日期<={^2000-12-31}放在WHERE子句的后面,结果集存放入一个永久表2001.dbf中要用到INTO TABLE子句
第三步:在物理删除记录,我们要先将其逻辑删除,然后使用PACK命令将加上逻辑删除的记录物理删除。所以在命令窗口依次执行以下两条命令即可:
DELETE FROM 销售表 WHERE 日期<={^2000-12-31}
PACK
第四步:在命令窗口依次执行:USE 商品表和Brow两条命令,在商品表处于浏览状态时,选择"文件"菜单的"另存为HTML(H)",弹出"另存为HTML"对话框,选择"保存文件以便以后使用"选项,并点击文件位置按钮,弹出"另存为"对话框,选择考生文件夹,并在"保存"文件框中输入"商品表.html",点击"确定"按钮,返回"另存为HTML"对话框,点击"确定"即可。
第五步:在数据库设计器中选择"商品表",点击主菜单"数据库"下的"修改",弹出表设计器,在表设计器中,选择"索引 "标签,在索引名和表达式列中分别输入"商品号",在类型列中选择"主索引",点击"确定",保存对"商品表"结构的修改。用同样的方法可以对"销售表" 的索引进行修改。
二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1. 在"商品销售"数据库中,根据"销售表"和"商品表"查询每种商品的商品号、
商品名、单价、销售数量和销售金额(商品号、商品名取自商品表,单价
和销售数量取自销售表,销售金额=单价*销售数量),结果按销售金额降
序排序,并将查询结果存储到see_a表中。
2. 在考生文件夹下有一个名称为form1 的表单文件,该表单中的三个命令按
钮的 click事件下的语句有错误。请按如下要求进行修改,修改完成后保
存所做的修改:
(1) 单击"刷新标题"命令按钮时,将表单的标题改为"商品销售数据输入";
(2) 单击"商品销售输入"命令按钮时,调用当前文件夹下的名称为 sellcomm
的表单文件打开数据输入表单;
(3) 单击"输出销售报表"命令按钮时,调用当前文件夹下的名称为 print1的
报表文件对报表进行预览。
注意:每处错误只能在原语句上进行修改,不可以增加语句行。
本题主要考核点:
SQL查询语句中的联接查询、表单的建立方法、表单中事件代码、通过命令来执行表单和报表的方法等知识点。
解题思路:
第一小题:本题主要考查询语句中的联接查询。如果要得到的结果集来自两个不同的表,要用到联接查询,联接查询的两个表放在FROM子句的后面,在本题中是:商品表和销售表,它们之间用逗号隔开;联接查询来指明两个表联接的条件放在WHERE子句的后面,并且如果一个字段在另一个表中也有同名的字段需要指明字段所在的表,联接的条件是:商品表.商品号=销售表.商品号;结果集的排序依据要放在ORDER BY子句的后面,这里是以销售金额的降序进行排序,所以排序是:ORDER BY 销售金额 DESC;结果集要保存在一个永久表中要用到INTO TABLE子句。完整的查询语句如下:
SELECT 商品表.商品号,商品名,销售表.单价,;
销售数量,销售表.单价*销售数量 AS 销售金额;
FROM 商品表,销售表;
WHERE 商品表.商品号=销售表.商品号;
ORDER BY 销售金额 DESC;
INTO TABLE SEE_A
第二小题:首先打开考生文件夹下的form1.scx表单文件,对"刷新标题"按钮的Click事件代码,要改变表单的标题,需要对表单的Caption属性进行修改,所以此处应改为:thisform.caption="商品销售数据输入";对"商品销售输入"按钮的 Click的事件代码,是要调用sellcomm表单,而要执行一个表单,需要用DO FORM命令,所以此处应改为:DO FORM SELLCOMM;对"输入销售报表"按钮的Click事件代码,要调用print1报表文件,需要用REPORT FORM命令,所以此处应改为:REPORT FORM PRINT1 preview。最后保存修改后的表单。
三、综合应用(1小题,计30分)
在考生文件夹下,对"商品销售"数据库完成如下综合应用:
1.请编写名称为change_c 的命令程序并执行,该程序实现下面的功能:将"
商品表"进行备份,备份文件名为"SPBAK.dbf";
将"商品表"中"商品号"前两位编号为"10"的商品的"单价"修改为出厂单价
提高10%;
使用"单价调整表"对商品表的部分商品出厂单价进行修改(按"商品号"
相同)。
2.设计一个名称为form2的表单,上面有"调整"(名称Command1)和"退出"(名
称Command2)两个命令按钮。
单击"调整"命令按钮时,调用change_c命令程序实现商品单价调整;
单击"退出"命令按钮时,关闭表单。
注意:以上两个命令按钮均只含一条语句,不可以有多余的语句。
本题主要考核点:
程序的建立方法、记录的更新、循环结构、表单的建立方法、控件的基本知识等知识点
解题思路:
第一步:在Visual ForxPro主窗口中按下组合键Ctrl+N,弹出"新建"对话框,在文件类型中选择"程序",点击"新建文件",弹出代码编辑器窗口
第二步:在代码编辑器窗口,输入以下代码:
SET TALK OFF
SET SAFETY OFF
&&备份商品表
SELECT * FROM 商品表 INTO TABLE SPBAK.DBF
&&修改商品的单价
UPDATE 商品表 SET 单价=出厂单价*1.1 WHERE LEFT(商品号,2)="10"
USE 单价调整表
DO WHILE NOT EOF()
UPDATE 商品表 SET 出厂单价=单价调整表.出厂单价;
WHERE 商品号=单价调整表.商品号
SKIP
ENDDO
CLOSE ALL
SET TALK ON
SET SAFETY ON
第三步:以文件名change_c.prg保存程序文件在考生文件夹下。并执行
第四步:在Visual FoxPro的主窗口按下组合键Ctrl+N,弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮
第五步:在打开的表单编辑器窗口中放上两个标题分别为"调整"和"退出"的命令按钮,并为标题为"调整"的命令按钮添加如下Click的事件代码:DO CHANGE_C.PRG;为标题为"退出"的命令按钮添加如下Click事件代码:THISFORM.RELEASE.
第六步:以文件名form2.scx保存表单,并保存在考生文件夹下。
责任编辑:小草