vf常用命令

更新时间:2023-03-19 18:54:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

VF常用命令

本资料所用到的表及其结构如下:

图1 学生表.dbf 结构

图2 选课表.dbf 结构

VF常用命令

图3 课程表.dbf 结构

1

本资料所用到的表及其结构如下:

图1 学生表.dbf 结构

图2 选课表.dbf 结构

图3 课程表.dbf 结构

2

1、设置工作目录:set default to

命令格式: set default to <目录名>

命令功能: 设置vfp系统默认的工作目录 (文件夹),以后存取文件均以该文件夹作为 默认文件夹。

实例1: set defa to d:\data 练 习: 打开vfp,然后观察此时的默认工作目录;再在D盘新建一文件夹:test,并设置

该文件夹为vfp的默认工作目录。

2、赋值语句:Store 、 =

Store格式:Stroe <表达式> to <内存变量名表>

功能: 将表达式的值赋给内存变量名表中的变量。

实例1: store 100 to a1, a2 , b, c, num

=格式: <变量名>=<表达式>

功能:

注意:表达式与变量名顺序不能写反了。

3、输出命令:? 、??

VF常用命令

命令格式1: ?<表达式列表>

命令格式2:??<表达式列表>

4、定义数组命令: dimension、declare

命令格式: dimension/declare <数组名1>[<下标上界1>[,<下标上界2]…]

命令功能: 定义一维数组或二维数组,每一维的下标一般从1 开始。

实例 1: Dimension A(20),B(3,2)

B(1,1)=10

B(1,2)=20

B(2,2)=30

B(6)=40

? B(1,1), B(1,2), B(2,2), B(3,2)

实例 2: Dimension sz1(20),sz2(3,2)

Store 10 to sz1

store “警察学院” to sz2(1,1)

sz2(3,2)=.F.

sz(2,1)=3.14159

如果数组元素没有赋值,则默认值为 .F.

历史考题:语句DIME TM(3,5)定义的数组元素的个数是( ) (15)

练 习: 定义一个4 行5 列的二维数组,数组名为Arr1,给元素赋值(第一个元 素值为10,第四个元素值为20,第七个元素值为”hello”,最后一个元素

值为888)。

5、打开/关闭表命令: use 、close all

命令格式1: use<表文件名>[ exclusive | shared]

命令功能: 以独占或者共享方式打开指定的表(默认方式是exclusive(独占)),如果只 3

是单独的use命令,则关闭当前表。

实例1: use D:\data\学生表 shared

实例2: set default to d:\data

use 学生表

实例3: use

练 习: 以独占的方式打开d:\data 里的教师表.dbf,然后关闭该表。

命令格式2: close all

命令功能: 关闭所有的表及释放所有的内存变量。

6、查看记录命令: list/display

命令格式: list/display[范围][fields<字段名>][for<条件表达式>][to printer][to file<文 件名>][off]

命令功能: 在工作区窗口显示当前表中的记录,list默认范围是all,若一屏显示不下, 也不会暂停,直到显示完最后一条记录;display 默认范围是当前记录,

如果使用display all,则分屏显示。

注意[范围]参数可以是:

all 表示全部记录

VF常用命令

Next <n> 表示从当前记录开始(含当前记录)的N条记录

Record <n> 表示第n条记录

Rest 表示从当前记录起到最后一条记录为止的所有记录

实例 1: Use 学生表

List fields 学号,姓名,入校总分

List for 性别=’男’

实例 2: use 学生表

Display

display all

display all for 性别 .and. 入校总分>=500

display fields 学号,姓名,性别,入校总分 for 性别='男'.and.入校总分>=500

练习1: 分别用list和display命令显示所有女生记录(要求显示学号,姓名,性别,入校总 分);

练习2: 分别用list和display命令显示1988年1月1日前出生的学生记录;

list for 出生日期<{^1988-01-01}

练习3: 分别用list和display命令显示目前年龄大于20岁的学生记录(要求显示学号, 姓名,性别,入校总分);

