当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年全国计算机等级考试二级VFP笔记(16)
发布时间:2010/11/1 15:17:24 来源:www.xue.net 编辑:城市总裁吧
 六、视图与查询

  (一)视图文件(.vue)

  1.定义:视图是一个定制的虚拟表,可以是本地的、远程的或带参数的;它是操作表的一种手段,不存于磁盘。

  2.数据源:数据库表、自由表或其他视图等。

  3.作用:通过视图可查询表也可更新表。

  4.特点:它依赖表,不能独立存在,且只有在包含视图的数据库打开时才能使用。

  5.分类:根据创建视图的数据来源分为两类

  1)本地视图:使用当前数据库的表建立的视图

  2)远程视图:使用当前数据库之外的数据源创建的试图

  6.建立视图的方法:

  1)根据视图设计器

  & 文件—新建—文件类型:视图—新建文件—打开视图设计器—保存

  & 打开项目管理器—数据选项卡—展开数据库至本地视图—新建—打开视图设计器—保存

  & 打开数据库设计器—右击/数据库菜单—新建本地视图—打开视图设计器—保存

  & 命令:create view

  2)根据表的查询定义视图

  & 格式为:create view 视图文件名 as select语句

  即把select语句查询出的信息作为视图文件的内容

  7.视图中的虚字段:即通过算术表达式或函数计算出来的字段,并不存于表中。

  8.删除视图文件:

  & 数据库设计器中—右击视图名—删除—移去

  & 命令:drop view 视图文件名

  注意:视图可像基本表一样使用,适用于基本表的命令基本都可用于视图,但视图不支持modify structure命令

  9.视图参数:在筛选处写为?X即可

  10.视图的更新功能:即更新视图文件中的内容后,建立此视图文件的基本表的内容也会有相应的更新。

  方法:必须先设定更新条件,钥匙图标下选定关键字,铅笔图标下选定可更新的字段,再选中发送SQL更新选项,保存后即可实现相应的更新。

 (二)查询文件(.qpr)

  1.定义:查询是预先定义好的一个select语句,在不同的需要场合可以直接或反复使用,它是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果,保存于磁盘,是一个文本文件。总之,它是vf支持的一种数据对象,或是为方便检索数据提供的一种工具或方法。

  2.数据源:数据库表、自由表或视图

  3.作用:数据查询

  4.建立查询的方法:

  & 文件—新建—文件类型:查询—新建文件—打开查询设计器—保存

  & 打开项目管理器—数据选项卡—查询—新建—打开查询设计器—保存

  & 命令:create query

  注意:当一个查询是基于多个表时,这些表必须是有联系的,查询设计器会自动根据联系提取联接条件,但它只能建立一些比较规则的查询,而复杂的查询则无法完成。

  5.查询设计器中各选项卡与select语句的对应关系:

  ² 选择了创建查询的表或视图——from短语

  ² 字段选项卡——select短语,指定需要查询的数据

  ² 联接选项卡——join on短语,用于编辑联接条件

  ² 筛选选项卡——where短语,用于指定查询的条件

  ² 排序依据选项卡——order by短语,用于指定排序的字段和排序方式

  ² 分组依据选项卡——group by短语和having短语,用于指定分组的依据

  ² 杂项选项卡——可以指定是否要重复记录(对应于distinct短语)

  还可指定列在前面的记录(对应于top短语)

  6.执行查询文件的方法:

  & 打开项目管理器—数据选项卡—展开至相应查询文件—单击“运行“

  & 常用工具栏—运行(有感叹号标志)

  & 程序—运行—选中查询文件—运行

  & 打开查询设计器—运行查询

  & 命令:do 查询文件名.qpr(查询文件的扩展名不可以省略)

  7.查询去向:(在查询菜单下)

  方法:查询菜单—单击查询去向—打开查询去向—选择查询结果的去向

  ² 浏览—在“浏览”(browse)窗口中显示查询结果(默认的输出方向)

  ² 临时表—将查询结果存储在一个命名的临时只读表中

  ² 表—将查询结果保存在一个命名的表中

  ² 图形—使查询结果可用于MS graph中

  ² 屏幕—在vf主窗口或当前活动输出窗口显示查询结果

  ² 报表—将查询结果输出到一个报表文件(.frx)

  ² 标签—将查询结果输出到一个标签文件(.lbx)

  (三)视图文件与查询文件的区别:

  1.查询设计器的结果将以qpr为扩展名的文件保存于磁盘中

  视图设计器的结果则保存在数据库中

  2.视图文件可以更新,而查询不可以

  3.查询中有查询去向的问题,而视图中则没有

