收藏 分销(赏)

Visual-FOXPRO中的常用命令.doc

上传人:仙人****88 文档编号:8749768 上传时间:2025-02-28 格式:DOC 页数:12 大小:105KB 下载积分:10 金币
下载 相关 举报
Visual-FOXPRO中的常用命令.doc_第1页
第1页 / 共12页
Visual-FOXPRO中的常用命令.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
Visual FOXPRO中的常用命令 目录 说明 一、数据库的建立、打开、关闭和删除 二、数据表和视图的建立、打开、关闭和删除 三、数据表和表结构的编辑、修改 四、数据表中数据操作(查询、插入、删除和修改等) 五、文件管理(文件和文件夹的复制、创建和删除)  六、数据的复制与传送 七、排序与索引 八、查找和定位 九、统计计算 十、程序控制 十一、其它 说明    命令结构  FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。 如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT] 常用子句  范围:表示记录的执行范围,可以是下面几项其中之一: ALL 表示全部记录; NEXT n 表示从当前记录开始的以下n条记录; RECORD n 表示第n号记录; REST 表示从当前记录到最后一条记录。     FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。  FOR条件:对满足条件的记录进行操作。 WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。   以下命令中,大写的英文词为关键词,必须原样照写。 “常用子句”指以下几个可选子句: [范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件] 命令中的“列表”,指用“,”分隔的各项。如“字段名列表”就是将各个字段名用逗号分隔。 部分英文词的意义:Databasename 数据名 tablename 数据表名 filename 文件名  Viewname 视图名 arrayname 数组名  提示:加下划线的为本课程要求掌握的命令。   一、数据库的建立、打开、关闭和删除    建立数据库: CREATE DATABASE [databasename|?]  从磁盘中删除数据库: DELETE  DATABASE  databasename|?  打开数据库: OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]  打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY DATABASE  [databasename|?] 指定的数据库databasename为当前数据库。  指定当前的数据库: SET DATABASE TO [databasename] Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。  关闭数据库: CLOSE DATABASE [ALL] 关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。  二、数据表和视图的建立、打开、关闭和删除    建立数据表(SQL命令): CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL] [{,Col_name2 Type2 [NOT NULL/NULL]}...]) table_name是所创建的数据表的名字。 Col_name1,Col_name2,...是表中列的名。 Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。 如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。  向当前打开的数据库中添加数据表: ADD TABLE tablename|?  从当前打开的数据库中删除数据表: REMOVE TABLE tablename|? [DELETE] 如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。  在当前打开的数据库中建立视图: CREATE SQL VIEW viewname AS SELECT …… 其中SELECT ……为SELECT语句。 执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。  从当前打开的数据库中删除视图: DELETE VIEW viewname  打开一个表: USE tablename|? [IN 工作区号]  将当前数据表与另一数据表连接后建立一个新表: JOIN WITH 工作区号|表别名 TO tablename FOR 条件 [FIELDS 字段名表]  三、数据表和表结构的编辑、修改    打开浏览窗口(可在其中编辑数据表): BROWSW(详细格式见P. 114~116)  打开并修改数据表中的字段: (1) CHANGE [FIELDS 字段名列表] (2) EDIT [FIELDS 字段名列表] 这两个命令的功能相似,可选子句较多(详见手册)。  数据表改名: RENAME TABLE tablename1 TO tablename2 其中数据表tablename1必须存在且未打开。  视图改名: RENAME VIEW viewname1 TO viewname2 其中数据表tablename1必须存在且未打开。  修改数据表结构(SQL命令): ALTER TABLE tablename ; ADD 字段名 Type [NULL | NOT NULL] [,字段名 Type [NULL | NOT NULL] ; [ALTER COLUMN字段名Type {NULL | NOT NULL}]; [{,字段名Type NULL | NOT NULL}...] ; [DROP字段名[,字段名[, ...]]  将当前表与另一表之间建立关联: SET RELATION TO [表达式1 INTO 工作区号1 | 表别名1]; [, 表达式2 INTO 工作区号2 | 表别名2] [, ...] 建立关联的两个表必须事先已按关联表达式进行索引排序。  在当前表与另一表之间建立一对多关联: SET SKIP TO表别名1[, 表别名2]  消除当前表与另一表之间的关联: SET RELATION OFF INTO 工作区号 | 表别名  四、数据表中数据操作(查询、插入、删除和修改等)    数据查询SELECT语句(SQL命令) 格式见教材的有关章节。这是本课程的重点内容,必须很好地掌握。 更改数据表中的记录: REPLACE 字段1  WITH  表达式1[ADDITIVE]; [,<  [,<字段2> WITH <表达式2>[ADDITIVE],…];  [FOR 条件1][WHILE条件2] 其中的ADDITIVE子句适用于备注字段,表示将表达式的值加在字段的末尾。  用内存数组的值更新数据表中的记录: REPLACE FROM ARRAY数组名 [FIELDS 字段名列表][常用子句]  用新的值更新表中的记录(SQL命令): UPDATE [databasename!]tablename; SET Column_1=Expression1 [{Column_2=expression2}...] ;       [WHERE Condition]  用一个表中的数据更新当前指定工作区中打开的表: UPDATE ON fieldname FROM filename; REPLACE fieldname1 WITH expr1 [, fieldname2 WITH expr2 [, ...]]  给记录加删除标记(SQL命令): DELETE  FROM  [databasename!]tablename; [WHERE 条件]  给记录加删除标记:DELETE [范围] [FOR 条件] [WHILE 条件][IN 工作区号|表别名]  永久删除加了删除标记的记录:PACK  永久删除打开的数据库中加了删除标记的记录:PACK  DATABASE  去掉删除标记(恢复) RECALL [常用子句]  删除一个表中所有记录(保留表的结构):ZAP  [IN tablename|alias]  为数据表文件追加记录:APPEND [BLANK][IN 工作区号|别名]  从另一个文件中提取数据添加到当前数据表的尾部: APPEND FROM filename|? [FIELDS 字段名列表][ FOR 条件] 其中filename所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。  用内存数组的值添加到当前数据表的尾部: APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS字段名列表] 数据中的一行对应一个新记录,一列对应一个字段。  从一个文件输入一个OLE对象放入一个通用(general)字段 : APPEND GENERAL 通用字段名 [FROM filename] 如果省略子句FROM filename,则将指定的字段清空。  将一个文本文件的内容拷贝到一个备注字段 : APPEND MEMO 备注字段名 [FROM filename][OVERWRITE] 如果省略子句FROM filename,则将指定的字段清空。  插入新记录(在当前记录之前或后插入):  INSERT [BLANK] [BEFORE] 如不省略BLANK,则插入一个空白记录,且不显示输入窗口。  在表中插入新记录并赋值(SQL命令): INSERT INTO tablename [(字段1 [, 字段2, ...])]VALUES (eExpression1 [, eExpression2, ...]) 或 INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR 如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。  清除当前记录中字段的数据: BLANK [常用子句]  移动记录指针: SKIP [n] [IN 工作区号|表别名]  五、文件管理(文件和文件夹的复制、创建和删除)    从当前表复制出表或其它类型的文件(表须打开) COPY  TO  filename [FIELDS 字段名列表] [常用子句] [其它子句] 如果没有指定类型,则复制一个与当前的表相同的数据表。   复制表的结构 COPY STRUCTURE TO filename [FIELDS字段名列表]   复制任何文件: COPY FILE 源文件 TO 目的文件 如果用此命令复制表,表须关闭  从磁盘上删除任意文件: (1)ERASE filename|? (2)DELETE FILE [filename|?]  任意文件改名(或文件移动到另一文件夹): RENAME filename1 TO filename2 其中filename1和filename2都可以包含路径。如二者不在同一文件夹,则将filename1移动到filename2所在的文件夹。  显示一个文件夹中的文件信息: DIR | DIRECTORY  [ON drive]  从磁盘上删除一个文件夹: RD | REDIR 文件夹名  在磁盘上建立一个文件夹: MD | MKDIR文件夹名  六、数据的复制与传送    单个记录与数组间的数据传送  当前记录 → 数组或内存变量:    SCATTER [FIELDS字段名列表][MEMO]TO 数组名 [BLANK] | MEMVAR [BLANK] 其中[BLANK]表示建立一个空元素的数组。如果用MEMVAR子句,则表示将各字段的值复制到同名同类型的内存变量。 如果包含MEMO子句,则备注字段一起复制。    数组或内存变量 → 当前记录  GATHER FROM  数组名 | MEMVAR [FILEDS字段名列表] [MEMO] 用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。   成批记录与数组间的数据传送  表 → 数组:  COPY TO ARRAY arrayname [常用子句]  数组 → 表: (1) APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS字段名列表] 用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。  (2) REPLACE FROM ARRAY数组名 [常用子句] 用内存数组的值更新数据表中符合条件的记录。   查询结果 → 数组: SELECT …… INTO ARRAY arrayname 将SQL SELECT语句的查询结果传给数组arrayname。这里“SELECT ……”可为各种形式的SELECT查询语句。   给内存变量赋值: STORE 表达式 TO 变量名 或 变量名=表达式   七、排序与索引    将当前表排序后建立一个新数据表: SORT TO  文件名  ON  字段名1  [/A | /D] ; [/C] [  字段名2  [/A | /D] [/C] ...]; [ASCENDING | DESCENDING] [常用子句];   建立单索引文件: INDEX  ON  表达式  TO  单索引文件名; [FOR<条件>]  [UNIQUE] [COMPACT]; [ASCENDING][DESCENDING][ADDITIVE]   建立复合索引文件: INDEX   ON  表达式 TO  TAG  索引名 [OF 复合索引文件名]; [FOR 条件] [UNIQUE|CANDIDATE]; [ASCENDING][DESCENDING][ADDITIVE]   使用索引文件: 打开表时将索引文件一并打开,USE命令带INDEX子句: USE tablename|? [IN 工作区号][INDEX 索引文件名列表|?]   给当前表打开一个或多个索引文件: SET INDEX TO[索引文件名列表|?]; [ORDER 索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] ; [ASCENDING][DESCENDING]]   指定字符字段在排序或索引时的整理系列: SET COLLATE TO 整理系列 对于汉字字符串,“整理系列”可以是“Machine”、“PinYin”或“Stroke”三者之一(必须带引号),分别表示按机器码、拼音和笔划排序。   指定当前表中的控制索引文件或标记: SET ORDER TO; [索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名]; [IN 工作区号|表别名]; [ASCENDING][DESCENDING]   删除索引 DELETE   TAG  ALL [OF 复合索引文件名] DELETE   TAG  索引标识1 [OF 复合索引文件名1]; [,索引标识2 [OF 复合索引文件名2]]…   八、查找和定位    顺序查找当前表中满足条件的第一条记录: LOCATE FOR 条件下[范围][WHILE条件] 找到后将记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真。   在索引表中查找: FIND cExpr 其中cExpr为字符串表达式。如果找到,则记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。   在索引表中查找: SEEK eExpr; [ORDER 索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] ; [ASCENDING][DESCENDING]]; [IN 工作区号|表别名] 如果找到,则记录指针定位在满足条件的第一条记录,且为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。   继续查找: CONTINUE 用LOCATE、 FIND或 SEEK查找到一条记录后,用CONTINUE继续查找下一条。   用以上查找命令LOCATE、 FIND、SEEK和CONTINUE的查找结果,都可以通过函数FOUND()的返回值反映出来。   九、统计计算    统计表中的记录数: COUNT [范围] [FOR 条件] [WHILE 条件][TO内存变量名] 统计满足条件的记录数,显示记录数或将结果赋给内存变量名。   求和: SUM  [表达式列表]; [范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]   求平均值: AVERAGE [表达式列表]; [范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]   对当前表中数值型字段进行分组求和: TOTAL TO tablename ON 字段名[常用子句] 其中tablename为存放结果的表文件名,字段名为确定求和分组的字段。   计算: CALCULATE 表达式列表; [范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名] 其中表达式列表可以是如下函数的任意组合: AVG(nExpr), CNT(), MAX(eExpr), MIN(eExpr), NPV(nExpr1, nExpr2,…), STD(nExpr),SUM(nExpr),VAR(nExpr) 其中nExpr为数值表达式,eExpr为任意表达式。   十、程序控制    条件语句: IF 条件 [THEN] …… [ELSE] [……] ENDIF   多分支语句: DO CASE        CASE 逻辑表达式1        ……        CASE 逻辑表达式2        …… CASE 逻辑表达式n        ……        [OTHERWISE]        …… ENDCASE   DO循环: DO WHILE 条件  [LOOP] …… [EXIT] …… ENDDO   FOR循环 FOR 循环变量=初值 TO 终值 STEP 步长 ……(中间可插入[LOOP]或[EXIT]) ENDFOR | NEXT   扫描循环(对一个表中满足条件的记录进行循环): SCAN [范围] [FOR 条件] [WHILE 条件] ……(中间可插入[LOOP]或[EXIT]) ENDSCAN   集合扫描循环 FOR EACH Var IN Group Commands [EXIT] [LOOP] ENDFOR | NEXT [Var]   十一、其它    定义数组: DECLARE | DIMENSION 数组名(下标1,下标2,……)   定义过程: PROCEDURE 过程名 PARAMETERS 参数表 …… RETURN [TO MASTER | TO 程序名]   定义函数: FUNCTION 函数名 PARAMETERS 参数表 …… RETURN 表达式   调用一个子程序或过程 DO 子程序名 | 过程名 [IN 程序文件名][WITH 实在参数表]   定义公共变量: PUBLIC 变量名列表 PUBLIC [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]   定义私有变量 PRIVATE变量名列表 PRIVATE ALL[LIKE | EXCEPT 通配符]   定义局部变量 LOCAL 变量名列表 LOCAL  [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]   显示各种信息: LIST … (格式见有关手册) DISPLAY … (格式见有关手册)   输出提示信息: WAIT [<提示信息>] [TO <内存变量>];   [WINDOW[AT[<行>,< 列>] [NOWAIT]];   [CLEAR|NOCLEAR]; [TIMEOUT<数值表达式>]   各种设置命令: 设置是否显示日期中的世纪: SET CENTURY ON | OFF   设置显示的小数位数: SET DECIMALS TO 小数位数   设置是否处理带删除标记的记录: SET DELETED ON | OFF 如果设置为ON,则不处理带删除标记的记录。   设置是否显示命令的结果: SET TALK ON | OFF   设置文件的搜索路径: SET PATH TO 路径   设置传给子程序或自定义函数的参数是按值还是按引用方式传递: SET UDFPARMS TO VALUE | REFERENCE 如设置为TO VALUE,表示按值传递。   执行一个外部命令或程序: RUN 命令或程序   在指定的位置显示或打印: @行,列 SAY  …   在指定的位置显示表达式的值,并等待用户输入,将输入值赋给一变量: @行,列 SAY  表达式 GET 变量名 [DEFAULT 表达式] READ   例: @2,2 say "请输入金额: " get nMoney default 50 Read 此例先在第2行、第2列显示"请输入金额: ",等待用户输入一个数值,将用户输入值赋给变量nMoney,如果用户不输入数值(直接按回车),则将50赋给nMoney。请注意在下一行不能漏掉“Read”。 ------------------------------------- replace xqdm with "12",zxdm with "1213",zxdm with "官坂中学" for 1=1 copy to yyy.xls fields zxmc,xh type xl5 ----------------将ljzk分解为1201等--------------------- use ljzk.dbf for i=1201 to 1295 copy to str(i) for substr(bmh,3,4)=alltrim(str(i))//去除空格 endfor ------------------------------------- ************删除空表************* close all for i=1203 to 1295 use str(i) if recc()<2 then close all DELETE FILE str(i)+".dbf" endif endfor *********copy to str(i) TYPE XL5 fields bmh,xm for substr(bmh,3,4)=alltrim(str(i))**分解为xl5*** append from a1.dbf for recno()=3//增加a1.dbf中的第3记录到当前表中 append from a1.dbf for xh="011203012"//增加a1.dbf中的xh="011203012"的记录到当前表中 delete for xm="林绍锋"//删除 list xh,zxdm for substr(xh,1,1)="T" ---------------------------------------- *************合并表***************** close all use ljtj.dbf b="已合并了" c=0 for i=1204 to 1246 a="tj"+alltrim(str(i))+".dbf" if file(a) then append from "tj"+alltrim(str(i))+".dbf" b=b+"、"+a c=c+1 endif endfor messagebox(b+"共"+str(c),1) ****************
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服