VFP 第2章自由表的基本操作_第1页
VFP 第2章自由表的基本操作_第2页
VFP 第2章自由表的基本操作_第3页
VFP 第2章自由表的基本操作_第4页
VFP 第2章自由表的基本操作_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章自由表的基本操作

2,工VisualFoxPro的语言基砒1

2.2自由表的建立与修改

2.3自由表的维护

本章要点

I录】■1•OK♦火

2.1VisualFoxPro的语言基础

2.1.1数据类型

数据类型一旦被定义,就确定了其存储方式和使用方式。

1.字符型

字符型数据描述不具有计算能力的文字数据类型。

字符型数据(Character)是由汉字和英文字符、数字字符、空格及

其他专用字符,使用时必须用定界符双引号(""),单引号('')或中

括号([])括起来。这里的单引号、双引号或方括号都是西文的标点

符号,称为定界符。

2.数值型

数值型数据用来表示一个数量的大小,数值型数据通常可细分为数值型,

浮点型,双精度型,整型和货币型五种类型。

浮点型数据(Float)是数值型数据的一种,与数值型数据完全等价。浮点型数

据只是在存储形式上采取浮点格式。

双精度型数据(Double)是更高精度的数值型数据。它只用于数据表中的字段

类型的定义,并采用固定长度浮点格式存储。

整型数据(Integer)是不包含小数点部分的数值型数据。它只用于数据表

中的字段类型的定义。整型数据以二进制形式存储。

货币型(Currency)数据用来表示货币值,其书写格式与数值型数据类似,

但要加上一个前置的符号($)。货币数据在存储和计算时,采用4位小数。

3.日期型

日期型数据(Date)是用于表示日期的数据,用默认格式{mm/dd/yyyy}来

表示。其中mm代表月,dd代表日,yyyy代表年,存储长度固定为8位。

4.日期时间型

日期时间型数据(DateTime)是描述日期和时间的数据,其默认格式为

{mm/dd/yyyyhh:mm:ss}o

其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,,后两个mm

代表分钟,ss代表秒,存储长度固定为8位。

5.逻辑型

逻辑型数据(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果

。逻辑型数据只有真(.工)和假(.F.)两个值,存储长度固定为1位。

6.备注型

备注型数套(Memo)用于存放较长的字符型数据类型,可以把它看成是字

符型数据的特殊形式。

7.通用型

通用型数据(General)是用于存储OLE对象的数据。通用型数据中的

OLE对象可以是电子表格、文档、图片等。它只用于数据表中的字段类

型的定义。

2.1.2数据存储

数据输入、输出是通过数据的存储设备完成的。

数据可以存入到字段、记录和对象中。我们把这些

供数据存储的常量、变量、数组、字段、记录和对

象称为数据存储容器。常量、内存变量、函数以及

表达式的类型包括字符型、数值型、货币型、逻辑

型、日期型和日期时间型等6种。

1.常量

在数据处理过程中其值不发生变化的量叫常量。

(1)数值型常量

数值型常量也就是常数,用来表示一个数量的大小,由数字0~9、小数点和正负号构

成。例如:112、3.145、-6.22o

(2)货币型常量

货币型常量用来表示货币值,其书写格式与数值型常量类似,但要加上一个前置的符

号($)。例如,常量$123.456789。

(3)字符型常量

字符型常量也称为字符串,许多常量都有定界符。

注意,不包含任何字符的字符串("")叫空串。空串与包含空格的字符串("")不同。

(4)日期型常量

日期型常量的定界符是一对花括号。

①传统的日期格式

系统默认的日期型数据为美国日期格式“mm/dd/yy"(月/日/年),如{09/01/03}

、{09/01/2003}等。

语句SETDATETOymd把日期设置成(年/月/日)格式,命令SETCENTURYon

把年份设置成4位数字格式。

②严格的日期格式

严格的日期格式为《人yyyy-mm-dd},它不受SETDATE等语句设置的影响。

严格的日期格式可以在任何情况下使用,而传统的日期格式只能在执行如下命令:

SETSTRICTDATETO0

后才可以使用。

SETSTRICTDATETO1

把系统设置为严格的日期格式。另外,命令SETMARKTO是设定日期分隔符。

(5)日期时间型常量

日期时间型常量包括日期和时间两部分内容:{〈日期〉,〈时间>}。

v日期〉部分与日期型常量相似,也有传统的和严格的两种格式。v

时间》部分的格式为:[hh]:mm[:ss]][a|p]]o

