(一)视图文件(.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
|