list for (date()-出生日期)/365>20

练习4: 用Disp命令显示第四条记录后(含第四条记录)的所有记录

7、浏览记录命令:browse

命令格式: browse [fields<字段名表>] [for<条件>]

命令功能: 在浏览窗口中显示满足条件的记录,缺省fields参数则显示所有的字段。 实例1: use 学生表

Browse

Browse fields 学号,姓名,入校总分 for 性别='男'

练 习: 浏览侦查专业的所有成都籍女生记录的学号、姓名和入校总分。

4

比 较: list、display和browse的区别

8、添加记录命令:append [blank]

命令格式: append [blank]

命令功能: 不加参数blank,在已打开的表末尾添加一条空白记录,并显示要求立即输入 数据;如果加参数blank,则在表末尾添加一条空白记录。

实例1: use 学生表

append

实例2: use 学生表

append blank

练 习: 在学生表的末尾再添加一条学号为x00101,姓名为李四的记录。

9、插入记录命令:insert

命令格式: insert [blank] [before]

命令功能: 在当前表的当前记录后(缺省before 参数)或前(有before 参数)添加一条 记录,并要求立即输入该条记录,如果有参数blank,则添加一条空白记录。

VF常用命令

实例1: use 学生表

go 4

insert

实例2: use 学生表

go 4

insert blank before

练 习: 操作上述两实例。

10、记录定位命令:go(绝对移动指针)、skip(相对当前记录而言移动指针) 命令格式1: go top | bottom

命令功能: 将当前表的记录指针移到第一条记录或表的最后一条记录

实例 1: go bottom

实例 2: go top

命令格式2:go <数值表达式>

命令功能: 将当前表的记录指针移到记录号为数值表达式值的那条记录上。

实例1: Go 8

?Recno()

Display

实例2: x=3

Y=x**2

Go y

Display

命令格式3: skip [n]

命令功能: 记录指针相对当前记录移动n 条记录,指向当前记录号加n 的那条记录上,n 若为正,则往前移动,如为负,则往后移;如果缺省参数n,相当于 skip 1,

指针只移动一条记录位置。

实例3: go top

Skip 5

5

?Recno()

Skip -3

?Recno()

练 习: 操作上述三实例,并注意观察结果。

11、修改记录命令:edit、replace

命令格式1: edit [范围] [fields<字段名表>] [for<条件>]

命令功能: 在指定的记录范围内,修改满足条件的记录的指定字段的数据。

实例1: use 学生表

go 4

edit fields 学号,姓名

实例2: use 学生表

Edit all for 性别='女' .or. 入校总分<=500

练 习: 操作上述两实例,并观察结果。

命令格式2:replace [范围] <字段名1> with <表达式>,<字段名2> with <表达式

VF常用命令

>… ,<字段名n> with <表达式> [for<条件>]

命令功能: 用表达式的值替换指定字段的值,此命令常用于数据的批量替换,注意,格式 中的逗号可以用空格代替。

实例 3: use 学生表↙

List for 三好生=’是’ ↙

Replace all 入校总分 with 入校总分+20,籍贯 with '四川泸州' for 三好生='是

' .and. 籍贯='泸州'↙

Display all for 三好生=’是’ ↙

实例4: use 学生表 ↙

Append blank ↙

Replace 学号 with "00100",姓名 with "张三" ,性别 with '男',出生日期 with

ctod("09/10/88"),入校总分 with 450 ↙

练 习: 操作上述4实例,并浏览结果。

相关考题:将教师表中所有职称为“教授”的教授工资增加300元的VFP命令是 ( )

(Repl all 工资 with 工资+300 for 职称=”教授”),注意,VFP 命令中的条件一般应该 用For,不能用Where,而SQL语句中的条件表示一定要用Where,二不能用For。 练 习: 操作上述4实例,并浏览结果。

注 意: 不要把 with 写成等号,还要注意字段类型,切记!!!另 外,此命令与SQL 语句的Update 命令功能相似,但语法格式不一 样。