SETMARKTO

?{人200309-0111:10:10},{人2003-09-0115:10:10)

(6)逻辑型常量

逻辑型数据只有逻辑真和逻辑假两个值。逻辑真的常量表示形式有

:.T,,t,.Y.和y。逻辑假的常量表示形式有:E,f,.N,和m.。

门"■「OK♦仙

2.变量

变量是在命令操作、程序运行过程中其值可以变化的量

O变量分为字段变量和内存变量两大类。

内存变量:1.以字母、汉字、下划线开头;2.由字母、

汉字、数字、下划线组成;3,至多128个字符;4.不可与系

统保留字同名。

字段变量:1.以字母、汉字开头;2.由字母、汉字、数

字、下划线组成;3,至多10个字符;4,不可与系统保留字

同I名。

内存变量又分为简单内存变量和系统内存变量,系统内存变

量是VisualFoxPro系统运行时自动建立、使用的,其名字都是以

下划线开头,例如_dos,_pwait等。

(1)简单内存变量

每一个变量都有一个名字,可以通过变量名访问变量。简单

内存变量赋值不必事先定义,例如:

X=10

门"■「OK♦仙

(2)数组

数组是内存中连续的一片存储区域,是按一定顺序排列的一组内存变量,

数组中的各个变量称为数组元素,每个数组元素可通过数组名及相应的下标来

访问。每个数组元素相当于一个简单变量,可以给各个元素分别赋值。在Visual

FoxPro中,一个数组中各个元素的数据类型可以不同。

创建数组的两种命令格式为:

DIMENSION〈数组名〉(〈下标上限1>[,<下标上限2>][,……])

DECLAREv数组名〉(〈下标上限1>[,<下标上限2>][,……])

例如:

DECLAREaa(5),bb(2,3)

门"■「OK♦仙

3.内存变量常用命令

(1)内存变量的赋值

格式1:STOREC表达式>T0(变量名表〉

格式2:〈内存变量名>=<表达式>

功能:格式1计算表达式的值并赋给一个或多个

内存变量;格式2只能给一个变量赋值。

(2)内存变量的显示

格式1:LISTMEMORY[LIKEv通配符>][TOPRINTERITOFILE<

文件名〉]

格式2:DISPLAYMEMORY[LIKE<通配符>][TOPRINTERITO

FILEv文件名》]

(3)内存变量的清除

格式1:CLEARMEMORY

格式2:RELEASE〈内存变量名表,

格式3:RELEASEALL[EXTENDED]

格式4:RELEASEALL[LIKEv通酉己符>IEXCEPT〈通酉己符>]

门"■「OK♦仙

(4)内存变量的保存

格式:SAVETO〈文件名〉ALL[LIKEv通配符>|

EXCEPTv通酉己符〉]

功能:将指定范围的内存变量保存在内存变量文件中,

内存变量文件的扩展名为,men。

(5)内存变量的恢复

格式:RESTOREFROMv文件名>[ADDITIVE]

功能:把内存变量文件中的变量送回内存,不选

ADDITIVE则送回之前先清除内存中的内存变量。

4.字段变量

字段变量就是指数据表中已定义的任意一个字段

O字段变量的数据类型与该字段定义的类型一致。

字段变量的类型有数值型、浮点型、整型、双精

度型、字符型、逻辑型、日期型、时间日期型、备

注型和通用型等。

2.1.3函数

函数名(自变量表)

自变量表可以是一个变量或多个自变量,

也可以为空,即:函数名(),此时函数名后

面的一对圆括号不能省略。

函数按功能可划分为:数学函数、字符串

函数、日期和时间函数、类型转换函数、测

试函数。

目录t结束

1.数学函数(数值函数)

(1)求绝对值函数ABS

格式:ABS(〈数值表达式〉)

(2)求整函数INT

格式:INT(〈数值表达式》)

(3)四舍五入函数ROUND

格式:ROUND(〈数值表达式,,〈保留小数位》)

(4)指数函数EXP、自然对数函数LOG、平方根函数SQRT、

格式:EXP|LOG|SQRT(v数值表达式,)

(5)取模(求余数)函数MOD

格式:MOD(〈数值表达式1>,<数值表达式2>)

功能:取〈数值表达式1>除以<数值表达式2>的余数。

(6)求最大值MAX、最小值MIN

格式:MAX|MIN(〈表达式1〉,〈表达式2〉,…,<表达式n>)

门"■「OK♦仙

2.字符串函数

(1)判子字符串函数AT

格式:AT(〈字符表达式1>,〈字符表达式2>)

功能:求〈字符表达式1>在〈字符表达式2>的起始位置

数值。

说明:

❖若〈字符表达式2>中不包含〈字符表达式1>,则函数值为零;

❖若〈字符表达式2>的值含有两个以上的〈字符表达式1>的值,

则函数给出第一个值的位置。

♦大小写字母在检索中视为不同。

(2)取子串函数SUBSTR

格式:SUBSTR(v字符表达式》,〈起始位置〉[,〈长度〉])

功能:对v字符表达式〉从给定的〈起始位置》开始截取指定长度

的字符,生成一个新的字符串;

说明:

若无<长度>或〈长度,大于后面剩余的字符个数,则截至末尾。

若〈起始位置〉大于字符串表达式长度,则输出空串。

(3)取左子串函数LEFT

格式:LEFT(v字符表达式》,v数值表达式,)

功能:LEFT从〈字符表达式〉左边截取由〈数值表达式〉的值指定

的字符,生成一个新的字符串。

(4)取右子串函数RIGHT

格式:RIGHT(v字符表达式〉,〈数值表达式〉)

(5)宏代换函数&

格式:&<字符型内存变量〉匚]

