课程:
谁能列表告诉我Visual FoxPro的一些常用命令
Visual FoxPro常用命令分类表
数据库文件及记录命令
ADD TABLE 在当前数据库中添加一个自由表
APPEND 在表的末尾添加一个或多个新记录
APPEND FROM ARRAY 由数组添加记录到表中
APPEND FROM 从一个文件中读入记录,追加到当前表的尾部
APPEND GENERAL 从文件中导入OLE对象并将其放入通用字段中
APPEND MEMO 将文本文件的内容复制到备注字段中
APPEND PROCEDURES 将文本文件中的存储过程追加到当前数据库中
AVERAGE 计算数值表达式或字段的算术平均值
BLANK 清除当前记录中所有字段的数据
BROWSE 打开浏览窗口,显示当前或选定表的记录
CALCULATE 对表中的字段或包含字段的表达式进行财务和统计操作
CHANGE 显示要编辑的字段
CLOSE 关闭各种类型的文件
CLOSE MEMO 关闭一个或多个备注编辑窗口
COMPILE DATABASE 编译数据库中的存储过程
CONTINUE 继续执行先前的LOCATE命令
COPY MEMO 复制当前记录中的指定备注字段的内容到文本文件
COPY PROCEDURES 将当前数据库中’的存储过程复制到文本文件
COPY STRUCTURE 用当前选择的表结构创建一个新的空自由表
COPY STRUCTURE EXTENDED 创建新表,它的字段包含当前选定表的结构信息
COPY TO ARRAY 将当前选定表中的数据复制到数组
COPY TO 用当前选定表的内容创建新文件
COUNT 统计表中记录数目
CREATE 生成一个新的VisualFoxPro表
CREATE CONNECTION 创建一个命名连接并把它存储在当前数据库中
CREATE DATABASE 创建并打开一个数据库
CREATE TRIGGER 创建表的删除、插入或更新触发器
CREATE VIEW 从VisualFoxPro环境创建视图文件
DELETE 给要删除的记录做标记
DELETE CONNECTION 从当前数据库中删除一个命名连接
DELETE DATABASE 从磁盘上删除数据库
DELETE TRIGGER 从当前数据库的表中删除“删除”、“插入”或“更新”触发器│
DELETE VIEW 从当前数据库中删除一个SQL视图
DISPLAY 在VisualFoxPro主窗口或用户自定义窗口中显示与当前表有关的信息
DISPLAY CONNECTIONS 显示当前数据库中与命名连接有关的信息
DISPLAY DATABASE 显示有关当前数据库的信息,或当前数据库中的字段、命名连接、表或视图的信息
DISPLAY MEMORY 显示内存变量和数组的当前内容
DISPLAY PROCEDURES 显示当前数据库中存储过程的名称
DISPLAY STRUCTURE 显示一个表文件的结构
DISPLAY TABLES 显示包含在当前数据库中所有的表和表的信息
DISPLAY VIEWS 显示当前数据库中关于SQL视图的信息以及SQL视图是否基于本地或远程表的信息
DROP TABLE 把一个表从数据库中移出,并从磁盘中删除它
DROP VIEW 从当前数据库中删除指定的SQL视图
EDIT 显示要编辑的字段
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”。
求VFP常用命令
VF常用命令和程序命令一、主要命令:
1、CREATE
作用:建立一个新的表。
格式:CREATE [文件|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA
,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同
时选择,下同。)
说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会
弹出
对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,
要求用
户输入想要建立的表名。
2、MODIFY STRUCTURE
作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE
说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND
作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]
说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK参
数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT
作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]
说明:INSERT 在当前记录后插入一记录;
INSERT BEFORE 在当前记录前插入一记录;
INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE
作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE
6、USE
作用:打开和关闭表文件。
格式:USE [文件名]
USE
说明:前一个命令用来打开文件名指定的表文件,该表如有备注型字段,则同时打开相应
的
备注文件(.fpt文件);后一个命令关闭当前打开的表文件。
7、LIST和DISPLAY
作用:显示表(.dbf)的内容、结构或状态。
格式:LIST|DISPLAY [OFF] [范围] [FIELDS] 表达式表 [WHILE 条件] [FOR 条件
]
[TO PRINT|TO FILE 文件]
LIST|DISPLAY STRUCTURE TO PRINT|TO FILE 文件]
LIST|DISPLAY STATUS [TO PRINT|TO FILE 文件]
说明:命令带OFF参数表示不显示记录号,范围指定对哪些记录进行操作,范围包括:
RECORD n
第几号记录、NEXT n 当前记录开始的几个记录、REST 自当前记录开始至文件末尾的所有记
录、ALL
所有的记录。不选范围则隐含范围为ALL;FIELDS后跟字段名,字段名与字段名之间用逗号
分
隔。WHILE后跟条件,FOR后面也跟条件,区别是,WHILE后的条件如果满足,便停止查找;
FOR后的
条件查找所有满足条件的记录。TO PRINT和TO FILE 文件分别表示将显示结果在打印机上
打印出
来和将显示结果输出到文件。DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示
,并且在
该命令中,如果省略范围仅显示当前记录。格式中,下面两个命令分别为显示表结构(
STRUCTURE)和工作状态(STATUS)。
8、记录的定位
作用:用记录指针(POINTER)定位记录。
格式:GO[TO] RECORD n|TOP|BOTTOM
n
SKIP [+|-]
说明:第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录,
BOTTOM定位到最后一个记录。第二个命令定位到第n个记录,n是一个数值。第三个命令又叫
相对定
位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后
移一个记录。
9、CHANGE和EDIT
作用:显示要编辑或修改的字段。
格式:CHANGE|EDIT [范围] [FIELDS 字段名表] [WHILE 条件] [FOR 条件]
10、BROWSE
作用:打开一个"浏览"窗口,供用户浏览或修改记录。
格式:BROWSE [FIELDS 字段名表]
11、REPLACE
作用:用表达式的值代替命令中与之相对应的字段的内容。
格式:REPLACE [范围] 字段1 WITH 表达式1[,字段2 WITH 表达式2] [FOR 条
件
] [WHILE条件]
12、DELETE、PACK、ZAP和RECALL
作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录
的
删除标志。
格式:DELETE [范围] [WHILE条件] [FOR 条件] (特例:DELETE FILE
FILENAME.DBF,
该命令删除指定的表文件)
PACK
ZAP
RECALL [范围] [FOR 条件] [WHILE条件]
13、SORT和INDEX
作用:分别是建立一个其记录以新的物理顺序排列的新表文件和对当前表根据关键字表达式
的值
从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。
格式:SORT TO 文件名 ON 字段名1 [/A] [/C] [/D][,字段名2 [/A] [/C]
[/D]]...
[ASCENDING|DESCENDING] [范围] [FOR 条件] [WHILE条件] [FIELDS字段表]
INDEX ON 关键字表达式 TO 文件名
INDEX ON 关键字表达式 TAG 标识名 [OF 文件名] [FOR 条件]
说明:第1个命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小写,针对字
符型
关键字而言,ASCENDING和DESCENDING分别表示升序和降序。第1个命令建立.dbf表文件,第
2个命令
建立.idx单一索引文件,第3个命令建立.cdx复合索引文件(Compound Index)。
14、USE 表文件名 INDEX 索引文件名表、SET INDEX TO和SET ORDER TO
作用:分别是打开表文件的同时打开索引文件、打开索引文件和改变主索引。
格式:USE 表文件名 INDEX 索引文件名表
SET INDEX TO [索引文件名表]
SET ORDER TO [索引文件名](特例:重新索引命令:REINDEX)
15、FIND、SEEK和LOCATE及CONTINUE
作用:前两个命令FIND和SEEK是在一个已经建立了索引文件的表中,定位到关键字中的内容
与命
令行中字符串相同的第一个记录。后一个命令在用USE打开表文件以后,直接查询表中字段
内容。
格式:FIND "字符串"|字符串
SEEK 表达式
LOCATE [范围] [FOR 条件] [WHILE条件]
CONTINUE
说明:FIND命令与SEEK命令的区别是前者后跟字符串,而后者后跟表达式。在用LOCATE命令
找到
一个匹配记录后,可用CONTINUE命令搜索表的剩余部分来寻找其他匹配的记录。
16、COUNT
作用:统计当前表文件中符合条件的记录数。
格式:COUNT [范围] [FOR 条件] [WHILE条件] [TO 内存变量名]
说明:内存变量名可用除参数外的任意字符。
17、SUM
作用:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求
和。
格式:SUM [范围] [数值表达式] [TO 内存变量名表] [FOR 条件] [WHILE条件]
18、AVERAGE
作用:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。
格式:AVERAGE [范围] [数值表达式] [TO 内存变量名表] [FOR 条件] [WHILE条
件]
二、常用函数
1、数学函数
函数 用途
ABS(数值表达式) 绝对值,|x|
CEILING(数值表达式) =自变量的最小整数
EXP(数值表达式) 对基E的幂,e=2.71828
FLOOR(数值表达式) =自变量的最大整数
INT(数值表达式) 取整(舍尾)自变量
LOG(数值表达式) 自变量的自然对数,ln x
LOG10(数值表达式) 自变量的普通对数,lg x
MAX(表达式1,表达式2) 两个值的最大值
MIN(表达式1,表达式2) 两个值的最小值
MOD(数值表达式1,数值表达式2) 求余数
RAND([数值表达式1]) 返回伪随机数
ROUND(数值表达式1,数值表达式2) 四舍五入第一个自变量
SIGN(数值表达式) 自变量的符号
SQRT(数值表达式) 平方根(正根)
2、字符串操作函数
函数 用途
内存变量 用于代替内存变量内容
LEN(字符串表达式) 返回字符串表达式的字符个数
SPACE(数值表达式) 生成空格
SUBSTR(字符串表达式,数值表达式n[,数值表达式L]) 求子字符串,从指定的字
符串表达式第n个开始,总长为L的字符串
LOWER(字符串表达式) 将字符串字母转换成小写字母
UPPER(字符串表达式) 将字符串字母转换成大写字母
TRIM(字符串表达式) 删除字符串尾空格
ASC(字符串表达式) 返回字符串表达式最左边的第一个字符的ASCII码
CHR(数值表达式) 将数值表达式转换成字符
AT(字符串表达式1,字符串表达式2[,数值表达式n]) 确定字符串表达式1在字符
串表达式2中的位置,n为字符串表达式第几次出现
STR(数值表达式[,数值表达式L][,数值表达式n) 将数值转换为字符串,L为数值
表达式总长,n为小数位数
VAL(字符串表达式) 将数字字符串转换为数字
TYPE(表达式) 检测表达式值的数据类型
LTRIM(字符串表达式) 删除字符串左部空格
RTRIM(字符串表达式) 删除字符串右部空格
LEFT(字符串表达式,数值表达式n) 取字符串左边部分字符,n为返回的字符个数
RIGHT(字符串表达式,数值表达式n) 取字符串右边部分字符,n从右边截取字符个数
3、表(.dbf)操作函数
函数 用途
BOF([工作区号或别名]) 查表文件开始函数
EOF([工作区号或别名]) 表文件结尾测试函数
RECNO([工作区号或别名]) 测试当前或指定工作区表的当前记录号
DELETED([工作区号或别名]) 记录删除测试函数
FILE("字符串") 测试文件是否存在函数
DBF([工作区号或别名]) 检测表的文件名函数
4、日期、时间函数
函数 用途
DATE() 查系统当前日期函数
TIME([数值表达式]) 查系统当前时间函数
YEAR(日期型表达式|日期时间型表达式) 由日期查年函数
MONTH(日期型表达式|日期时间型表达式) 从日期查月份函数
CMONTH(日期型表达式|日期时间型表达式) 由日期查月份名函数
DAY(日期型表达式|日期时间型表达式) 从日期查当月的日函数
DOW(日期型表达式|日期时间型表达式[,数值表达式]) 由日期查星期函数
CDOW(日期型表达式|日期时间型表达式) 从日期查星期名函数
DTOC(日期型表达式|日期时间型表达式) 日期转换为字符函数
CTOD(字符串表达式) 字符串转换为日期函数
CTOT(字符串表达式) 返回日期时间值函数
TTOC(日期时间型表达式) 返回字符值
5、显示、打印位置函数
函数 用途
ROW() 判断光标行位置函数
COL() 判断光标列位置函数
INKEY([数值表达式]) 检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等
待击键的时间
6、其他函数
函数 用途
DISKSPACE() 返回默认磁盘驱动器中可用字节数函数
OS() 检测操作系统名称的函数
VERSION() 返回VFP版本号的函数
三、主要程序语句
1、条件判断语句
格式:(1)IF 条件
命令语句组
ENDIF
说明:如果条件为真,则执行命令语句组中的各语句,否则跳过这些命令语句不执行,
而执行ENDIF后的语句。
(2)IF 条件
命令语句组1
ELSE
命令语句组2
ENDIF
说明:如果条件为真,执行命令语句组1,否则执行命令语句组2。
(3)IF 条件1
IF 条件2
命令语句组1
ELSE
命令语句组2
ENDIF
...
ELSE
命令语句组N
ENDIF
说明:进行多重条件的嵌套选择。
(4)DO CASE
CASE 条件1
命令语句组1
CASE 条件2
命令语句组2
CASE 条件3
命令语句组3
...
...
CASE 条件N
命令语句组N
[OTHERWISE]
[命令语句组N+1]
ENDCASE
说明:依次判断条件,转入条件为真的命令语句组中执行。当所有条件都不成立时,若有
OTHERWISE项,则执行命令语句组N+1,否则执行ENDCASE后面的语句。
2、循环语句
格式:(1)DO WHILE 条件
命令语句组
[LOOP]
命令语句组
[EXIT]
命令语句组
ENDDO
说明:判断条件是否为真,如为真就重复执行循环体中的命令语句组,直到条件为假,结束
循
环。
(2)SCAN
命令语句组
ENDSCAN
说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操作,直到表文
件
记录完为止。
VFP常用函数使用说明
1、数值运算函数
函数 操作 例 结果
SQRT(x) 求平方根 SQRT(9) 3
INT(x) 取整数 INT(3.14) 3
ROUND(x) 四舍五入 ROUND(3.14159,4) 3.1416
MOD(x,y) 求X除以Y的余数 MOD(25,4) 1
MAX(x,y) 求X,Y中的最大值 MAX(7,8) 8
MIN(x,y) 求X,Y中的最小值 MIN(1,2,3) 1
2、字符中操作函数
函数名 操作 例 结果
UPPER(S) 小写字母 UPPER(abc) ABC
LOWER(S) 大写字母 LOWER(ACD) acd
LEN(S) 求字符串的长度 LEN("中国1号") 7
AT(S1,S2) 在字符串S2,找字符串S1 AT("H","CHINA") 2
SUBSTR(S,I,N) 在S字符串中的第I个字符起取N个字符 SUBSTR('TECHNOLO',3,3) CHN
LEFT(S,N) 从字符串S左边取N个字符 LEFT("中国人",4) 中国
RIGHT(S,N) 从字符串S右边取N个字符 S=‘12345'
RIGHT(S,3) 345
SPACE(N) 生成N个空格 "合计"+SPACE(2)+"123" 合计123
TRIM(S) 消除字符串尾部空格 TRIM("姓名 ") 姓名
ALLTRI(S) 消除字符串中所有空格 ALLTRIM("李 丽") 李丽
STUFF(S1,N1,N2,S2) 用字符串S2替换S1中第N1个字符起的N2个字符 STUFF("NOW",2,
1,"E") NEW
宏替换 P="G2"
USE P USE G2
3、日期和时间函数
函数名 操作 例 结果
DATE() 求当前日期 DATE() 2001/11/12
DATETIME() 求当前日期和时间 DATETIME() 2001/11/12/0:22:33am
YEAR(D) 求年份 YEAR(DATE()) 2001
MONTH(D) 求月份(数值) MONTH(DATETIME()) 11
CMONTH(D) 求月份(字符) MONTH(DATETIME()) Novenber
DAY(D) 求日期 DAY(DATE()) 12
DOW(D) 求星期几(数值) DOW(DATE()) 1
CDOW(D) 求星期几(英文) CDOW(DATE()) sunday
TIME(D) 求当前时间 TIME(DATE()) 10:20:38am
4、数据类型转换函数
函数名 操作 例 结果
ASC(S) 求第一个字符串的ASCII码 ASC("what") 87
CHR(N) 求ASCII码的字符 CHR(87) w
STR(R,L,D) 数值转换成字符,L为长度,D为小数位数 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字符串转换为数值 VAL("123") 123.00
CTOD(S) 字符串转日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期转换成字符串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期转成年月日式的字符串 DTOS(DATE()) 20021101
CTOT(C) 字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型转为日期时间型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期时间型转为字符型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期时间型转为日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 逻辑判断 IIF(A0,"YES","NO") YES
5、检测函数
函数名 操作 例 结果
RECNO() 检测当前记录号 RECNO() 1
RECCOUNT() 检测当前记录数 RECCOUNT() 12
BOF() 开始记录 BOF() 1
EOF() 最后记录 EOF() 12
FOUND() 返回查找结果 FOUND() .T.
ROW() 返回当前行坐标 ROW() 1
COL() 返回当前列坐
跪求:VF6.0常用命令
VF6.0常用命令和主要程序命令
一、主要命令:
二、常用函数
三、主要程序语句
一、主要命令:
1、CREATE
作用:建立一个新的表。
格式:CREATE [文件|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA
,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同
时选择,下同。)
说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会
弹出
对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,
要求用
户输入想要建立的表名。
2、MODIFY STRUCTURE
作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE
说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND
作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]
说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK参
数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT
作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]
说明:INSERT 在当前记录后插入一记录;
INSERT BEFORE 在当前记录前插入一记录;
INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE
作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE
6、USE
作用:打开和关闭表文件。
格式:USE [文件名]
USE
说明:前一个命令用来打开文件名指定的表文件,该表如有备注型字段,则同时打开相应
的
备注文件(.fpt文件);后一个命令关闭当前打开的表文件。
7、LIST和DISPLAY
作用:显示表(.dbf)的内容、结构或状态。
格式:LIST|DISPLAY [OFF] [范围] [FIELDS] 表达式表 [WHILE 条件] [FOR 条件
]
[TO PRINT|TO FILE 文件]
LIST|DISPLAY STRUCTURE TO PRINT|TO FILE 文件]
LIST|DISPLAY STATUS [TO PRINT|TO FILE 文件]
说明:命令带OFF参数表示不显示记录号,范围指定对哪些记录进行操作,范围包括:
RECORD n
第几号记录、NEXT n 当前记录开始的几个记录、REST 自当前记录开始至文件末尾的所有记
录、ALL
所有的记录。不选范围则隐含范围为ALL;FIELDS后跟字段名,字段名与字段名之间用逗号
分
隔。WHILE后跟条件,FOR后面也跟条件,区别是,WHILE后的条件如果满足,便停止查找;
FOR后的
条件查找所有满足条件的记录。TO PRINT和TO FILE 文件分别表示将显示结果在打印机上
打印出
来和将显示结果输出到文件。DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示
,并且在
该命令中,如果省略范围仅显示当前记录。格式中,下面两个命令分别为显示表结构(
STRUCTURE)和工作状态(STATUS)。
8、记录的定位
作用:用记录指针(POINTER)定位记录。
格式:GO[TO] RECORD n|TOP|BOTTOM
n
SKIP [+|-]
说明:第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录,
BOTTOM定位到最后一个记录。第二个命令定位到第n个记录,n是一个数值。第三个命令又叫
相对定
位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后
移一个记录。
9、CHANGE和EDIT
作用:显示要编辑或修改的字段。
格式:CHANGE|EDIT [范围] [FIELDS 字段名表] [WHILE 条件] [FOR 条件]
10、BROWSE
作用:打开一个"浏览"窗口,供用户浏览或修改记录。
格式:BROWSE [FIELDS 字段名表]
11、REPLACE
作用:用表达式的值代替命令中与之相对应的字段的内容。
格式:REPLACE [范围] 字段1 WITH 表达式1[,字段2 WITH 表达式2] [FOR 条
件
] [WHILE条件]
12、DELETE、PACK、ZAP和RECALL
作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录
的
删除标志。
格式:DELETE [范围] [WHILE条件] [FOR 条件] (特例:DELETE FILE
FILENAME.DBF,
该命令删除指定的表文件)
PACK
ZAP
RECALL [范围] [FOR 条件] [WHILE条件]
13、SORT和INDEX
作用:分别是建立一个其记录以新的物理顺序排列的新表文件和对当前表根据关键字表达式
的值
从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。
格式:SORT TO 文件名 ON 字段名1 [/A] [/C] [/D][,字段名2 [/A] [/C]
[/D]]...
[ASCENDING|DESCENDING] [范围] [FOR 条件] [WHILE条件] [FIELDS字段表]
INDEX ON 关键字表达式 TO 文件名
INDEX ON 关键字表达式 TAG 标识名 [OF 文件名] [FOR 条件]
说明:第1个命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小写,针对字
符型
关键字而言,ASCENDING和DESCENDING分别表示升序和降序。第1个命令建立.dbf表文件,第
2个命令
建立.idx单一索引文件,第3个命令建立.cdx复合索引文件(Compound Index)。
14、USE 表文件名 INDEX 索引文件名表、SET INDEX TO和SET ORDER TO
作用:分别是打开表文件的同时打开索引文件、打开索引文件和改变主索引。
格式:USE 表文件名 INDEX 索引文件名表
SET INDEX TO [索引文件名表]
SET ORDER TO [索引文件名](特例:重新索引命令:REINDEX)
15、FIND、SEEK和LOCATE及CONTINUE
作用:前两个命令FIND和SEEK是在一个已经建立了索引文件的表中,定位到关键字中的内容
与命
令行中字符串相同的第一个记录。后一个命令在用USE打开表文件以后,直接查询表中字段
内容。
格式:FIND "字符串"|字符串
SEEK 表达式
LOCATE [范围] [FOR 条件] [WHILE条件]
CONTINUE
说明:FIND命令与SEEK命令的区别是前者后跟字符串,而后者后跟表达式。在用LOCATE命令
找到
一个匹配记录后,可用CONTINUE命令搜索表的剩余部分来寻找其他匹配的记录。
16、COUNT
作用:统计当前表文件中符合条件的记录数。
格式:COUNT [范围] [FOR 条件] [WHILE条件] [TO 内存变量名]
说明:内存变量名可用除参数外的任意字符。
17、SUM
作用:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求
和。
格式:SUM [范围] [数值表达式] [TO 内存变量名表] [FOR 条件] [WHILE条件]
18、AVERAGE
作用:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。
格式:AVERAGE [范围] [数值表达式] [TO 内存变量名表] [FOR 条件] [WHILE条
件]
二、常用函数
1、数学函数
函数 用途
ABS(数值表达式) 绝对值,|x|
CEILING(数值表达式) =自变量的最小整数
EXP(数值表达式) 对基E的幂,e=2.71828
FLOOR(数值表达式) =自变量的最大整数
INT(数值表达式) 取整(舍尾)自变量
LOG(数值表达式) 自变量的自然对数,ln x
LOG10(数值表达式) 自变量的普通对数,lg x
MAX(表达式1,表达式2) 两个值的最大值
MIN(表达式1,表达式2) 两个值的最小值
MOD(数值表达式1,数值表达式2) 求余数
RAND([数值表达式1]) 返回伪随机数
ROUND(数值表达式1,数值表达式2) 四舍五入第一个自变量
SIGN(数值表达式) 自变量的符号
SQRT(数值表达式) 平方根(正根)
2、字符串操作函数
函数 用途
内存变量 用于代替内存变量内容
LEN(字符串表达式) 返回字符串表达式的字符个数
SPACE(数值表达式) 生成空格
SUBSTR(字符串表达式,数值表达式n[,数值表达式L]) 求子字符串,从指定的字
符串表达式第n个开始,总长为L的字符串
LOWER(字符串表达式) 将字符串字母转换成小写字母
UPPER(字符串表达式) 将字符串字母转换成大写字母
TRIM(字符串表达式) 删除字符串尾空格
ASC(字符串表达式) 返回字符串表达式最左边的第一个字符的ASCII码
CHR(数值表达式) 将数值表达式转换成字符
AT(字符串表达式1,字符串表达式2[,数值表达式n]) 确定字符串表达式1在字符
串表达式2中的位置,n为字符串表达式第几次出现
STR(数值表达式[,数值表达式L][,数值表达式n) 将数值转换为字符串,L为数值
表达式总长,n为小数位数
VAL(字符串表达式) 将数字字符串转换为数字
TYPE(表达式) 检测表达式值的数据类型
LTRIM(字符串表达式) 删除字符串左部空格
RTRIM(字符串表达式) 删除字符串右部空格
LEFT(字符串表达式,数值表达式n) 取字符串左边部分字符,n为返回的字符个数
RIGHT(字符串表达式,数值表达式n) 取字符串右边部分字符,n从右边截取字符个数
3、表(.dbf)操作函数
函数 用途
BOF([工作区号或别名]) 查表文件开始函数
EOF([工作区号或别名]) 表文件结尾测试函数
RECNO([工作区号或别名]) 测试当前或指定工作区表的当前记录号
DELETED([工作区号或别名]) 记录删除测试函数
FILE("字符串") 测试文件是否存在函数
DBF([工作区号或别名]) 检测表的文件名函数
4、日期、时间函数
函数 用途
DATE() 查系统当前日期函数
TIME([数值表达式]) 查系统当前时间函数
YEAR(日期型表达式|日期时间型表达式) 由日期查年函数
MONTH(日期型表达式|日期时间型表达式) 从日期查月份函数
CMONTH(日期型表达式|日期时间型表达式) 由日期查月份名函数
DAY(日期型表达式|日期时间型表达式) 从日期查当月的日函数
DOW(日期型表达式|日期时间型表达式[,数值表达式]) 由日期查星期函数
CDOW(日期型表达式|日期时间型表达式) 从日期查星期名函数
DTOC(日期型表达式|日期时间型表达式) 日期转换为字符函数
CTOD(字符串表达式) 字符串转换为日期函数
CTOT(字符串表达式) 返回日期时间值函数
TTOC(日期时间型表达式) 返回字符值
5、显示、打印位置函数
函数 用途
ROW() 判断光标行位置函数
COL() 判断光标列位置函数
INKEY([数值表达式]) 检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等
待击键的时间
6、其他函数
函数 用途
DISKSPACE() 返回默认磁盘驱动器中可用字节数函数
OS() 检测操作系统名称的函数
VERSION() 返回VFP版本号的函数
三、主要程序语句
1、条件判断语句
格式:(1)IF 条件
命令语句组
ENDIF
说明:如果条件为真,则执行命令语句组中的各语句,否则跳过这些命令语句不执行,
而执行ENDIF后的语句。
(2)IF 条件
命令语句组1
ELSE
命令语句组2
ENDIF
说明:如果条件为真,执行命令语句组1,否则执行命令语句组2。
(3)IF 条件1
IF 条件2
命令语句组1
ELSE
命令语句组2
ENDIF
...
ELSE
命令语句组N
ENDIF
说明:进行多重条件的嵌套选择。
(4)DO CASE
CASE 条件1
命令语句组1
CASE 条件2
命令语句组2
CASE 条件3
命令语句组3
...
...
CASE 条件N
命令语句组N
[OTHERWISE]
[命令语句组N+1]
ENDCASE
说明:依次判断条件,转入条件为真的命令语句组中执行。当所有条件都不成立时,若有
OTHERWISE项,则执行命令语句组N+1,否则执行ENDCASE后面的语句。
2、循环语句
格式:(1)DO WHILE 条件
命令语句组
[LOOP]
命令语句组
[EXIT]
命令语句组
ENDDO
说明:判断条件是否为真,如为真就重复执行循环体中的命令语句组,直到条件为假,结束
循
环。
(2)SCAN
命令语句组
ENDSCAN
说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操作,直到表文
件
记录完为止。
VFP常用函数使用说明
1、数值运算函数
函数 操作 例 结果
SQRT(x) 求平方根 SQRT(9) 3
INT(x) 取整数 INT(3.14) 3
ROUND(x) 四舍五入 ROUND(3.14159,4) 3.1416
MOD(x,y) 求X除以Y的余数 MOD(25,4) 1
MAX(x,y) 求X,Y中的最大值 MAX(7,8) 8
MIN(x,y) 求X,Y中的最小值 MIN(1,2,3) 1
2、字符中操作函数
函数名 操作 例 结果
UPPER(S) 小写字母 UPPER(abc) ABC
LOWER(S) 大写字母 LOWER(ACD) acd
LEN(S) 求字符串的长度 LEN("中国1号") 7
AT(S1,S2) 在字符串S2,找字符串S1 AT("H","CHINA") 2
SUBSTR(S,I,N) 在S字符串中的第I个字符起取N个字符 SUBSTR('TECHNOLO',3,3) CHN
LEFT(S,N) 从字符串S左边取N个字符 LEFT("中国人",4) 中国
RIGHT(S,N) 从字符串S右边取N个字符 S=‘12345'
RIGHT(S,3) 345
SPACE(N) 生成N个空格 "合计"+SPACE(2)+"123" 合计123
TRIM(S) 消除字符串尾部空格 TRIM("姓名 ") 姓名
ALLTRI(S) 消除字符串中所有空格 ALLTRIM("李 丽") 李丽
STUFF(S1,N1,N2,S2) 用字符串S2替换S1中第N1个字符起的N2个字符 STUFF("NOW",2,
1,"E") NEW
宏替换 P="G2"
USE P USE G2
3、日期和时间函数
函数名 操作 例 结果
DATE() 求当前日期 DATE() 2001/11/12
DATETIME() 求当前日期和时间 DATETIME() 2001/11/12/0:22:33am
YEAR(D) 求年份 YEAR(DATE()) 2001
MONTH(D) 求月份(数值) MONTH(DATETIME()) 11
CMONTH(D) 求月份(字符) MONTH(DATETIME()) Novenber
DAY(D) 求日期 DAY(DATE()) 12
DOW(D) 求星期几(数值) DOW(DATE()) 1
CDOW(D) 求星期几(英文) CDOW(DATE()) sunday
TIME(D) 求当前时间 TIME(DATE()) 10:20:38am
4、数据类型转换函数
函数名 操作 例 结果
ASC(S) 求第一个字符串的ASCII码 ASC("what") 87
CHR(N) 求ASCII码的字符 CHR(87) w
STR(R,L,D) 数值转换成字符,L为长度,D为小数位数 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字符串转换为数值 VAL("123") 123.00
CTOD(S) 字符串转日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期转换成字符串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期转成年月日式的字符串 DTOS(DATE()) 20021101
CTOT(C) 字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型转为日期时间型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期时间型转为字符型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期时间型转为日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 逻辑判断 IIF(A0,"YES","NO") YES
5、检测函数
函数名 操作 例 结果
RECNO() 检测当前记录号 RECNO() 1
RECCOUNT() 检测当前记录数 RECCOUNT() 12
BOF() 开始记录 BOF() 1
EOF() 最后记录 EOF() 12
FOUND() 返回查找结果 FOUND() .T.
ROW() 返回当前行坐标 ROW() 1
COL() 返回当前列坐标 COL() 1
SYS(N) 返回系统状态 SYS(13) 联机状态
长江后浪推前浪,前浪死在沙滩上 有事Q我
2005-09-18 21:46
举报帖子
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
键行天下
头衔:小兵
等级:论坛游民
文章:148
积分:786
门派:珠三角★武穴帮
注册:2005-08-05 QQ 第 2 楼
大家要多多光顾哦,有什么问题,尽管说,能帮的一定帮,QQ5396437
长江后浪推前浪,前浪死在沙滩上 有事Q我
2005-09-18 21:47
举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
选取所有╋月是故乡明 ├武穴新闻与观察 ├信息发布 ├身在他乡 ├活动专区╋生活娱乐 ├潮流·时尚 ├健康·养生 ├影音前线 ├图片纷飞╋互动交流 ├谈天·说地 ├清谈馆 ├文学天地 ├情感空间 ├游戏人生 ├体育天地 ├技术·交流╋论坛事务 ├议事大厅 | ├档案室 ├工作组 版主之家 2 2 1/1页 1
快速回复:
发贴表情
段落格式 普通格式标题 1标题 2标题 3标题 4标题 5标题 6标题 7已编排格式地址 字体宋体黑体楷体仿宋隶书幼圆新宋体细明体ArialArial BlackCourierVerdanaWide LatinWingdings 字号1234567
分页:1/7,共49个1234567
显示签名 内容限制:字节.
发短信
我能做什么
我发表的主题
我参与的主题
基本资料修改
用户密码修改
联系资料修改
用户短信服务
编辑好友列表
用户收藏管理
个人文件管理
今日贴数图例
主题数图例
总帖数图例
在线图例
在线情况
用户组在线图例
文件集浏览
图片集浏览
Flash浏览
音乐集浏览
电影集浏览
贺卡发送
沪ICP备05028498号
Powered By Dvbbs Version 7.1.0
Copyright ©2004 - 2005 Wuxueren.Com
页面执行时间 0.17188 秒, 3 次数据查询
visual foxpro 6.0
visual foxpro数据库函数
adatabases() 将所有打开数据库的名称和路径放到内存变量数组中
adbobjects() 把当前数据库中的命名连接名、关系名、表名或sql视图名放到一个内存变量数组中
afields() 把当前表的结构信息存放在一个数组中,并且返回表的字段数
alias() 返回当前表或指定工作区衰的别名
asessions() 创建一个已存在的数据工作期id数组
ataginfo() 创建一个包含索引和键表达式的名字、数量和类型信息的数组
aused() 将一个数据工作期中的表别名和工作区存入内存变量数组
bof() 确定当前记录指针是否在表头
candidate() 判断索引是否为候选索引
cdx() 根据指定的索引位置编号,返回打开的复合索引(.cdx)文件名称
cpdbp() 返回一个打开表所使用的代码页
createoffline() 由已存在的视图创建一个游离视图
cursorgetprop() 返回visualfoxpro表或临时表的当前属性设置
cursorsetprop() 指定visualfoxpro表或临时表的属性设置
cursortoxml() 转换visualfoxpro临时表为xml文本
curval() 从磁盘上的表或远程数据源中直接返回字段值
dbc() 返回当前数据库的名称和路径
dbf() 返回指定工作区中打开的表名,或根据表别名返回表名
dbsetprop() 给当前数据库或当前数据库中的字段、命名连接、表或视图设置一个属性
deleted() 返回一个表明当前记录是否标有删除标记的逻辑值
descending() 是否用descending关键字创建了一个索引标识
dropoffline() 放弃对游离视图的所有修改,并把游离视图放回到数据库中
eof() 确定记录指针位置是否超出当前表或指定表中的最后一个记录
fcount() 返回衰中的字段数目
field() 根据编号返回表中的字段名
filter() 返回setfilter命令中指定的表筛选表达式
fldlist() 对于setmelds命令指定的字段列表,返回其中的字段和计算结果字段表达式
flock() 尝试锁定当前表或指定表
for() 返回一个己打开的单项索引文件或索引标识的索引筛选表达式
found() 如果continue、find、locate或seek命令执行成功,函数的返回值为"真"
fsize() 以字节为单位,返回指定字段或文件的大小
getfldstate() 返回一个数值,标明表或临时表中的字段是否已被编辑,或是否有追加的记录,或者记录的删除状态是否已更改
getnextmodified() 返回一个记录号,对应于缓冲表或临时表中下一个被修改的记录
header() 返回当前或指定表文件的表头所占的字节数
idxcollate() 返回索引或索引标识的排序序列
indbc() 如果指定的数据库对象在当前数据库中,则返回"真"(.t.)
indexseek() 在一个索引表中搜索第一次出现的某个记录
isexclusive() 判断一个表或数据库是以独占方式打开的
isflocked() 返回表的锁定状态
isreadonly() 判断是否以只读方式打开表
isrlocked() 返回记录的锁定状态
key() 返回索引标识或索引文件的索引关键字表达式
keymatch() 在索引标识或索引文件中搜索一个索引关键字
lookup() 在表中搜索字段值与指定表达式匹配的第一个记录
lupdate() 返回一个表最近一次更新的日期
mdx() 根据指定的索引编号返回打开的.cdx复合索引文件名
memlines() 返回备注字段中的行数
mline() 以字符串形式返回备注字段中的指定行
ndx() 返回为当前表或指定表打开的某一索引(jdx)文件的名称
order() 返回当前表或指定表的主控索引文件或标识
primary() 检查索引标识,如果为主索引标识,就返回"真"(.t.)
reccount() 返回当前或指定表中的记录数目
recno() 返回当前表或指定表中的当前记录号
recsize() 返回表中记录的大小(宽度)
refresh() 在可更新的sql视图中刷新数据
relation() 返回为给定工作区中打开的表所指定的关系表达式
seek() 在一个已建立索引的表中搜索一个记录的第一次出现位置
select() 返回当前工作区编号或未使用工作区的最大编号
setfldstate() 为表或临时表中的字段或记录指定字段状态值或删除状态值
sqlcancel() 请求取消一条正在执行的sql语句
sqlcolumns() 把指定数据源表的列名和关于每列的信息存储到一个visualfoxpro临时表中
sqlcommit() 提交一个事务
sqlconnect() 建立一个指向数据源的连接
sqldisconnect() 终止与数据源的连接
sqlexec() 将一条sql语句送入数据源中处理
sqlgetprop() 返回一个活动连接的当前设置或默认设置
sqlmoreresults() 如果存在多个结果集合,则将另一个结果集合复制到visualfoxpro临时表中
sqlprepare() 在使用sqlexec()执行远程数据操作前,可使用本函数使远程数据为将要执行的命令做好准备
sqlrollback() 取消当前事务处理期间所做的任何更改
sqlsetprop() 指定一个活动连接的设置
sqlstringconnect() 使用一个连接字符串建立和数据源的连接
sqltables() 把数据源中的表名存储到visualfoxpro临时表中
sys(14) 索引表达式
sys(21) 控制索引编号
sys(22) 控制标识名或索引名
sys(2011) 返回当前工作区中记录锁定或表锁定的状态
sys(2012) 返回表的备注字段块大小
sys(2021) 筛选索引表达式
sys(2029) 返回与表类型对应的值
sys(3054) rushmore优化等级 ·
tag() 返回打开的.cdx多项复合索引文件的标识名,或者返回打开的.idx单项索引文件的文件名
tagcount() 返回复合索引文件(.cdx)标识以及打开的单项索引文件(.idx)的数目
tagno() 返回复合索引文件(.cdx)标识以及打开的单项索引(.idx)文件的索引位置
target() 返回一个表的别名,该表是setrelation命令的into子句所指定关系的目标
unique() 用于测试索引是否以惟一性方式建立
updated() 用于测试在最近的read命令中,数据是否已被修改
used() 确定是否在指定工作区中打开了一个表
xmltocursor() 转换xml文本到visualfoxpro游标或表
----------------------------------------------
visual foxpro日期和时间函数
ctod()把字符表达式转换成日期表达式。
cdow()从给定日期或日期时间表达式中返回星期值。
cmonth()返回给定日期或日期时间表达式的月份名称。
ctod()把字符表达式转换成日期表达式。
ctot()从字符表达式返回一个日期时间值。
date()返回由操作系统控件的当前系统日期,或创建一个与2000年兼容的日期值。
datetime()以日期时间值返回当前的日期和时间, 或创建一个 2000 兼容的日期时间值。
day()以数值型返回给定日期表达式或日期时间表达式是某月中的第几天。
dmy()从一个日期型或日期时间型表达式返回一个“日-月-年”格式的字符表达式(例如,31 may 1995)。月名不缩写。
dtoc()由日期或日期时间表达式返回字符型日期。
dtos()从指定日期或日期时间表达式中返回 yyyymmdd 格式的字符串日期。
dtot()从日期型表达式返回日期时间型值。
gomonth()对于给定的日期表达式或日期时间表达式,返回指定月份数目以前或以后的日期。
hour()返回日期时间表达式的小时部分。
mdy()以“月-日-年”格式返回指定日期或日期时间表达式,其中月份名不缩写。
minute()返回日期时间型表达式中的分钟部分。
month()返回给定日期或日期时间表达式的月份值。
quarter()返回一个日期或日期时间表达式中的季度值。
sec()返回日期时间型表达式中的秒钟部分。
seconds()以秒为单位返回自午夜以来经过的时间。
sys(1)以日期数字字符串的形式返回当前系统日期。
sys(2)返回自午夜零点开始以来的时间,按秒计算。
sys(10)将 (julian) 日期转换成一个字符串。
sys(11)将日期格式表示的日期表达式或字符串转换成 (julian) 日期。
time()以 24 小时制、8 位字符串(时:分:秒)格式返回当前系统时间。
ttoc()从日期时间表达式中返回一个字符值。
ttod()从日期时间表达式中返回一个日期值。
week()从日期表达式或日期时间表达式中返回代表一年中第几周的数值。
year()从指定的日期表达式中返回年份。
visual foxpro字符函数
alltrim(). 删除指定字符表达式的前后空格符
asc() 返回字符表达式中最左边字符的ansi值
at() 返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置
at_c() 返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置
atc() 返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置
atcc() 返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置
addbs() 如果必要,向一个路径表达式添加一个反斜杠
atcline() 返回一个字符表达式或备注字段在另一个字符表达式或备注字段中第一次出现的行号
atline() 返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的行号
between() 判断一个表达式的值是否在另外两个相同数据类型的表达式的值之间
chr() 根据指定的ansi数值代码返回其对应的字符
chrtran() 将第一个字符表达式中与第二个表达式的字符相匹配的字符替换为第3个表达式中相应的字符
chrtranc() 将第一个字符表达式中与第二个表达式的字符相匹配的字符替换为第3个表达式中相应的字符
cpconvert() 把字符、备注字段或字符表达式转换到其他代码页
chrsaw() 确定一个字符是否出现在键盘缓冲区中
chrtran() 在一个字符表达式中,把与第二个表达式字符相匹配的字符替换为第三个表达式中相应字符
chrtranc() 将第一个字符表达式中与第二个表达式的字符相匹配的字符替换为第三个表达式中相应的字符
difference() 返回0到4间的一个整数,表示两个字符表达式间的相对语音差别
empty() 确定表达式是否为空值
gerwordcounr() 计数一个中中的单词数
getwordnum() 从一个串中返回一个指定的词
inlist() 判断一个表达式是否与一组表达式中的某一个相匹配 '
isalpha() 判断字符表达式的最左边一个字符是否为字母
isblank() 判断表达式是否为空值
isdigit() 判断字符表达式的最左边一个字符是否为数字(0到9)
isleadbyte() 如果字符表达式第一个字符的第一个字节是前导字节,则返回"真"(.t.)
islower() 判断字符表达式最左边的字符是否为小写字母
ismouse() 判断计算机是否具有鼠标
isnull() 判断计算结果是否为null值
isupper() 判断字符表达式的第一个字符是否为大写字母(a~z)
left() · 从字符表达式最左边一个字符开始返回指定数目的字符
leptc() 从字符表达式最左边一个字符开始返回指定数目的字符
len() 返回字符表达式中字符的数目
lenc() 返回字符表达式中字待的数目
like() 确定一个字符表达式是否与另一个字符表达式相匹配
likec() 决定一个字符表达式是否与另一个字符表达式相匹配
lower() 以小写字母形式返回指定的字符表达式
ltrim() 删除指定的字符表达式的前导空格,然后返回得到的表达式
occurs() 返回一个字符表达式在另一个字符表达式中出现的次数
oemtoansi() 用于将字符串表达式中的字符转换成与其相对应的ansi字符集中的字符
padl()、padr()、padc() 由一个表达式返回一个字符中,并从左边,右边或同时从两边用空格或字符把该字符串填充到 指定长度
proper() 从字符表达式中返回一个字符串,字符串中的每个首字母大写
rat() 返回一个字符表达式或备注字段在另一个字符表达式或备注字段内第一次出现的位置,从最右 边的字符算起
ratc() 返回一个字符表达式在另-个字符表达式或备注字段最后一次出现所在的行号,从最后-行算起
ratline() 回一个字符表达式或备注字段在另一个字符表达式或备注字段中最后出现的行号,从最后一行 开始计数 。
repucate() 返回一个字符串,这个字符串是将指定字符表达式重复指定次数后得到的
right() 从一个字符串的最右边开始返回指定数目的字符
rightc() 从一个字符串中返回最右边指定数目的字符
rtrim() 删除了字符表达式后续空格后,返回结果字符串
soundex() 返回指定的字符表达式的语音表示
space() 返回由指定数目的空格构成的字符串
str() 返回与指定数值表达式对应的字符
strconv() 将字符表达式转换成另一种形式
strextract() 返回一个两个分隔符间的串
strtran() 在第一个字符表达式或备注字段中,搜索第二个字符表达式或备注字段,并用第3个字符表达-式或备注字段替换每次出现的第2个字符表达式或备注字段
stuff() 返回一个字符串,此字符串是通过用另一个字符表达式替换现有字符表达式中指定数目的字符得到的
stuffc() 返回一个字符串,此字符串是通过用另一个字符表达式替换现有字符表达式中指定数目的字符、得到的
substr() 从给定的字符表达式或备注字段中返回字符串
substrc() 从给定的字符表达式或者备注字段返回字符串
sys(15) 替换字符串中的字符
sys(20) 转换德文文本
textmerge() 提供串表达式的求值 。
trim() 返回删除全部后缀空格后的指定字符表达式
txtwidth() 按照字体平均字符宽度返回字符表达式的长度
type() 计算字符表达式,并返回其内容的数据类型
upper() 用大写字母返回指定的字符表达式
----------------------------------------------
visual foxpro数值函数
abs() 返回指定数值表达式的绝对值
acos() 返回指定数值表达式的反余弦值
asin() 返回数值表达式的反正弦弧度值
atan() 返回数值表达式的反正切弧度值
atn2() 返回指定值的反正切值,返回值无象限限制
bintoc() 将整型用二进制字符型表示 。
bitand() 返回两个数值型数值在按位进行and运算后的结果
bitclear() 清除一个数值型数值的指定位(将此位设置成0),并返回结果值
bitlshifr() 返回一个数值型数值向左移动给定位后的结果
brrnot() 返回一个数值型数值按位进行not运算的结果
bitor() 返回两个数值型数值按位进行or运算的结果
bitrshiff() 返回一个数值型数值向右移动指定位后的结果
bitset() 将一个数值型数值的某一位设置为1并返回结果
bittest() 确定一个数值型数值的指定位是否为1
bitxor() 返回两个数值型数值按位进行异或运算的结果
ceiling() 返回大于或等于指定数值表达式的最小整数
cos() 返回数值表达式的余弦值
ctomn() 将二进制字符型表示转换为整数
dtor() 将度转换为弧度
evaluate() 计算字符表达式的值并返回结果
evl() 从两个表达式中返回一个非空值
exp() 返回eax的值,其中x是某个给定的数值型表达式
floor() 对于给定的数值型表达式值,返回小于或等于它的最大整数
fv() 返回一笔金融投资的未来值
int() 计算一个数值表达式的值,并返回其整数部分
log() 返回给定数值表达式的自然对数(底数为c)
logl0() 返回给定数值表达式的常用对数(以10为底) ·
max() 对几个表达式求值,并返回具有最大值的表达式
min() 计算一组表达式,并返回具有最小值的表达式
mod() 用一个数值表达式去除另一个数值表达式,返回余数
mton() 由一个货币型表达式返回一个数值型值
normalize() 把用户提供的字符表达式转换为可以与visualfoxpro函数返回值相比较的格式
ntom() 由一个数值表达式返回含有四位小数的货币值
nvl() 从两个表达式返回一个非null值
payment() 返回固定利息贷款按期兑付的每一笔支出数量
pi() 返回数值常数n
pv() 返回某次投资的现值
rand() 返回一个0到1之间的随机数
round() 返回圆整到指定小数位数的数值表达式
rtod() 将弧度转化为度
sign() 当指定数值表达式的值为正、负或0时,分别返回1、-1或0
sin() 返回一个角度的正弦值 ·
sqrt() 返回指定数值表达式的平方根
sys(2007) 返回一个字符表达式的检查求和值
tan() 返回角度的正切值
val() 由数字组成的字符表达式返回数字值
谁有整理好的VF指令啊?
分类: 电脑/网络 程序设计 其他编程语言
问题描述:
我是大一学生正在奋斗国二VF,无奈我们的老师说话奇快根本跟不上他的思路,而我们学校机房又没有VF程序可供练习,现在学了几课感觉具体操作起来很容易,但是输入英文形式的命令(会变色的)时就很吃力,书上没有具体的总结说该干什么的时候属什么英文,老师也不写只是干说,我们都很痛苦!已经花了500了,想明年4月就过,不像再拖了!所以跪求哪位高手有针对国二考试的VF指令(简单的指令就行),能让我在除了鼠标指针操作之外的关于命令的题也能得分,谢谢!!
就比如:append blank =追加新记录
粘贴的也行,给我就行,谢谢各位高手拉!!!
解析:
还是买本书最好。
VF常用命令和程序命令一、主要命令:
1、CREATE
作用:建立一个新的表。
格式:CREATE [文件|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下同。)
说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,要求用户输入想要建立的表名。
2、MODIFY STRUCTURE
作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE
说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND
作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]
说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT
作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]
说明:INSERT 在当前记录后插入一记录;
INSERT BEFORE 在当前记录前插入一记录;
INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE
作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE
6、USE
作用:打开和关闭表文件。
格式:USE [文件名]
USE
说明:前一个命令用来打开文件名指定的表文件,该表如有备注型字段,则同时打开相应的备注文件(.fpt文件);后一个命令关闭当前打开的表文件。
7、LIST和DISPLAY
作用:显示表(.dbf)的内容、结构或状态。
格式:LIST|DISPLAY [OFF] [范围] [FIELDS] 表达式表 [WHILE 条件] [FOR 条件] [TO PRINT|TO FILE 文件]
LIST|DISPLAY STRUCTURE TO PRINT|TO FILE 文件]
LIST|DISPLAY STATUS [TO PRINT|TO FILE 文件]
说明:命令带OFF参数表示不显示记录号,范围指定对哪些记录进行操作,范围包括:
RECORD n 第几号记录、NEXT n 当前记录开始的几个记录、REST 自当前记录开始至文件末尾的所有记录、ALL 所有的记录。不选范围则隐含范围为ALL;FIELDS后跟字段名,字段名与字段名之间用逗号分
隔。WHILE后跟条件,FOR后面也跟条件,区别是,WHILE后的条件如果满足,便停止查找;FOR后的条件查找所有满足条件的记录。TO PRINT和TO FILE 文件分别表示将显示结果在打印机上打印出来和将显示结果输出到文件。DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示,并且在
该命令中,如果省略范围仅显示当前记录。格式中,下面两个命令分别为显示表结构(STRUCTURE)和工作状态(STATUS)。
8、记录的定位
作用:用记录指针(POINTER)定位记录。
格式:GO[TO] RECORD n|TOP|BOTTOM
n
SKIP [+|-]
说明:第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录,
BOTTOM定位到最后一个记录。第二个命令定位到第n个记录,n是一个数值。第三个命令又叫相对定
位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后移一个记录。
9、CHANGE和EDIT
作用:显示要编辑或修改的字段。
格式:CHANGE|EDIT [范围] [FIELDS 字段名表] [WHILE 条件] [FOR 条件]
10、BROWSE
作用:打开一个"浏览"窗口,供用户浏览或修改记录。
格式:BROWSE [FIELDS 字段名表]
11、REPLACE
作用:用表达式的值代替命令中与之相对应的字段的内容。
格式:REPLACE [范围] 字段1 WITH 表达式1[,字段2 WITH 表达式2] [FOR 条件] [WHILE条件]
12、DELETE、PACK、ZAP和RECALL
作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的删除标志。
格式:DELETE [范围] [WHILE条件] [FOR 条件] (特例:DELETE FILE FILENAME.DBF,
该命令删除指定的表文件)
PACK
ZAP
RECALL [范围] [FOR 条件] [WHILE条件]
13、SORT和INDEX
作用:分别是建立一个其记录以新的物理顺序排列的新表文件和对当前表根据关键字表达式的值从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。
格式:SORT TO 文件名 ON 字段名1 [/A] [/C] [/D][,字段名2 [/A] [/C] [/D]]...
[ASCENDING|DESCENDING] [范围] [FOR 条件] [WHILE条件] [FIELDS字段表]
INDEX ON 关键字表达式 TO 文件名
INDEX ON 关键字表达式 TAG 标识名 [OF 文件名] [FOR 条件]
说明:第1个命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小写,针对字符型
关键字而言,ASCENDING和DESCENDING分别表示升序和降序。第1个命令建立.dbf表文件,第2个命令
建立.idx单一索引文件,第3个命令建立.cdx复合索引文件(Compound Index)。
14、USE 表文件名 INDEX 索引文件名表、SET INDEX TO和SET ORDER TO
作用:分别是打开表文件的同时打开索引文件、打开索引文件和改变主索引。
格式:USE 表文件名 INDEX 索引文件名表
SET INDEX TO [索引文件名表]
SET ORDER TO [索引文件名](特例:重新索引命令:REINDEX)
15、FIND、SEEK和LOCATE及CONTINUE
作用:前两个命令FIND和SEEK是在一个已经建立了索引文件的表中,定位到关键字中的内容与命
令行中字符串相同的第一个记录。后一个命令在用USE打开表文件以后,直接查询表中字段内容。
格式:FIND "字符串"|字符串SEEK 表达式
LOCATE [范围] [FOR 条件] [WHILE条件]
CONTINUE
说明:FIND命令与SEEK命令的区别是前者后跟字符串,而后者后跟表达式。在用LOCATE命令找到
一个匹配记录后,可用CONTINUE命令搜索表的剩余部分来寻找其他匹配的记录。
16、COUNT
作用:统计当前表文件中符合条件的记录数。
格式:COUNT [范围] [FOR 条件] [WHILE条件] [TO 内存变量名]
说明:内存变量名可用除参数外的任意字符。
17、SUM
作用:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求和。
格式:SUM [范围] [数值表达式] [TO 内存变量名表] [FOR 条件] [WHILE条件]
18、AVERAGE
作用:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。
格式:AVERAGE [范围] [数值表达式] [TO 内存变量名表] [FOR 条件] [WHILE条件]
二、常用函数
1、数学函数
函数 用途
ABS(数值表达式) 绝对值,|x|
CEILING(数值表达式) =自变量的最小整数
EXP(数值表达式) 对基E的幂,e=2.71828
FLOOR(数值表达式) =自变量的最大整数
INT(数值表达式) 取整(舍尾)自变量
LOG(数值表达式) 自变量的自然对数,ln x
LOG10(数值表达式) 自变量的普通对数,lg x
MAX(表达式1,表达式2) 两个值的最大值
MIN(表达式1,表达式2) 两个值的最小值
MOD(数值表达式1,数值表达式2) 求余数
RAND([数值表达式1]) 返回伪随机数
ROUND(数值表达式1,数值表达式2) 四舍五入第一个自变量
SIGN(数值表达式) 自变量的符号
SQRT(数值表达式) 平方根(正根)
2、字符串操作函数
函数 用途
内存变量 用于代替内存变量内容
LEN(字符串表达式) 返回字符串表达式的字符个数
SPACE(数值表达式) 生成空格
SUBSTR(字符串表达式,数值表达式n[,数值表达式L]) 求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串
LOWER(字符串表达式) 将字符串字母转换成小写字母
UPPER(字符串表达式) 将字符串字母转换成大写字母
TRIM(字符串表达式) 删除字符串尾空格
ASC(字符串表达式) 返回字符串表达式最左边的第一个字符的ASCII码
CHR(数值表达式) 将数值表达式转换成字符
AT(字符串表达式1,字符串表达式2[,数值表达式n]) 确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现
STR(数值表达式[,数值表达式L][,数值表达式n) 将数值转换为字符串,L为数值表达式总长,n为小数位数
VAL(字符串表达式) 将数字字符串转换为数字
TYPE(表达式) 检测表达式值的数据类型
LTRIM(字符串表达式) 删除字符串左部空格
RTRIM(字符串表达式) 删除字符串右部空格
LEFT(字符串表达式,数值表达式n) 取字符串左边部分字符,n为返回的字符个数
RIGHT(字符串表达式,数值表达式n) 取字符串右边部分字符,n从右边截取字符个数
3、表(.dbf)操作函数
函数 用途
BOF([工作区号或别名]) 查表文件开始函数
EOF([工作区号或别名]) 表文件结尾测试函数
RECNO([工作区号或别名]) 测试当前或指定工作区表的当前记录号
DELETED([工作区号或别名]) 记录删除测试函数
FILE("字符串") 测试文件是否存在函数
DBF([工作区号或别名]) 检测表的文件名函数
4、日期、时间函数
函数 用途
DATE() 查系统当前日期函数
TIME([数值表达式]) 查系统当前时间函数
YEAR(日期型表达式|日期时间型表达式) 由日期查年函数
MONTH(日期型表达式|日期时间型表达式) 从日期查月份函数
CMONTH(日期型表达式|日期时间型表达式) 由日期查月份名函数
DAY(日期型表达式|日期时间型表达式) 从日期查当月的日函数
DOW(日期型表达式|日期时间型表达式[,数值表达式]) 由日期查星期函数
CDOW(日期型表达式|日期时间型表达式) 从日期查星期名函数
DTOC(日期型表达式|日期时间型表达式) 日期转换为字符函数
CTOD(字符串表达式) 字符串转换为日期函数
CTOT(字符串表达式) 返回日期时间值函数
TTOC(日期时间型表达式) 返回字符值
5、显示、打印位置函数
函数 用途
ROW() 判断光标行位置函数
COL() 判断光标列位置函数
INKEY([数值表达式]) 检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间
6、其他函数
函数 用途
DISKSPACE() 返回默认磁盘驱动器中可用字节数函数
OS() 检测操作系统名称的函数
VERSION() 返回VFP版本号的函数
三、主要程序语句
1、条件判断语句
格式:(1)IF 条件
命令语句组
ENDIF
说明:如果条件为真,则执行命令语句组中的各语句,否则跳过这些命令语句不执行,
而执行ENDIF后的语句。
(2)IF 条件
命令语句组1
ELSE
命令语句组2
ENDIF
说明:如果条件为真,执行命令语句组1,否则执行命令语句组2。
(3)IF 条件1
IF 条件2
命令语句组1
ELSE
命令语句组2
ENDIF
...
ELSE
命令语句组N
ENDIF
说明:进行多重条件的嵌套选择。
(4)DO CASE
CASE 条件1
命令语句组1
CASE 条件2
命令语句组2
CASE 条件3
命令语句组3
...
...
CASE 条件N
命令语句组N
[OTHERWISE]
[命令语句组N+1]
ENDCASE
说明:依次判断条件,转入条件为真的命令语句组中执行。当所有条件都不成立时,若有
OTHERWISE项,则执行命令语句组N+1,否则执行ENDCASE后面的语句。
2、循环语句
格式:(1)DO WHILE 条件
命令语句组
[LOOP]
命令语句组
[EXIT]
命令语句组
ENDDO
说明:判断条件是否为真,如为真就重复执行循环体中的命令语句组,直到条件为假,结束循环。
(2)SCAN
命令语句组
ENDSCAN
说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操作,直到表文件记录完为止。
VFP常用函数使用说明
1、数值运算函数
函数 操作 例 结果
SQRT(x) 求平方根 SQRT(9) 3
INT(x) 取整数 INT(3.14) 3
ROUND(x) 四舍五入 ROUND(3.14159,4) 3.1416
MOD(x,y) 求X除以Y的余数 MOD(25,4) 1
MAX(x,y) 求X,Y中的最大值 MAX(7,8) 8
MIN(x,y) 求X,Y中的最小值 MIN(1,2,3) 1
2、字符中操作函数
函数名 操作 例 结果
UPPER(S) 小写字母 UPPER(abc) ABC
LOWER(S) 大写字母 LOWER(ACD) acd
LEN(S) 求字符串的长度 LEN("中国1号") 7
AT(S1,S2) 在字符串S2,找字符串S1 AT("H","CHINA") 2
SUBSTR(S,I,N) 在S字符串中的第I个字符起取N个字符 SUBSTR('TECHNOLO',3,3) CHN
LEFT(S,N) 从字符串S左边取N个字符 LEFT("中国人",4) 中国
RIGHT(S,N) 从字符串S右边取N个字符 S=‘12345'
RIGHT(S,3) 345
SPACE(N) 生成N个空格 "合计"+SPACE(2)+"123" 合计123
TRIM(S) 消除字符串尾部空格 TRIM("姓名 ") 姓名
ALLTRI(S) 消除字符串中所有空格 ALLTRIM("李 丽") 李丽
STUFF(S1,N1,N2,S2) 用字符串S2替换S1中第N1个字符起的N2个字符 STUFF("NOW",2,1,"E") NEW
宏替换 P="G2"
USE P USE G2
3、日期和时间函数
函数名 操作 例 结果
DATE() 求当前日期 DATE() 2001/11/12
DATETIME() 求当前日期和时间 DATETIME() 2001/11/12/0:22:33am
YEAR(D) 求年份 YEAR(DATE()) 2001
MONTH(D) 求月份(数值) MONTH(DATETIME()) 11
CMONTH(D) 求月份(字符) MONTH(DATETIME()) Novenber
DAY(D) 求日期 DAY(DATE()) 12
DOW(D) 求星期几(数值) DOW(DATE()) 1
CDOW(D) 求星期几(英文) CDOW(DATE()) sunday
TIME(D) 求当前时间 TIME(DATE()) 10:20:38am
4、数据类型转换函数
函数名 操作 例 结果
ASC(S) 求第一个字符串的ASCII码 ASC("what") 87
CHR(N) 求ASCII码的字符 CHR(87) w
STR(R,L,D) 数值转换成字符,L为长度,D为小数位数 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字符串转换为数值 VAL("123") 123.00
CTOD(S) 字符串转日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期转换成字符串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期转成年月日式的字符串 DTOS(DATE()) ***********
CTOT(C) 字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型转为日期时间型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期时间型转为字符型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期时间型转为日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 逻辑判断 IIF(A0,"YES","NO") YES
5、检测函数
函数名 操作 例 结果
RECNO() 检测当前记录号 RECNO() 1
RECCOUNT() 检测当前记录数 RECCOUNT() 12
BOF() 开始记录 BOF() 1
EOF() 最后记录 EOF() 12
FOUND() 返回查找结果 FOUND() .T.
ROW() 返回当前行坐标 ROW() 1
COL() 返回当前列坐