12、逻辑删除命令:delete

命令格式: delete [范围] [for<条件>]

6

命令功能: 逻辑删除指定范围内的满足条件的记录,配合set deleted on/off。

实例1: use 学生表

Browse for 入校总分<=300

Delete all for 入校总分<=300

Display all

Set deleted on

Display all

历史考题: 在VFP 中,如果逻辑删除数据表中的记录,则被删除的记录前应有删除标记 符( )。

练 习: 操作上述实例,并浏览结果。

13、恢复逻辑删除: recall

命令格式: recall [范围] [for<条件>]

命令功能: 恢复指定范围内被逻辑删除的满足条件的记录。

实例1: use 学生表

Browse for 入校总分<=300

VF常用命令

Recall all for 入校总分<=300

Display all for 入校总分<=300

练 习: 操作上述实例,并浏览结果。

14、物理删除命令:pack、zap

命令格式1: pack

命令功能: 物理删除当前表中作了逻辑删除标记的记录,配合delete 命令使用。 实例1: use 学生表

Browse for 入校总分<=300

Delete all for 入校总分<=300

Display all for 入校总分<=300

Pack

List for 入校总分<=300

练习: 操作上述实例,并观察结果。

命令格式2: zap

命令功能: 物理删除当前表中所有的记录,但保留表结构。

例1: use 学生表

Browse

Zap

List

历史考题: 在当前打开的表中物理删除带有删除标记记录的命令是( )

练 习: 操作上述实例,并观察结果。

15、物理排序命令:sort

命令格式: sort to <新表名> on <字段名1> [/a][/d][/c][,<字段名2>] [/a][/d][/c]…][范 7

围][for<条件>][fields<字段名表>]

命令功能: 对当前表中指定范围内的满足条件的记录进行物理排序,排序后的结果存入新表,

参数 /a表示升序(默认),/d表降序,/c表示字母不区分大小写。

实例1: use 学生表

Sort to 新学生表 on 入校总分/d,学号/a for "四川"$籍贯 fields 学号,姓名,

性别,入校总分

Use 新学生表

List

练 习: 按照学号升序排列学生表中的入校总分大于450 的女生记录,生成的排序表为 xsb.dbf。

16、建立索引命令:index

建立结构复合索引:index on <索引表达式> tag [索引名] [for <条件>] [ascending]

[descending][candidate]

命令功能: 对当前表中满足条件的记录,按照索引表达式建立结构复合索引,参数 ascending表示按索引表达式值建立升序索引,descending则表建立降序索

引,candidate表示建立候选索引,缺省为普通索引。

VF常用命令

实例1: use 学生表

Index on 入校总分 tag rxzf ascending

list

index on str(入校总分)+学号 tag zfxh

list

练 习: 按照姓名对学生表建立降序索引,索引标记为xm(建立好后,打开表设 计器,注意观察索引一项里是不是多了一个名称为xm 的索引),还要注

意观察当前目录下是不是多了一个文件名为学生表.cdx的文件。

建立非结构复合索引:index on <索引表达式> tag [索引名] of <索引文件名>[for <条件>]

[ascending][descending][candidate]

命令功能:

实例:

练习:

建立单索引: index on <索引表达式> to<索引文件名> [for <条件>]

命令功能: 对当前表中满足条件的记录,按照索引表达式建立单索引,注意单索引一 般是升序排列。

实例1: use 学生表

Index on 入校总分 to zfdsy.idx

list

练 习: 按照姓名对学生表建立降序索引,索引文件名为zfdsy,注意观察当前目 录里是不是多了一个文件名为zfdsy.idx 的索引文件。

历史考题: Visual FoxPro中索引文件分为单一索引文件和复合索引文件,复合索引文 件的扩展名为( )。

8

数据库表专有的索引类型是( )。

索引的类型有:主索引、候选索引、普通索引、唯一索引

17、设置主控索引:set order to

命令格式1: set order to tag <索引名>