功能:替换出〈字符型内存变量》的值。即将〈字符型内存变量〉值

的定界符去掉,使其可能代表一个变量名、文件名、命令、表达式等。

说明:在表达式中使用该函数时,如果函数中的字符型内存变量名

与其后面的字符无明显分界时,应使用圆点将它们隔开。例如:

A=“北京”

B="中国”

?“&A.是&B.首都”

主屏幕显示:北京是中国首都

(7)删除首部和尾部空格的函数LTRIM,TRIM(RTRIM)和ALLTRIM

格式:LTRIM|TRIM|RTRIM|ALLTRIM(〈字符表达式〉)

功能:LTRIM是删除字符串首部的空格,TRIM和RTRIM是删除字符串尾部的空格,ALLTRIM则可删除

字符串首部和尾部的空格。

(8)构造空格函数SPACE

格式:SPACE(〈数值表达式,)

功能:产生由V数值表达式〉的值决定的空格数。

(9)生成重复字符串函数REPLICATER

格式:REPLICATER(〈字符表达式>,〈数值表达式〉)

功能:把〈字符表达式〉的值(字符串)重复由V数值表达式>的值指定的次数,生成新的字符串。

(10)大小写字母转换函数LOWERIUPPER

格式:LOWER|UPPER(〈字符表达式,)

功能:LOWER把〈字符表达式》中的大写字母转换为小写字母;UPPER把

v字符表达式》中的小写字母转换为大写字母。

(11)字符串替换函数STUFF

格式:STUFF(〈字符表达式1>,〈起始位置〉,〈字符个数>,<字符表达式2>)

功能:从指定位置开始,用〈字符表达式2>替换〈字符表达式1>中<字符个

数》指定的字符串。

说明:

〈字符表达式2>中的字符个数与〈字符表达式1>中的字符个数可以不等。

如果〈字符个数〉为0,则插入〈字符表达式2>。

如果〈字符表达式2>为空字符串,则删除〈字符表达式1>中指定字符。

3.日期和时间函数

(1)系统日期和时间函数DATE|TIME|DATeTIME

格式:

DATE()

TIME()

DATETIME()

功能:DATE。返回当前系统日期,函数值为日期型;TIME。以24小时制格式返回当

前系统时间,函数值为字符型;DATeTIME()返回当前系统日期,函数值为日期型。

(2)年、月、日函数YEAR|MONTH|DAY

格式:YEAR|MONTH|DAY(〈日期表达式,)

功能:从v日期表达式》中求出年份、月份、日份的数值。

(3)星期函数DOW|CDOW

格式1:DOW(〈日期表达式〉)

格式2:CDOW(〈日期表达式〉)

功能:格式1给出v日期表达式》指定的日期是一星期的第几天。1表示星期日,2表

示星期一,……,7表示星期六;格式2给出星期儿的英文名称。

4.类型转换函数

(1)字符转换为数值函数VAL

格式:VAL(v字符表达式〉)

功能:将字符型数据转换为数值型数据。

说明:

若v字符表达式〉由数字字符和小数点组成,则转换成相

应的数值,但只保留两位小数,其余小数四舍五入。

若v字符表达式〉由非数字字符打头,则转换为0.00。

