- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VFP等级考试浅谈
摘要:VFP等级考试作为普通高校大学生计算机水平测试的标准,越来越受到同学的重视,程序设计又是考察的重点,通过对典型例题的分析,来提高大家的程序设计能力。
关键词:SQL;程序设计;函数
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)36-2951-02
The Discussion of VFP Test
WANG Nan
(Department of Electronic information of Professional Technical institute,Anqing 246000,China)
Abstract: College Students pay more attention to the test of VFP which is the standard of the computer level ,and the programming is the focus of the test. The typical example of the analysis is to increase our programming capacity .
Key words: SQL; Progrmming; function
笔者作为一名高校教师,从事了多年的VFP等级考试教学工作,在教学工作中碰到许多程序设计的问题,细细思考之余,通过自己的归纳总结在这里做个小小的分享。
1 SQL查询之GROUP BY 子句
结构化查询语言SQL(Stuture Query Language),以其简单的格式、快捷的速度和强大的查询功能深受用户的喜爱 。VFP(Visual Foxpro)是一般数据库应用系统最常用的开发工具,它支持较为完整的SQL。由于VFP的特殊性以及SQL自身的编程难点,在VFP中利用某些SQL命令查询时,语法上的错误可以通过查阅资料解决,但是由对命令作用范围的把握不清,由此造成的逻辑错误却很难发现。
例题1:
现有CHENGJI.DBF表(姓名,课程,成绩),用于记录学生的考试成绩,其中一个学生可以有多条记录(登记一个学生的多门成绩);KECHENG.DBF表为空表,表(课程,姓名,最高成绩)。请先编写符合下列要求的程序PROG1,PRG:根据CHENGJI表计算每门课程的最高分,并将相应的课程、姓名、最高成绩存入kecheng.dbf。
错解:
SELE 课程,姓名,max(成绩)as 最高成绩 FROM chengji INTO TABLE kechengGROUP; BY课程
分析:这是典型的SQL类型考题,很多同学和一些对SQL不熟悉的年轻老师都会想当然的认为以上的做法是完全正确的,其实不然。GROUP BY 的意思是按给定的字段进行分组,所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可以完成基于一组记录的计算;但是,GROUP BY 子句应该包含SELECT 列表中每个字段,除非列表当中的字段包含在列函数中。由此,可以看出姓名这个字段出现是多余的。举例:有表1,结构如图1。
COMMAND窗口执行了如下命令:
SELE 课程,姓名,max(成绩)as 最高成绩 FROM 表1;
INTO TABLE kechengGROUP BY 课程
打开生成的新表test,对比两表表如图2。
由此可知上述命令错误。在命令执行的过程,首先按照第一条记录的课程的字段值’C’来进行组统计,记录的指针最后指向的是第五条记录,姓名字段的值由tom变化为jerry,最高成绩由MAX()函数求出,但是姓名却并不是对应的tom,关键就是指针发生了变化!对于课程VFP也是这样。
参考答案如下:
SET TALK OFF
USE chengji IN1
USE kecheng IN2
SELE DIST 课程 FROM chengji INTO ARRAYa
FOR I=1 TOALEN(a)
SELE 1
cj=0
SCAN FOR 课程=a(i)
IF cj成绩
cj=成绩
xm=姓名
kc=课程
ENDIF
ENDS
SELE 2
INSERT INTO kecheng VALUE(kc,xm,cj)
ENDF
CLOSE ALL
SET TALK ON
2 随机函数RAND()
近两年的上级考试和理论考试中都加强了对RAND()函数的考查,RAND()函数返回是到0到1之间的数,也就是函数的值域是
您可能关注的文档
最近下载
- 2025年云南省投资控股集团有限公司招聘笔试备考试题附答案详解(突破训练).docx VIP
- DB32_T2334.2—2013《水利工程施工质量检验与评定规范》第2部分:建筑工程.doc
- 建筑工程图集 03D103:10kV及以下架空线路安装.pdf VIP
- 内蒙古自治区矿产资源储量.doc VIP
- 2025年云南省投资控股集团有限公司人员招聘笔试备考试题及答案详解(最新).docx VIP
- 2024中国蓝领就业调研报告-中国新就业形态研究中心.pdf VIP
- 08J933-1 体育场地与设施(一).docx VIP
- 大型设备吊装专项施工方案.doc VIP
- 桥梁施工组织设计范本.doc VIP
- 国外铀矿冶设施的退役治理.pdf VIP
文档评论(0)