命令功能: 设置结构复合索引里的某个索引标记为主控索引,设置好之后,表的显示 顺序则按主控索引的顺序显示。

实例1: use 学生表

List

Set order to tag rxzf

list

命令格式2: set index to <索引文件名> tag of <索引文件名>

命令功能:

实例:

练习:

命令格式3: set index to <索引文件名>

命令功能: 设置单索引为主控索引。

实例2: use 学生表

set index to zfdsy

VF常用命令

list

练 习: 操作上述两实例,注意观察结果。

18、更新索引命令:reindex

命令格式: reindex

命令功能: 当表更新之后,使用该命令强制更新索引文件,以保证表与索引同步。 实例1: use 学生表

Append

Reindex

list

练 习: 修改某条记录,然后更新索引。

19、顺序查询命令:locate

命令格式: locate [范围][for<条件>]

……

continue

命令功能: 在当前表中,从指定范围的第一条记录开始,查找满足条件的记录,当找 到之后,将记录指针指向满足条件的第一条记录(此时found()函数的值

为真,eof()函数值为假,若没找到,则found()函数值为假,eof()值为真);

配合continue语句可继续查找下一条满足条件的记录。

实例1: use 学生表

Locate all for '北京'$籍贯 .and. 入校总分>=500

9

Display

Continue

Display

练 习: 用locate命令查找年龄大于25 岁的学生记录。

20、索引查询命令:seek

……

skip

命令格式: seek <表达式>

命令功能: 在索引已经打开的情况下,查询表中满足表达式的记录,找到之后,把记录指 针指向第一条满足条件的记录,如果找到多条记录,可以使用skip 实现继续

查找。

实例1: use 学生表

Index on 姓名 tag xm

Seek “张三”

Display

练 习: 操作上述实例。

21、计数命令:count

命令格式: count [范围] [for<条件>] [to <内存变量> ]

命令功能: 统计当前表中指定范围内符合条件的记录个数,并可以把结果存入内存变量。

VF常用命令

实例1: Use 学生表

Count all for 入校总分>500 .and. 三好生=’是’ to total1

Count to total2

?total1,total2

练 习: 统计籍贯是四川的学生人数。

22、求和命令:sum

命令格式: sum[范围] [数字型字段][for<条件>] [to <内存变量> ]

命令功能: 对当前表中指定范围内符合条件的记录的数值型字段按列求和,并可把结果存 入内存变量。

实例1: use 学生表

Sum all 入校总分 for 性别=’男’ to zf

?zf

练 习: 统计非三好生的入校总分。

23、求平均命令:average

命令格式: average [范围] [数字型字段][for<条件>] [to <内存变量> ]

命令功能: 对当前表中指定范围内符合条件的记录的数值型字段按列求平均,并可把结果 存入内存变量。

实例1: use 学生表

average all 入校总分 for 性别=’男’ to pjf

?pjf

1 0

练 习: 求女生的入校平均分。

24、计算命令:calculate

命令格式: calculate [范围] [表达式][for<条件>] [to <内存变量> ]

命令功能: 在打开的表中,计算表达式的值,并在工作区中显示出来。

实例1: use 学生表

Calculate max(入校总分),min(入校总分),cnt(),sum(入校总分),avg((date()-出生日期)/365) 练 习: 操作上述实例,并观察结果。

25、汇总命令:total

命令格式: total on <关键字段名> to 汇总文件名[范围] [for<条件>] fields<数字型字段>

命令功能: 在当前表中,对指定范围内满足条件的记录按关键字段名分类汇总求和,并把 汇总结果存入新表。注意,汇总之前,必须按关键字排序或建立索引。

实例 1: use 学生表

Index on 性别 tag xb

total on 性别 to 汇总文件 fields 入校总分

use 汇总文件

list

练习: 按照性别对侦查专业的学生的入校总分分类汇总。

26、工作区选择:select

VF常用命令

命令格式: select <工作区号或别名>

命令功能: 选择指定的工作区。

实例 1: use 学生表

Select 2

Use 成绩表 alias cjb

