(1)打开数据库文件“课程管理”,使用SQL语句建立一个视图salary,该视图包括了“系号”和(该系的)“平均工资”两个字段,并且按“平均工资”降序排列。请将该SQL语句存储在four.prg文件中,否则不得分。 (2)打开考生文件夹下的表单si

admin2013-03-31  31

问题 (1)打开数据库文件“课程管理”,使用SQL语句建立一个视图salary,该视图包括了“系号”和(该系的)“平均工资”两个字段,并且按“平均工资”降序排列。请将该SQL语句存储在four.prg文件中,否则不得分。
    (2)打开考生文件夹下的表单six(如图1-13所示),“登录”命令按钮Click事件中的程序功能是:当用户输入用户名和口令以后,单击“登录”按钮肘,程序根据自由表“用户表”的内容进行操作,若在“用户表”中找不到相应的用户名,则提示“用户名错误”,若用户名输入正确,而口令输入错误,则提示“口令错误”。修改“登录”命令按钮Click事件中标有错误的语句,使其能够正确运行。注意:不得做其他修改。

选项

答案 (1)步骤1:在命令窗口执行命令:MODIFY COMR4AND four,打开程序文件编辑器编写视图定义代码。 步骤2:在编辑器中输入如下程序代码: OPEN DATABASE 课程管理 CREATE VIEW salary AS; SELECT 系号,AVG(工资) AS 平均工资; FROM 教师表; GROUP BY系号, ORDER BY平均工资DESC 步骤3:在命令窗口执行命令:DO four,执行文件。 (2)步骤1:在命令窗口执行命令:MODIFY FORM six,打开表单设计器修改表单。 步骤2:双击表单中的“登录”按钮,看到该按钮的Click事件中代码如下: USE 用户表 GO TOP flag=0 &&下面语句有错误 WHILE.NOT.EOF() IF Alltrim(用户名)==Alltrim(Thisform. Text1.Value) IF Alltrim(口令)==Alltrim(This form.Text2.Value) WAIT "欢迎使用" WINDOW TIMEOUT 2 ELSE WAIT"口令锚误"WINDOW TIMEOUT 2 ENDIF flag=1 EXIT ENDIF &&下面语句有错误 NEXT ENDDO && 下面语句有错误 CASE FLAG=0 WAIT"用户名错误"WINDOW TIMEOUT 2 ENDIF 修改后的代码如下: USE 用户表 GO TOP flag=0 && 下面语句有错误 DO WHILE NOT EOF() IF Alltrim(用户名)=Alltrim(Thisform. Text1.Value) IF Alltrim(口令)=Alltrim(Thisform. Text2.Value) WAIT "欢迎使用"WINDOW TIMEOUT 2 ELSE WAIT"口令错误"WINDOW TIMEOUT 2 ENDIF flag=1 EXIT ENDIF &&下面语句有错误 SKIP ENDDO &&下面语句有错误 IF flag=0 WAIT"用户名错误"WINDOW TIMEOUT 2 ENDIF 步骤3:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。

解析  (1)本题主要考查了利用SQL命令建立视图;SQL分组查询:SQL排序查询。
    利用SQL命令建立视图的基本命令格式为:CREATE VIEW <视图名> AS <SELECT语句>;对数据进行分组计算查询时,用来求平均值的函数为AVG(),另外,对记录进行分组时,分组字段要设王正确,根据题目,本题是求每个系的教师平均工资,因此分组字段应为“教师表”中的“系号”字段。
    另外,在对记录进行分组查询时,用于分组的短语为GROUP BY,利用ORDER BY短语可以对查询结果按指定的字段排序,其中ASC(可省略)短语为升序排序,DESC短语为降序排序。
    如果对于<SELECT语句>部分不太熟悉的考生,可以通过视图设计器生成。
    (2)本题主要考查的是DO WHILE 循环语句和IF条件语句的使用。本题程序的功能大致如下:首先打开“用户表”,同时定义一个变量并赋值0.然后通过DO WHILE语句开始判断记录指针是否到达文件末尾,如果没有,则开始执行后面的条件语句,第一次判断表中当前记录的“用户名”是否等于表单中第一个文本框中的值;如果等于,则再继续判断谊记录的口令值是否等于表单中第二个文本框的值;如果不等于,则退出条件语句结构,执行SKIP命令,将指针指向“用户表”的下一条记录,当指针记录指向表末尾后还没找到相等的内容,则退出循环体,执行ENDDO后面的IF语句,提示“用户名错误”的信息,执行此条件语句的要求为flag=0。
    当判断表中当前记录的“用户名”等于表单中第一个文本框中的值后,再判断用户名的密码值也等于表单中第二个文本框的值时,则显示欢迎框,退出条件语句结构,将变量flag的值赋为1,退出循环体,当退出循环体后,由于flag的值已设置为1,则不再执行ENDDO后面的IF语句,程序结束;如果密码不相等时,则提示“口令错误”的信息。
转载请注明原文地址:https://kaotiyun.com/show/Eusp777K
0

最新回复(0)