在考生文件夹下完成如下简单应用:
(1)将customer1表中的全部记录追加到customer表中,然后用SQL SELECT语句完成查询:列出目前有订购单的客户信息(即有对应的order_list记录的customer表中的记录),同时要求按客户号升序排序,并将结果存储到results表中(表结构与customer表结构相同)。
(2)打开并按如下要求修改form1表单文件(最后保存所做的修改s):
①在“确定”命令按钮的Click事件(过程)下的程序有两处错误,请改正之;
②设置Text2控件的有关属性,使用户在输入口令时显示“*”(星号)。
参考答案:
(1)在命令窗口输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口中输入如下程序段:
*******文件query1.prg的中程序段******
SET TALK OFF
CLOSE ALL
USE customer
ZAP
USE eustomer1
DO WHILE !EOF()
SCATTER TO arr1
INSERT INTO customer FROM ARRAY arr1
SKIP
ENDDO
SELECT DISTINCT customer.*;
FROM 订货管理!customer INNER JOIN订货管理!order_list;
ON customer.客户号=order_list.客户号;
ORDER BY customer.客户号;
INTO TABLE results.dbf
*************************************
在命令窗口输入命令:DO query1,程序将查询结果自动保存到新表results中。
(2)在命令窗口输入命令:MODIFY FORM form1,打开表单form1.scx。
双击表单中的“确定”命令按钮,进入命令按钮的事件编辑窗口,在Click事件中的程序段如下:
*******“确定”命令按钮Click事件的源程序*******
&&功能:如果用户输入的用户名和口令一致,则在提示信息后关闭该表单;
&&否则重新输入用户名和口令。
If Thisform.Text1=Thisform.Text2 &&********Error****************
WAIT“欢迎使用……”WINDOW TIMEOUT/1
Thisform.Close &&**********Error********************
Else
WAIT“用户名或口令不对,请重新输入……”WINDOW TIMEOUT1
Endif
********************************************
修改程序中的错误,正确的程序如下;
****“确定”命令按钮Click事件修改后的程序****
If Thisform.Text1.Text=Thisform.Text2.Text && 缺少属性Text
WAIT“欢迎使用……”WINDOW TIMEOUT1
Thisform.Release && 语法错误,关闭表单应该为Release
Else
WAIT“用户名或口令不对,请重新输入……”WINDOW TIMEOUT1
Endif
*********************************************
选中表单中的第二个文本框控件(Text2),在属性面板中修改该控件的PassWordChar属性值为“*”,如图3-54示,保存修改结果。
解析:
本大题1小题考查了SQL的基本查询语句,在此处需要注意的是当表建立了主索引或候选索引时,向表中追加记录必须用SQL的插入语句,而不能使用APPEND语句,为避免出现重复记录,可加入短语DISTINCT;2小题表单控件的程序改错中,应注意常用属性和方法的设置,例如关闭表单控件不是通过CLOSE,而是利用Release,对于文本框控件的属性,比较重要的一个文本输出属性为PasswordChar,控制输出显示的字符。