数据库VF

  • 格式:doc
  • 大小:54.00 KB
  • 文档页数:6

LIST | DISPLAY [FIELDS FieldList] [Scope] [FOR Expression]

[WHILE FieldList] [OFF] [NOCONSOLE] [NOOPTIMIZE]

[TO PRINTER [PROMPT] | TO FILE FileName]

功能:在Visual FoxPro 主窗口或用户自定义窗口中,显示当前表有关信息

①命令动词:LIST | DISPLAY

命令动词决定命令性质,竖线” | ”表示可选用其左边或右边的命令

凡用中括号括起来的命令均为子句,中括号表示可选,执行命令时不必输入,命令动词可仅输入前4

个字母

②Scope(范围)子句

表示命令涉及的记录范围,其限定如下:

RECORD 表示需显示的N 个记录

NEXT 表示从当前记录开始的N个记录

ALL 表示所有记录

REST 表示从当前记录开始直至结束的所有记录

③FIELDS 子句

说明数据库的字段名称,一般后面跟一个FieldList(字段名称列表),由逗号分隔的一个或多个字段名

组成,若不选此子句,则表示选择所有字段

④FOR/WHILE 子句

上述子句后一般跟一个逻辑表达式FieldList,表示筛选出结果为真(.T.)者所对应的记录;两子句同时

使用时,WHILE 子句条件优先,二者区别:FOR 子句能在整个文件中筛选符合条件的记录,WHILE 子

句仅从当前记录开始筛选出第一条满足条件的记录,再继续找出紧随其后满足条件的记录,一旦找到一条

不满足条件的记录,则终止寻找。

【例2.1】命令的用例

use 学生信息&&打开表

display &&仅显示当前的一条记录,命令字母大、小写均可

list &&显示所有记录

list for 性别=“男” &&显示所有男生记录

disp all &&显示所有记录,命令动词可只输入前4个字母

list next 4 &&显示从当前记录开始的4条记录

list next 4 for 性别=”男” &&仅在当前开始的4条记录中寻找并显示满足条件的记录

注:符号&& 为注译符(以下同)表3.5 数值型函数

函数 功能 实例

ABC(数值表达式) 求(数值表达式)的绝对值? ABC(-4) &&4

SQRT(数值表达式) 求(数值表达式)的平方根? SQRT(4) &&2.00

EXP (数值表达式) 求e 的(数值表达式)次方的值? EXP(2) &&7.39

INT (数值表达式) 返回(数值表达式)的整数部份? INT(7.5) &&7

MAX((数式1),(数式2)) 返回数值表达式中较大者? MAX(4,7) &&7

MOD((数式1),数式2)) 取模(求余)(P47) MOD(8.7,3) &&2.7

ROUND((数式1),(数式2)) 数式1 四舍五入,保留(数式2)位小数? ROUND(3.1415,3) &&3.142 RAND(数值表达式) 返回随机数? RAND( ) &&随机数

注:符号&& 为注译,表示表达式的值在符号&&的后面(以下同)

表3.6 字符处理函数

函数 功能 实例

SUBSTR((字符表达式),[,

2>])

返回(字符表达式)中第位起,长度为<

数式2>的子串

?SUBSTR(“ABCD”,2,2) && “BC”

LEFT(,)

返回左起个字符子

? LEFT(“ABCD”,2) && “AB”

RIGHT(,) 返回右起个字符子串? IGHT(“ABCD”) && ”CD”

LEN() 返回字符串的长度? LEN(“ABCD”) &&4

AT(,[,

>])

返回字符串(字符表式1)在中

表式>出现的位置

? AT(“BC”,”ABCD”,1) &&2

函数 功能 实例

ALLTRIM() 删除字符前导和末尾空格? ALLTRIM(“ AB ”) &&“AB”

5

SPACE() 返回个空格? SBACE(4) &&“ ”

UPPER() 将小写字母转为大写? UPPER(“aBc”) && “ABC”

LOWER() 将大写字母转为小写? LOWER(“aBc”) && “abc”

VAL() 将字符串转为数值? VAL(“3.14”) && 3.14

STR([,数表式2>[,

表式3>]])

将数值转换为长度为

位,具有位小数的字符

? STR(3.14,5,1) && “ 3.1”

CHR() 从表示的ASCII码(十进制数)返回字符? CHR(65) &&“ A”

ASC() 返回字符的ASCII码值?ASC(“A”) &&65

表3.7 日期处理函数

函数 功能 例

CTOD() 将(字符表达式)转换为日期? CTOD(“10/01/99”) && 10/01/99

DTOC(日期表达式) 将转换为字符串? DTOC({10/01/99}) && “10/01/99”

DTOS() 转换为YYYYMMDD格式字符串? DTOS(10/01/99) && “ 19991001”

TIME() 以HH:MM:SS的格式返回系统当时的时间? TIME() && 14:54:11

DATE() 返回系统当前日期? DATE() && 02/01/99

YEAR() 返回年份? YEAR(DATE()) &&1999

②测试函数

Visual FoxPro 提供了数十个测试函数,主要用于测试表记录指针的当前位置,记录条数,文件名等,

以下介绍常用的几个。

函数:EOF( )

语法:EOF ([ nWorkArea | cTableAlias ] )

功能:测试由区号或表别名指定的表文件的记录指针是否指向文件尾;若是,则返回值为真(.T.),

否则,返回值为假(.F.)。

说明:

nWorkArea 指定被测工作区号,范围:1~32767。

cTableAlias 指定被测表的别名。

【例 3.4】EOF()函数测试用例

USE 学生信息&&打开表(默认设置:指针指向第一条记录)

? EOF( ) &&输出函数运算结果为:.F.

GO BOTTOM &&将记录指针移至最后一条记录

? EOF( ) &&输出函数运算结果为:.F.

SKIP &&记录指针再移向下一条记录(已越过下界)

? EOF( ) &&输出函数运算结果为:.T.

函数:BOF( )

语法:BOF ([ nWorkArea | cTableAlias ] )

功能:测试由区号或表别名指定的表文件的记录指针是否指向文件头;若是,则返回值为真(.T.),

否则,返回值为假(.F.)。

说明:

nWorkArea 指定被测工作区号,范围:1~32767。

cTableAlias 指定被测表的别名。

【例 3.5】BOF()函数测试用例

USE 学生信息&&打开表(默认设置:指针指向第一条记录)

? BOF( ) &&输出函数运算结果为:.F.

SKIP -1 &&向文件头移动指针(已越过上界)

?BOF( ) &&输出函数运算结果为:.T.

6

函数:RECNO( )

语法:RECNO([ nWorkArea | cTableAlias ])

功能:测试由区号或表别名指定的文件中的指针指向的记录号。

说明:

nWorkArea 指定被测工作区号,范围:1~32767。

cTableAlias 指定被测表的别名。

【例 3.6】测试记录指针当前位置

USE 学生信息

? RECNO( ) &&输出记录号1

SKIP 1 &&向文件尾移动指针

? RECNO( ) &&输出记录号2

SKIP -1 &&向文件头移动指针

?RECNO( ) &&输出记录号1

函数:RECCOUNT( )

衙法:RECCOUNT([ nWorkArea | cTableAlias ]) 功能:测定由区号或表别名指定的表文件中的记录数

说明:

nWorkArea 指定被测工作区号,范围:1~32767。

cTableAlias 指定被测表的别名。

【例 3.7】测试学生信息表.DBF中的记录数

USE 学生信息

? RECCOUNT() &&输出该表记录数12

函数:FOUND( )

语法:FOUND([ nWorkArea | cTableAlias ])

功能:测定由区号或表别名指定的表文件检索操作是否成功,若成功,则返回真值(.T.),否则

返回假值(.F.)

说明:

nWorkArea 指定被测工作区号,范围:1~32767。

cTableAlias 指定被测表的别名。

函数:ROW( ),COL( )

语法:ROW(),COL( )

功能:ROW() 返回光标所在行坐标,COL()返回光标的在列坐标,返回值为数值

【例 3.8】测试光标当前的行、列坐标

@13,30 SAY “成都理工大学” &&在屏幕的10 行、30列输出成都理工大学

row=ROW() &&将当前光标行号赋值给变量row

col=COL() &&将当前光标列号赋值给变量col

? row,col &&输出光标行、列号10.00 42.00

宏函数

语法:&cMenVarName[ . cExpression ]

功能:函数返回指定的字符型内存变量中存放的字符串,或返回该字符串与字符表达式字串连接

后的字符串,返回值为字符型。

说明:

cMenVarName 指定的字符型内存变量

cExpression 指定的字符型表达式

【例 3.9】用&宏替换函数替换字符型变量x的值

x=”Fox” && 给变量x赋值(x为字符型变量)

7

? “&x.Pro” &&输出函数值FoxPro

【例3.10】用&宏替换函数替换字符型变量aa 的值

aa=”12” &&给变量aa 赋值

? &aa+34 &&输出函数值(数值) 46

? &aa”+”34” &&输出函数值(字符串) 1234

条件函数

语法:IIF( Expression,eExpression1,eExpression2 )

功能:若Expression 取真值,则返回eExpression1 的值,否则返回eExpression2 的值,函数返回

值类型与eExpression1 或eExpression2 类型一致。

说明:

Expression 指定逻辑表达式