"locate for" 在"vf"中是什么意思?有什么作用?
展开全部
locate for是查找的意思,对表的操作中要用到。格式为:locate for +条件。运行时从表头一直查找到表尾,并且指针自动移动到满足条件的第一个记录上。多与found()和continue连用。下面是例子:
use 学生表 &&程序开始
locate for 成绩<50
do while found()
replace 成绩 with 成绩+10
continue
enddo
use &&程序结束
1、这里do while 与enddo 连用,作为循环结构而存在。
2、while 后面是判断条件,found()函数作为条件而存在,返回逻辑型 .t.真,或者.f.假!如果locate 从表头top到表尾bottom一个满足条件的记录都没找到,就不执行循环体。如果找到,函数found()为真,执行循环体:replace 成绩 with 成绩+10 同时继续寻找 continue 满足条件的记录,如果为真则执行,假就不执行,一直到表尾。
3、replace 只针对当前记录操作,当前记录就是指针指向的那个记录。update 语句则针对整个表操作,其实上面的那一段代码就相当于:update 学生表 set 成绩=成绩+10 where 成绩<50 它的命令规则是:update 表 set 更新语句 where 更新条件限制。
4、update的使用可以不用打开表而直接在命令窗口对表进行操作,前提是被操作表必须在默认目录下,默认目录的设置命令是:set default to +路径 如:set default to e:\vf文件 而replace必须打开表,而且“use 学生表 &&程序开始”一直到“use &&程序结束”的那段代码必须在程序窗口中执行。新建程序为:modify command 文件名
use 学生表 &&程序开始
locate for 成绩<50
do while found()
replace 成绩 with 成绩+10
continue
enddo
use &&程序结束
1、这里do while 与enddo 连用,作为循环结构而存在。
2、while 后面是判断条件,found()函数作为条件而存在,返回逻辑型 .t.真,或者.f.假!如果locate 从表头top到表尾bottom一个满足条件的记录都没找到,就不执行循环体。如果找到,函数found()为真,执行循环体:replace 成绩 with 成绩+10 同时继续寻找 continue 满足条件的记录,如果为真则执行,假就不执行,一直到表尾。
3、replace 只针对当前记录操作,当前记录就是指针指向的那个记录。update 语句则针对整个表操作,其实上面的那一段代码就相当于:update 学生表 set 成绩=成绩+10 where 成绩<50 它的命令规则是:update 表 set 更新语句 where 更新条件限制。
4、update的使用可以不用打开表而直接在命令窗口对表进行操作,前提是被操作表必须在默认目录下,默认目录的设置命令是:set default to +路径 如:set default to e:\vf文件 而replace必须打开表,而且“use 学生表 &&程序开始”一直到“use &&程序结束”的那段代码必须在程序窗口中执行。新建程序为:modify command 文件名
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询