[NextPage

  七、程序设计基础

  (一)程序的概念

  1.定义:程序是能够完成一定任务的命令的有序集合,存放在以.prg为扩展名的程序文件中。

  2.特点(即与命令窗口相比的优点):

  1)可以利用编辑器,方便地输入、修改和保存程序;

  2)可以用多种方式、多次运行程序,即程序的调试;

  3)程序之间可以相互调用。

  3.关于程序的几点说明:

  1)命令注释:程序中可插入注释行,以提高程序的可读性。

  单独的注释行以note或*开头

  命令行后的注释以&&开头

  注意:注释为非执行代码,不会影响程序的功能。

  2)set talk on/off命令:可设置执行状态的信息是否在vf主窗口、状态栏或用户自定义的窗口显示。

  3)命令分行:程序中每条命令都以回车键结尾,一行只能写一条命令。若命令需要分行书写,应在一行终了时键入续行符“;”,再按回车键。

  (二)程序文件

  1.定义:又叫命令文件,其默认的扩展名是.prg。

  2.程序文件的建立:

  1)打开项目管理器—代码选项卡—程序—新建—打开编辑窗口—编写程序—保存

  2)文件—新建—文件类型:程序—新建文件—打开编辑窗口—编写程序—保存

  3)命令:modify command 程序文件名(若文件存在则打开,不存在则新建一个新文件)

  3.程序文件的执行:

  1)程序菜单—运行—选择运行程序文件—运行

  2)常用工具栏—运行(即!标志)

  3)命令:do 程序文件名

  注意:程序文件被执行的过程中,还应了解以下几个命令:

  cancel—终止程序运行,清除所有的私有变量,返回命令窗口

  do—转去执行另一个程序

  return—结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口

  quit—退出vf系统,返回到操作系统

  4.编程步骤:

  1)建立程序文件—编写代码—保存—执行

  2)一个完整的编程所应包含的部分:

  ² 输入数据(一个或多个数据)

  ² 对所有输入数据的处理、加工

  ² 输出数据(有零个或多个数据)

  5.程序中的输入输出命令:

  1)格式一:inpute 字符表达式 to 内存变量

  功能:等待用户从键盘输入任意合法表达式,以回车键结束输入时系统将表达式的值存入指定的内存变量,程序继续运行。

  注意:

  ² 若果选用字符表达式,那么系统首先显示该表达式的值,作为提示信息

  ² 输入的数据可以试常量、变量,也可以是一般的表达式,不能无数据

  ² 输入字符串时必须加定界符,输入逻辑型变量时要用圆点定界符,输入日期时间型常量时要用花括号

  2)格式二:accept 字符表达式 to 内存变量

  功能:等待用户从键盘输入字符串,以回车键结束输入时系统将该字符串存入指定的内存变量,程序继续运行。

  注意:

  ² 若果选用字符表达式,那么系统首先显示该表达式的值,作为提示信息

  ² 该命令只能接受字符串,在输入时不用加定界符,否则系统会把定界符作为字符串本身的一部分

  ² 若不输入任何内容直接按回车键,系统会把空串赋给制定的内存变量

  3)格式三:wait 字符表达式 to 内存变量[window [at 行,列]][nowait][noclear][timeout 数值表达式]

