FOXPRO中常用命令与函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

考纲所列在FOXPRO程序中经常使用的命令

(乐老师整理)

1. CLOSE ALL

功能:关闭所有文件,选择1号工作区为当前工作区。

2. <内存变量名>=<表达式>

功能:将表达式的值赋给指定的内存变量。若该内存变量不存在,则自动创建。

3. SELECT O

功能:选择当前未使用的最低编号的工作区为当前工作区。

SELECT <数据表名>

功能:当指定的数据表已在某工作区打开后,指定该数据表所在的工作区为当前工作区。

4. USE <数据表名>

功能:在当前工作区中打开指定的数据表,将记录指针指向首记录;若该数据表有对应的结构复合索引文件,则自动打开它。

5. COPY STRU TO <新数据表文件名> [FIELDS <字段名表>]

功能:把当前表的结构复制到新表,记录不复制;<字段名表>指定了新表的字段,其中可含其它工作区中表的字段;若不写FIELDS <字段名表>,则把当前表的全部字段复制到新表。

例1 根据D2.DBF产生D3.DBF,结构与D2相同,但无记录,在三个不同的工作区中打开D1、D2和D3三个表文件.

CLOSE ALL &&关闭所有文件,选择1号工作区为当前工作区

USE D2 &&打开数据表D2

COPY STRU TO D3 &&将表D2的结构复制到表D3

SELE O &&选择一个未使用的工作区为当前工作区

USE D1

SELE O

USE D3

6. INDEX ON <关健表达式> TAG <索引标识符> [DESCENDING]

功能:对当前表按<关健表达式>建立结构复合索引。结构复合索引文件的主名与表名相同,扩展名默认为CDX,使用时自动随相应的数据表同时打开。一个结构复合索引文件中可包含多个索引标识符。DESCENDING 表示按关健字降序排列,不写DESCENDING表示按关健字升序排列。

7. SET ORDER TO TAG <主索引标识符>

功能:在结构复合索引文件打开后,指定主索引。在列数据表记录时,Foxpro按指定的主索引来列记录。即使结构复合索引文件只含一个索引,也必须用该命令来指定主索引。

例2 数据表D1.DBF 包括两个字段:SPDM (商品代码)和KCL(库存量)。

要求为D1建立结构复合索引文件,其中包括两个索引:一个按商品代码升序排,另一个按库存量降序排,然后将商品代码设为主索引。

USE D1

INDE ON SPDM TAG SPDM &&生成结构复合索引文件D1.CDX,其中包括索引SPDM

INDE ON KCL TAG KCL DESC &&在D1.CDX中添加索引KCL

SET ORDER TO TAG SPDM &&将索引SPDM设为主索引

8. GO <记录号>

功能:将记录指针移到指定的记录。

GO BOTTOM/TOP

功能:将记录指针移到表的末记录或首记录;当索引文件打开时,BOTTOM或TOP分别为逻辑上的末记

录或首记录。

9. SKIP [<数值表达式>]

功能:以当前记录为起点,将记录指针向表尾方向(若数值表达式的值为正)或向表首方向(若数值表达式的值为负)移动指定的记录数;若无<数值表达式>,表示指针向表尾方向移一条记录。

10. LOCATE [<范围>] FOR <条件>

[CONTINUE]

功能:在当前表中从头至尾查找满足<条件>的第一条记录,若找到,记录指针指向该记录,并将函数FOUND( ) 置为.T.,否则记录指针指向<范围>的底部,并将FOUND( ) 置为.F. 。<范围>缺省为ALL。CONTINUE命令在用过LOCATE命令的基础上,继续查找下一条满足条件的记录。

11. INSERT [BEFORE] BLANK

功能:在当前表中插入一条空白记录,有BEFORE表示在当前记录前插入,无BEFORE表示在当前记录后插入。

例3 在D1.DBF中商品代码为“008”的记录前插入一条空白记录。

USE D1

LOCA FOR SPDM="008" &&将记录指针移到SPDM为“008”的第1条记录

INSE BEFO BLAN &&在当前记录前插入一条空白记录

12. APPEND BLANK

功能:在当前表的尾部追加一条空白记录

13. REPLACE [<范围>] <字段名1> WITH <表达式1> [,<字段名2>

WITH <表达式2> ……] [FOR <条件>]

功能:对指定范围内满足条件的记录,用表达式的值替换字段原来的值。若无FOR <条件>,范围缺省指当前记录,若有FOR <条件>,范围缺省为ALL。注意:在Foxpro中变量有两种:字段和内存变量,要改变字段的值,应该使用REPL命令,并注意范围和条件的设置;要设置或改变内存变量的值,应该使用命令:<内存变量>=<表达式>。

例4. 在D1.DBF的尾部添加一条记录,将首记录的商品代码存入新记录的商品代码字段。

USE D1 && 打开表D1,记录指针指向首记录

MSPDM=SPDM && 将首记录的商品代码存入内存变量 MSPDM

APPE BLANK && 在D1 表末尾添加一条空白记录,记录指针指向该空白记录

REPL SPDM WITH MSPDM && 将空白记录中字段SPDM 的值用变量MSPDM的值替换

14. DELETE [<范围>] [FOR <条件>]

功能:对指定范围内满足条件的记录标上删除标记。若无FOR <条件>,范围缺省指当前记录,若有FOR <条件>,范围缺省为ALL。

15. RECALL [<范围>] [FOR <条件>]

功能:对指定范围内满足条件的记录撤消删除标记。若无FOR <条件>,范围缺省指当前记录,若有FOR <条件>,范围缺省为ALL。

16. PACK

功能:物理删除所有带删除标记的记录。

例5. 在D1中,把所有库存量为0的前一个记录永久删除掉(假定第1个记录的库存量不会是0)

CLOSE ALL

USE D1

DO WHILE NOT EOF() && 进入循环条件是记录指针未指到数据表末尾

IF KCL=O &&如果KCL字段的值为0

SKIP -1 &&则:(1)将记录指针移到前一条记录

DELE && (2)标上删除标记

相关文档
最新文档