Select 3

Use 课程表

Select cjb

List

历史考题: 多表操作中,已经在2,3,5号工作区上打开了多个表,此时执行select 0,选择 的当前工作区号是()

27、表之间关联::set relation to

命令格式: set relation to <关联表达式1> into <别名>[,<关联表达式2> into <别名 >…][additive]

命令功能: 以当前表为父表,与一个或多个子表建立临时多对一关联。注意:被关联的子 表须按照关联关键字建立索引,参数addtive 表示建立新关联时保留当前父表

和其它子表的关联,单独的set relation to命令将取消父表与其它子表的关联关

系。

如果要建立一对多关联,还要使用命令:set skip to [<表别名1>,[<表别名2>]…] 指明多方。

11

实例1: 通过学生表、选课表、课程表显示所有学生的课程成绩,要求显示出学号、姓 名、课程名及成绩字段(选课表为“多”方,是父表,学生表、课程表为“一”方, 是子表)。

Select 1

Use 学生表

Index on 学号 tag xh

Select 2

Use 课程表

Index on 课程号 tag kch

Select 3

Use 选课表

Set relation to 学号 into a,课程号 into b

List 学号,a->姓名,b->课程名,成绩

实例2: 通过学生表、选课表显示所有学生的课程成绩,要求显示出姓名、课程号及成 绩字段。 (学生表为“一”方,是父表,选课表为“多”方,为子表。)

Close all

sele 1

USE 学生表

sele 2

USE 选课表

index on 学号 tag xh

sele 1

VF常用命令

set rela to 学号 into b

set skip to b

list 姓名,b->课程号,b->成绩

练 习: 操作上述两实例,观察并分析结果。

28、表记录复制到数组:scatter… to…

命令格式: scatter [fields<字段名表>] to <数组名>[memo]

命令功能: 将当前记录的字段值按字段名表顺序依次赋给指定数组的各元素,如果带参数 memo,则将备注型字段一起复制。

实例 1: use 学生表

Go bottom

Dimension A(12)

scatter to A memo

?A(1),A(2),A(3),A(4),A(5),A(6),A(7)

实例 2: use 学生表

Go 6

Dimension B(5)

scatter fields 学号,姓名,入校总分,性别,籍贯 to B

?B(1),B(2),B(3),B(4),B(5)

练 习: 操作上述两实例。

29、数组数据添加到表里:gather from…

1 2

命令格式: gather from <数组名>[fields <字段名表>]

命令功能: 用数组数据依次修改当前记录的字段值。

实例 1: use 学生表

Append blank

Dimension A(4)

A(1)=”x00018”

A(2)=”test”

A(3)=”是”

A(4)=”女”

Gather from A fields 学号,姓名,三好生,性别

List

练 习: 操作上述两实例。

30、表复制命令:copy to

命令格式: copy to <新表名>[<范围>][fields <字段名表>[for <条件>]

命令功能: 将当前表的数据和表结构全部或部分复制到新文件表里。

实例 1: use 学生表

Copy to stu1

copy to stu2 fields 学号,姓名,性别,籍贯,入校总分 for 性别='女'

Use stu1

List

VF常用命令

Use stu2

List

练 习: 操作上述实例并观察结果。

31、表结构复制命令:copy structure to

命令格式: copy structure to <新文件名> fields [<字段名列表>]

命令功能: 将当前表的结构全部或部分复制到新文件表里。

另:

Clear 命令(清除工作区)

Clear all命令(从内存中释放所有的内存变量和数组以及所有用户自定义的菜单栏, 菜单, 和

窗口的定义。CLEAR ALL 也能关闭所有表,包括所有相关的索引, 格式文件和备注文件, 并

选择 1 号工作区。CLEAR ALL 不释放系统内存变量。)

说明:本资料仅列出了Vfp 最常用的命令及其最常用的功能,如果要弄清每条 命令的详尽格式及用法,请查Vfp命令手册。__

本文来源:https://www.bwwdw.com/article/shvj.html

Top