若v字符表达式〉由数字字符打头,且混有非数字字符时

,则转换到第一个非数字字符。

例如:

?VAL("1234.5678"),VAL("FoxPro"),VAL(,,1234FOX.5678")

主屏幕显示:1234.570.001234.00

门"■「OK♦仙

(2)数值转换为字符函数STR

格式:STR(v数值表达式,[,〈长度〉[,v小数位数>]])

功能:把v数值表达式〉的运算结果转换为指定长度的字符串。

说明:

v长度〉应包括小数点在内,不指定长度时,系统默认整数位10位。

若指定v长度,小于〈数值表达式,整数位数,则用一串"*”号表示数

据溢出;若〈长度>为0,则返回空字符串。

若省略〈小数位〉,则只转换整数位;若指定小数位,则对下一位四

舍五入。

例如:

?STR(1234.5678,7,2),STR(1234.5678,4),STR(1234.5678)

主屏幕显示:1234.5712351234

门"■「OK♦仙

(3)字符转换为日期函数CTOD

格式:CTOD(〈字符表达式〉)

功能:将符合yy/mm/dd、mm/dd/yy日期格式的字符串转换为相应日期。

(4)日期转换为字符函数DTOC

格式:DTOC(〈日期表达式》[,11)

功能:将〈日期表达式>转换为相应的字符串。

说明:不选用1时,按mm/dd/yy格式转换;选用,1时,按yyyymmdd格式

转换。

(5)ASCII码值转换为字符函数CHR

格式:CHR(〈数值表达式,)

功能:将〈数值表达式>所表示的ASCII码值转换为相应的字符。

(6)字符转换成ASCII码值函数ASC

格式:ASC(〈字符表达式》)

功能:返回〈字符表达式〉最左边的一个字符的ASCII码值。

5.测试函数

与数据表有关的测试函数,见“2.3自由表的维护”。

(1)值域测试函数BETWEEN

格式:BETWEEN(v表达式l>,v表达式2>,v表达式3>)

功能:判断一个表达式的值是否介于另外两个表达式的

值之间。当v表达式1>值大于等于v表达式2>且小于等于v

表达式3>时,函数值为逻辑真(.T)否则函数只为逻辑假

(E)。

(2)数据类型测试函数VARTYPE

格式:VARTYPE(〈表达式〉)

功能:测试〈表达式〉的类型,返回一个大写字母,函数

值为字符型。若〈表达式〉是一个数组,则根据第一个数组

元素的类型返回字符串。

(3)条件测试函数IIF

格式:IIF(V逻辑表达式,,〈表达式l>,v表达式2>)

功能:测试v逻辑表达式》的值,若为逻辑真.T.,函数返

回v表达式1>的值,若为逻辑假,F.,函数返回v表达式2>的

值。v表达式1>和v表达式2>的类型不要求相同。

2.1.4表达式

表达式是由常量、变量和函数等通过特定

的运算符连接起来的式子。

1.数值表达式

优先级运算符说明

1()包含表达式内的子表达式

2**或八乘方运算

3*、人%乘、除、求余运算.求余运算%和取余

函MOD()的作用相同

4+•.—加、减运算

2.字符表达式

字符表达式由字符串运算符将字符型数据连接起

来形成,其运算结果仍然是字符型数据。字符串运

算符有以下两个,它们的优先级相同:

+:前后两个字符串首尾连接形成一个新的字符

串。

连接前后两个字符串,并将前字符串的尾部

空格移到合并后的新字符串尾部。

3.日期时间表达式

日期时间表达式中可以使用的运算符也有+和一两个。

格式结果及类型

〈日期>+<天数>日期型。指定日期若干天后的日期

〈天数“〈日期〉日期型.指定日期若干天后的日期

〈日期〉-<天数〉日期型。指定日期若干天前的日期

〈日期>-《日期>数值型。两个指定日期相差的天数

〈日期时间〉+<秒数,日期时间型。指定日期时间若干秒后的日期时间

书数“(日期时间;二日期时间型。指定日期时间若干秒后的日期时间

《日期时间〉-<秒数〉日期时间型。指定日期时间若干秒刖的日期时间

〈日期时间》-<日期时间》数值型。两个指定日期时间相差的秒数

4.关系表达式

关系表达式通常也称为比较表达式,其运算结果为逻辑型常量。关

系成立时,表达式的结果为,T.,反之,表达式结果为.F.。格式为:

v表达式1>〈关系运算符>v表达式2>

运算符说明运算符说明

<小于<=小于等于

>大于>=大于等于

=等于■字符串精确比较

<>、#或!=不等于$一子串包含测流

运算符==和$仅适用于字符型数据。其他运算符适用于任何类型的数据。

SETEXACTON/OFF

【工具】一【选项】菜单

上束

5.逻辑表达式

逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成

,其运算结果仍然是逻辑型数据。逻辑运算符有三个:

,NOT,或!(逻辑非)、.AND.(逻辑与)以及,0R.(逻辑或

)o也可以省略两端的点(省略时逻辑运算符两边必须有空

格),写成NOT、AND、ORo

优先级顺序为:NOT,AND,ORo

门"■「OK♦仙

6.运算符优先级

在每一类运算符中,各个运算符有一定的运算优先级

O而不同类型的运算也可能出现在同一个表达式中,这时

它们的运算优先级顺序为:先执行算术运算符,字符串运

算符和日期时间运算符,其次执行关系运算符,最后执行

逻辑运算符。

2.2自由表的建立与修改

数据表简称表,在VisualFoxPro系统中,

把包含在数据库中的表称为数据库表,并把

不包含在数据库而独立存在的表称为自由表

o自由表可以添加在数据库中而成为数据库

表,数据库表也可以从数据库中移出而成为

自由表。

2.2.1表结构的建立

1.设计表结构

(1)字段名

(2)字段类型和宽度

学号姓名性别身高体重血型团员否入团时间兴趣爱好

1161001张骏男1.8150A是1998-1-1唱歌,武术

1161002陈晴更1.73120B是1997-5-1书法、绘画

1161003马大大男1.8130A否1998-7-1文艺

1161004夏小雪女1.6295A是1998-5-1计算机动画

1161005钟大成女1.651020否1998-8-1体操

1161006王晓宁男1.82135AB是1997-10-1游泳、滑冰

1161007魏文鼎男1.75120B是1999-10-1舞蹈

1161008宋成城男1.78123B否1998-10-1武术

1161009李文静女1.63980是1998-8-1打球

1161010张宁如女1.67110A否1999-5-1读书

Xsqk.dbf

上一弓一

字段名字段类型字段宽度小数点

学号字符型7

姓名字符型8

性别字符型2

身后数值型42

体重数值型3

血型字符型2

团员逻辑型1

入团时间日期型8

爱好备注型4

照片通用型4

JIV

学号课程编号|成绩|

学号数学英语政治计算机应用电子技术总分平均分1161003200965]

11610016087808785399.079.811610032017781

11610028589859590444.088.81161003205581\

11610035545418571297.059.4

1161002200188|

11610046096805555346.069.2

1161004200867[

11610058596806365389.077.8

1161009200989I

11610065094838571383.076.6

1161006200990:

11610076792628785393.078.6

91|

11610088784856590411.082.211610012009

85i

11610096180464471302.060.411610042053

11610106056667345300.060.01161009200570j

1161007200620?

..................

cj.dbfXk.dbf

门"■「OK♦仙

2.利用表设计器创建表结构

用表设计器定义表结构的操作方法常有下面三种。

(1)使用菜单方法

从VisualFoxPro系统的主菜单开始,打开“文件”菜单,选择“新

建”

(2)使用命令的方法

建立数据表的命令是:

CREATE[<表文件名>|[.dbf]]

例如要建立数据表xsqk.dbf时可使用命令:

CREATEXSQK

命令执行后弹出表设计器,其它操作与“使用菜单方法”相同。

(3)在项目管理器中创建

2.2.2表数据的输入

(1)使用APPEND命令的方法

APPEND命令是在表的尾部增加记录,它有两种格式:

APPEND或APPENDBLANKo

执行一次APPENDBLANK命令后在表中添加一条空记录;

执行APPEND命令需要立刻交互输入新的记录值,一次可以连续输入

多条新的记录。然后按<CTRL>+<W>或单击窗口的“关闭”按钮结束

并保存输入的新记录;按<ESC>结束并不保存输入的新记录。

(2)使用菜单方法

可选【显示】一【浏览…】菜单,出现“浏览”窗口,再执行【显

示】一【追加方式】菜单或执行【表】一【追加记录】菜单(也可以按

<Ctrl>+<Y>键),即在浏览器尾部会增加一条空白记录。

2.2.3备注字段和通用型字段数据的输入和修改

备注型数据显示为“Memo”或“memo”,其中“Memo”

表示对应的记录的备注字段已经输入了数据,而“memo"表

示该字段中没有备注内容。要为某记录的备注字段输入数据

或修改其中的内容,可双击该记录的备注字段,进入备注字

段的编辑窗口,编辑完后按<CTRL>+vW>或单击窗口的“

关闭”按钮结束并保存输入的新内容;按vESC>结束并不保

存输入的新内容。

2.2.4表结构的修改

(1)使用菜单方法

执行【显示】一【表设计器】菜单命令

(2)使用命令方法

打开表设计器的命令是:

MODIFYSTRUCTURE

门"■「OK♦仙

2.3自由表的维护

2.3.1VISUALFOXPRO命令结构及常用子句

VFP命令格式:

〈命令动词〉[〈功能子句1>][<功能子句2>][…]&&注释部分

例如显示命令LIST的格式:

LIST[<范围>][[〈FIELDS〉]〈字段名表达式表>][FOR<条件>]

[WHILE〈条件>][OFF][TO<设备名|文件名|内存变量名>]&&注释

1.命令动词

表示命令执行的操作,是命令中必不可少的部分。

2.语句体

语句体由一系列短语构成,可使用的常用子句(短语)如下所示:

(1)FIELDS〈字段名表〉

用于指定操作的字段,〈字段名表〉中有多个字段时,字段名之间用

逗号分隔。例如命令:

usexsqk

listfields姓名,身高&&显示xsqk.dbf表的“姓名”和“身高”两列

数据

(2)FOR<条件>

对满足条件的所有记录进行操作。例如命令:

usexsqk

listfor身高>1.7&&显示xsqk.dbf表中身高大于L7米的所有记录

(3)WHILEv条件〉

对满足条件的记录进行操作。从表中的当前正在使用的记录开始向

下顺序判断,当遇到第一个不满足条件的5己录时,

管其后是否还有满足条件的记录。

(4)v范围,

表示记录的执行范围,可以是ALL,NEXT<n>,RECCORD<n>,REST

几项中之一,其中的vn>是数值型表达式。系统对表中的记录是逐条进行处理

的。VisualFoxPro为每一个打开的表设置了一个内部使用的记录指针,指向正在

被操作的记录,该记录称为当前记录。记录指针的作用是标识表的当前记录。

ALL:表示全部记录;

NEXT<n>:表示从当前记录开始的以下n条记录;

RECORD<n>:表示第n号记录;

REST:表示从当前记录到最后一条记录。

(5)TO<设备名|文件名|内存变量名〉

表示操作结果的输出去向。

一目毛

3.命令书写格式说明

在书写命令格式时,还用到一些符号,这些符号

只是在书写时使用,实际操作时并不输入。这些符

号以及它们所表示的意义如下:

<>:表示其中内容为必选项;

[]:表示其中内容为可选项;

I:表示其两侧项目只能任选一项;

…:表示同类项的多次重复。

一目毛上束

4.命令的书写与使用规则

在输入命令时,应注意下面规则:

•每条命令以命令动词开始,以回车键结束,命令中各短语的顺序是

任意的。

•命令动词、短语中的英文单词及函数名均可缩写为前四个字符,大

小写可混用。

•命令动词、语句体及其各短语之间均以空格相隔。

•一行只能写一个命令,不能将两个命令写在同一行。

•命令一行写不下时,可以由系统自然换行或在行尾加分号(;),

回车强制换行。命令行的长度小于或等于2048个字符。

2.3.2表的打开与关闭

(1)表的打开

可以通过选【文件】一【打开】菜单(或工具栏上的“

打开”按钮)打开表,也可以用以下命令打开表:

Use[v表名>,dbf]

(2)表的关闭

常常使用下面命令关闭表:

use&&关闭当前使用的表

closetables&&关闭当前数据库中所有打开的表

closetablesall&&关闭所有打开的表

closeall&&关闭所有打开的表、程序文件及表单等

clearall&&关闭所有的表、程序文件及表单等,清除内存变量

2.3.3表数据的浏览和修改

1.同时进行数据浏览和修改的操作

打开浏览器的方法有多种,常用的方法有:

•首先打开要操作的表,再执行菜单【显示】一【浏览…】。

•在项目管理器中选择要操作的表,然后单击“浏览”命令按钮。

•在命令方式下,首先用USE命令打开要操作的表,然后键入BROWSE命

令。BROWSE命令的格式如下:

Browse[〈范围〉][Fields〈字段名表>][Forv条件表达式》]

[<NOAPPEND>][<NOMODIFY>]

交互式地对当前表记录进行编辑的命令:

CHANGE|EDIT[〈范围〉][Fieldsv字段名表<[For<条件表达式>]

目录t结束

2.数据的选择显示

数据的显示常常使用LIST和DISPLAY命令,命令

格式如下:

List|Display[<范围>][[Fields]〈字段名表达式表>][For(条

件表达式>][WHILEv条件表达式>][ToPrinter][ToFile<文件名>]

[off]

门"■「OK♦仙

2.3.4记录指针的移动

对于一个打开的表文件来说,系统对表中的记录是逐条

进行处理的,表刚打开时指针是指向表中最上面的记录的。

1.命令方法移动指针

命令方法移动指针需要了解表文件的逻辑结构,表最上

面的记录是首记录,记为TOP;最下面的记录是尾记录,记

为BOTTOM;在第一个记录之前有一个文件起始标识,称

为文件首(BeginningofFile,简称BOF);在最后一个记录

的后面有一个文件结束标识,称为文件尾(EndofFile,简

称EOF)。移动指针就是要把指针定位在某个记录上。

I录】■1•OK♦火

文件头ALL

首记录一

1852

RECORDN+M

目录上一弓一结束

(1)GO命令

GO命令是绝对定位命令,它将记录指针定位于指定位置。GO命令

有如下两种格式:

GO[TO]TOP|BOTTOM

[GO[TO]]<数值表达式〉

GOTOP命令把指针定位在首记录;GOBOTTOM命令把指针定位在

末记录;

(2)SKIP命令

SKIP命令是相对定位命令,是相对于当前记录进行定位的命令。

命令格式:SKIP[v数值表达式>]

〈数值表达式>的值取正或负的整数,表示指针从当前记录开始移动

多少个记录。v数值表达式〉的值大于零时指针往文件尾移动,小于零时

指针往文件头移动;当〈数值表达式〉缺省时表示1。

2.菜单方法移动指针

打开“浏览”窗口后,选择【表】一【转

到记录】菜单

3.与指针及表相关的测试函数

(1)文件结束测试函数EOF

格式:EOF([V数值表达式>]|v表别名>])

功能:测试v数值表达式》指定工作区中表文件记录指针

是否指向文件结束位置(表文件尾),表文件尾是指最后一

条记录得后面位置。若指针指向结束位置,函数值为逻辑真

(.T.),否则函数值为假(・F.)。

(2)文件起始测试函数BOF

格式:BOF([V数值表达式>]|v表别名>])

功能:测试v数值表达式》指定的工作区中表文件记录指

针是否指向起始位置,表文件起始位置在首记录的前面,也

称为文件头。若指针指向起始位置,函数值为逻辑真(,「)

,否则为假(.F.)。

(3)记录号测试函数RECNO

格式:RECNO([v数值表达式》|〈表别名〉])

功能:给出v数值表达式》指定的工作区中打开的数据表

的当前记录号。

(4)记录总数测试函数RECCOUNT

格式:RECCOUNT([V数值表达式,I〈表别名〉])

功能:测试v数值表达式,指定的工作区中数据表的记录

个数。

(5)文件测试函数FILE

格式:FILE(v文件名〉)

功能:测试v字符表达式,指定的磁盘文件是否存在,若

存在,函数值为逻辑真(,「),否则函数值为假

例如:

?FILE('XSQK.DBF')

(6)记录大小测试函数RECSIZE

格式:RECSIZE([v数值表达式〉Iv表别名>])

功能:测试<数值表达式>指定的工作区中数据表记录的

长度。

(7)数据类型测试函数TYPE

格式:TYPE(v表达式〉)

功能:测试〈表达式〉的数据类型。

(8)检索测试函数FOUND

格式:FOUND()

功能:测试执行LOCATE、CONTINUE、SEEK和FIND等

定位命令(见第三章)的定位是否成功,定位成功则FOUND

()的函数值为.T,,否则为,F.。

门"■「OK♦仙

(9)记录删除测试函数DELETE

格式:DELETED([<表的别名>I〈工作区号>])

功能:测试指定的表,或在指定工作区中所打开的表,记录指针所指的当前

记录是否有删除标记“*”。若有删除标记,函数值为真,否则为假。若缺省自

变量,则测试当前工作区中所打开的表。

(10)表文件名测试函数DBF

格式:DBF([V表的别名>|〈工作区号>])

功能:测试指定的表,或在指定工作区中所打开的表在磁盘的位置。若缺省

自变量,则测试当前工作区中所打开的表。

2.3.5表与表结构的复制

1.结构与数据的同时复制

COPYTO〈表文件〉[V范围>][FIELDS〈字段

名表>][FOR|WHILE〈条件>]

功能:将满足条件的记录按指定的结构复制到新的表文件。

说明:若不指定条件、范围和字段表,则按原结构复制所有记录;V

字段名表》的字段和排列顺序决定了新表的字段和排列顺序;V范围〉缺

省值为ALL;当被复制的表有对应的,fpt文件时,对应的,fpt文件会同时

被复制。复制时被复制的表必须是打开的。

2.只复制表文件结构

COPYSTRUCTURETO〈文件名〉[FIELDS

〈字段名表>]

功能:按指定的字段表复制表结构到一个新文件

,若不指定字段表,则复制与当前表相同的结构。

说明:复制时被复制的表必须是打开的;当被复

制的表有对应的.fpt文件时,对应的.fpt文件会同时

被复制。

3.只复制记录数据

COPYTOv文本文件名〉[V范围>][FIELv字段名表》]

[FOR|WHILE〈条件>]SDF|DELIMITED

功能:按指定格式将表文件的记录复制到文本文件

(.TXT),若省略范围、条件和字段表,则复制所有记录值。

说明:v范围,缺省值为ALL;复制时被复制的表必须是

打开的。SDF为标准数据格式,DELIMITED为限定符格式。

4.复制任何类型的文件

COPYFILE〈源文件〉TO〈目的文件〉

说明:〈源文件〉可以是任何类型,〈源文件>和<目的文件〉的

扩展名不能省去;源表文件须是关闭的;当被复制的表有对应的,fpt文

件时,对应的,fpt文件不会同时被复制,需要用另外一条命令进行复制

O

5.记录数据复制生成数组

COPYTOARRAY数组名[〈范围〉][FIELD〈字段名表>][FOR]

WHILE〈条件>]

功能:记录数据传送到二维数组,每个记录对应数组的一行。

6.复制生成排序表文件

命令格式:

SORTTO〈排序文件〉ON〈字段1>[/A|/D][/C][,字段2][/A|

/D][/C]….[V范围>][FIELDSv字段表>][FOR|WHILE〈条件>]

功能:按指定的关键字,重新排列记录顺序组成新文件(排序文件)

,原文件不变。

说明:排序文件以关键字段值为序,从左到右依次序为第一,第二

,…,顺序;/D表示降序,缺省为升序;[/C]不区分大小写字母;只允

许C,N,D,L四种类型作排序关键字段;若缺省范围和条件,则对全部

记录排序;若不指定字段表,则排序文件与原文件结构相同。

2.3.6记录的插入与追加

1.APEND命令

2.APPENDFROM命令

格式工:

APPENDFROM表文件名[FIELDS<字段名表>][FOR|WHILEV条件

>]

不选[F正LDS<字段名表>]时,源表中所有字段的数据都添加到当前表,否则

只添加〈字段名表》中出现的字段;不选[FOR|WHILEv条件>]时,源表中所有

的记录都添加到当前表,否则只添加源表中满足〈条件>的记录。

格式2:

APPENDFROM文本文件SDF|DELIMITED[FIELDV字段名表>]

[FOR|WHILEV条件>]

文本文件为标准格式或限定格式文件,标准格式选SDF,否则选DELIMITED。

格式3:

APPENDFROMARRAY数组名[FIELDV字段名表>][FOR|WHILE<

条件>]

门"■「OK♦仙

3.INSERT命令

INSERT命令可以在表的任意位置插入新的记录,它的命

令格式是:

INSERT[BEFORE][BLANK]

如果不指定BEFORE则在当前记录之后插入一条新记录,

否则在当前记录之前插入一条新记录。

如果不指定BSNK则出现类似执行APPEND命令时出现的

界面,并以交互方式输入记录的值。否则在当前记录之后(

或之前)插入一条空白纪录。

2.3.7记录的删除与恢复

VisualFoxPro的记录删除分为逻辑删除和物理删除。逻辑删除就是

给记录打上删除标记;物理删除就是把打上删除标记的记录从数据表中

彻底删除,或把表中的所有记录全部彻底删除而只保留表结构。记录的

恢复就是把逻辑删除标记去掉。

1.记录的逻辑删除

(1)菜单方法与鼠标单击方法

首先打开“浏览”窗口,然后从“表”菜单中选择“删除记录”

(2)逻辑删除命令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论