[NextPage]

  (三)程序的基本结构

  1.定义:是指程序中命令或语句执行的流程结构。

  共有顺序结构、选择结构和循环结构三种。

  2.顺序结构:是最简单的程序结构,按命令在程序中出现先后次序依次执行,最为常用。

  3.选择结构:

  1)定义:根据条件成立与否,选择执行相关语句的结构。

  2)类型:if条件语句和do case分支语句

  & if条件语句:

  ①无else子句时:

  if 条件表达式 如果条件为真,执行if下面的命令语句序列

  命令语句序列 如果条件为假,则执行endif后面的语句

  endif if-endif必须成对出现

  ②有else子句时:

  if 条件表达式 如果条件为真,执行if下面的命令语句序列1,然后到endif后面的语句

  命令语句序列1 如果条件为假,执行else后的命令语句序列2,然后到endif后面的语句

  else if-else-endif必须成对出现

  命令语句序列2

  endif

  注意:有else子句时还可能出现嵌套,在if-else或者else-endif之间都有可能出现新的if-else-endif语句。

  & do case分支语句

  do case

  case 条件1 如果条件1为真,则执行命令语句序列1,然后执行endcase后的语句

  命令语句序列1 如果条件1为假,则转去判断条件2

  case 条件2 如果条件2为真,则执行命令语句序列2,然后执行endcase后的语句

  命令语句序列2 如果条件2为假,则转去判断条件3

  …… 依次类推,判断完所有的条件

  otherwise 如果上述所有条件都为假,那么执行otherwise后的语句n后转向endcase后的语句

  命令语句序列n

  endcase

  4.循环结构:

  1)定义:也称为重复结构,是指程序在执行的过程中,其中的某段代码被重复执行若干次,其中被重复执行的代码段通常称为循环体。

  2)类型:do while – enddo语句、for – endfor语句和scan – endscan语句

  & do while – enddo语句

  ①无loop/exit时:

  do while 条件 当条件为真时,执行循环体,到enddo时,返回do while

  语句序列1(循环体) 处继续判断条件是否为真,以确定是否还执行循环体

  enddo 若条件为假,则结束该循环,执行enddo后面的语句

  注意:若第一次判断条件为假,则循环体一次都不被执行,直接转至执行enddo后的语句;

  do while-enddo必须成对出现

  若do while处条件始终为真,则该循环为死循环

  ②有loop/exit时:

  do while 条件 当条件为真时,执行语句序列1,遇到loop时,结束本次执

  语句序列1 行,也不执行loop后的语句序列2,而是直接转回do while

  [loop] 处重新判断条件的真假;若遇到exit时,则结束该语句的执

  语句序列2 行,其后的语句序列3也不被执行,而是转去执行enddo后面

  [exit] 的语句

  语句序列3

  enddo

  注意:若第一次判断条件为假,则其后的所有语句一次都不被执行,直接转至执行enddo后的语句

  通常loop或exit可单独出现,也可同时出现。同时出现时经常用在循环体内嵌套的选择语句之中,根据条件来决定是执行loop回去,还是执行exit出去,以防止出现矛盾现象

  do while-enddo必须成对出现

  若do while处条件始终为真,则该循环为死循环

  ③两个重要的推论:

  推论一:完成对表中所有满足条件的记录循环操作的目的

  locate for 条件(即定位表达式) 使指针定位于当前表中满足条件的第一条记录上

  do while found() 若found()函数返回值为真,则执行其后的语句序列

  语句序列 遇到continue时,返回do while处重新判断found()函数的值是否为真

  continue 为真就继续执行语句序列,若found函数的值为假,则转去执行enddo后的语句

  enddo

  推论二:完成对表中每条记录逐条操作的目的

  go top 使指针指向当前表中的首记录

  do while not eof() 若不在文件尾为真,则执行语句序列,遇到skip时

  语句序列 表中指针向下跳一下,而此程序则返回到do while处

  skip n(n默认为1) 继续判断not eof()是否为真,为真就继续执行语句序列

  enddo 若not eof()为假,则转去执行enddo后的语句

  & for – endfor语句:用于某个值域范围内的循环

  for 循环变量=初值 to 终值 [step 步长n] 先把初值赋给循环变量,然后判断循环条件

  循环体 是否成立;成立则执行循环体,然后给循环变量增加一个步长值并再次判断循环条件是否成立endfor 以确定是否再次执行循环体。若循环条件不成立,则结束该循环,转去执行endfor后的语句

  注意:若步长n为正值,循环条件为:循环变量<=终值;若步长n为负数,循环条件为:循环变量>=终值;n的默认值为1可省略

  & scan – endscan语句:

  scan [范围] [for 条件1] [while 条件2] 若条件为真,则执行循环体

  语句序列(循环体) 遇到endscan时返回scan for条件处继续判断条件是否为真

  endscan 为真继续执行循环体,若条件为假,则转去执行endscan后的语句

 (四)多模块程序

  1.模块的定义:

  1)概念:模块可以是命令文件,也可以是过程。是指一个相对独立的程序段,可被其他模块调用也可调用其他模块。

  2)过程定义的语法格式:

  procedure/function 过程名 过程名必须以字母或下划线开头,可包含字母、数字和下划线

  命令序列 若执行return命令,转回到调用程序并返回表达式的值;若缺省return命令则在过程结

  [return [表达式]] 束处执行一个隐含的return命令;若return不带表达式,则返回逻辑真值

  [endproc/endfunc] 若缺省此命令,则过程结束于下一条precedure/function命令或文件尾处

  3)过程文件:

  ² 建立:modify command 命令,文件默认扩展名为.prg

  ² 打开:set procedure to 过程文件名1,…过程文件名n

  ² 关闭:set procedure to ——可关闭所有打开的过程文件

  4)过程(模块)的位置:3种

  ² 单独过程即独立过程

  ² 包含在主程序中的过程,在主程序代码的后面

  ² 包含在过程文件中的过程

  2.模块的调用

  1)模块的调用格式:2种

  ² 格式1:do 过程名 一般无返回值

  ² 格式2:过程名() 作为命令使用时返回被忽略,作为函数时有返回值

  3.参数传递

  4.变量的作用域

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved