数据库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 指定逻辑表达式