foxpro测试函数

状态检验函数

⒈ 数据库参数测试函数

⑴返回数据库的别名──ALIAS()

【格式】ALIAS([<别名>])

其中,<别名>可以为工作区编号(1 ̄255),也可以为工作区代码(A ̄J)或工作区别

名。

【功能】返回指定工作区中已打开数据库文件的别名。

【说明】该函数可以使用0(或1)个参数,函数值类型为字符型。省略<别名>时则返回

当前工作区中数据库文件的别名。如果指定的工作区内并未打开数据库文件,则返回一空串。

 

例如:

SELECT 1

USE MYDBF &&在工作区1打开数据库文件MYDBF.DBF

? ALIAS(1), ALIAS(“A”), ALIAS()

MYDBF MYDBF MYDBF

 

⑵返回数据库文件名──DBF()

【格式】DBF([<别名>])

【功能】返回指定工作区中已打开数据库文件名称。

【说明】该函数可以使用0(或1)个参数,函数值类型为字符型。省略<别名>时则返回

当前工作区数据库文件的名称。如果指定的工作区中并未打开数据库文件,则返回一空串。

例如:

SELECT 1

USE MYDBF &&在工作区1打开数据库文件MYDBF.DBF

? DBF(1), DBF(“A”), DBF()

C:\FOXPROW\MYDBF.DBF C:\FOXPROW\MYDBF.DBF C:\FOXPROW\MYDBF.DBF

 

⑶测试数据库是否打开──USED()

【格式】USED([<别名>])

【功能】测试指定工作区中是否有数据库打开,若有打开的数据库,则返回.T., 否则

返回.F.。

【说明】该函数可以使用0(或1)个参数,函数值类型为逻辑型。若省略<别名>,则测

试当前工作区。

例如:

CLEAR ALL

?USED(1)

.F.

SELECT 1 &&选择工作区1

USE MYDBF &&在工作区1打开数据库文件MYDBF.DBF

?USED(1),USED(“A”),USED(), USED(“TXLK”)

.T. .T. .T. .T.

 

⑷返回数据库字段名──FIELD()

【格式】FIELD(<数值表达式>[,<别名>])

其中,<数值表达式>用来指定字段名在数据库中的位置序号,即第几个字段。

【功能】返回指定工作区中已打开数据库文件的第<数值表达式>个字段的名称。

【说明】该函数允许使用一个或两个参数,函数值类型为字符型。如果没有指定工作区

名,则返回当前工作区中已打开数据库的第<数值表达式>个字段的名称。如果指定的< 数值

表达式>的值超过数据库的字段个数或者指定工作区中没有打开数据库文件, 则返回一空字

符串。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

&& 字段名顺序为:姓名,性别,职务,工作单位,邮政编码,通讯地址

? FIELD (1), FIELD(4,1),FIELD(5,”A”), FIELD(6,”TXLK”)

姓名 工作单位 邮政编码 通讯地址

 

⑸返回数据库字段个数──FCOUNT()

【格式】FCOUNT([<别名>]

【功能】返回指定工作区中数据库的字段个数。

【说明】该函数可以使用0(或1)个参数,函数值类型为数值型。若省略<别名>,则返

回当前工作区中数据库的字段个数。如果指定工作区中没有打开数据库文件,则返回0值。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

? FCOUNT(1), FCOUNT(“A”), FCOUNT(), FCOUNT(“TXLK”)

6 6 6 6

 

⑹返回数据库记录个数──RECCOUNT()

【格式】RECCOUNT([<别名>])

【功能】返回指定工作区中数据库记录的个数。

【说明】该函数可以使用0(或1)个参数,函数值类型为数值型。若省略<别名>,则返

回当前工作区中数据库的记录个数。如果指定工作区中没有打开数据库文件,则返回0 值。

该函数将对数据库中的“全部”记录进行计数,不受SET DELETED 或SET FILTER设置的影响。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库,共50条记录

? RECCOUNT(1), RECCOUNT(“A”), RECCOUNT()

50 50 50

 

⑺返回数据库记录长度──RECSIZE()

【格式】RECSIZE([<别名>])

【功能】返回指定工作区中数据库记录的长度(所有字段宽度之和加1)。

【说明】该函数可以使用0(或1)个参数,函数值类型为数值型。若省略<别名>,则返

回当前工作区中数据库记录的长度。如果指定工作区中没有打开数据库文件,则返回0值。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

? RECSIZE(1), RECSIZE(“A”), RECSIZE(), RECSIZE(“TXLK”)

83 83 83 83

 

⒉ 数据库记录状态测试函数

⑴测试记录指针是否在文件头──BOF()

【格式】BOF([<别名>])

【功能】测试一个数据库文件的记录指针是否在文件开头(即第一条记录的前面),若

是,则返回.T.,否则返回.F.。

【说明】该函数可以使用0(或1)个参数,函数值类型为逻辑型。省略<别名>时则测试

当前工作区中数据库记录的状态。如果指定的工作区中并未打开数据库文件,则返回.F.。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

? BOF()

.F.

SKIP -1 &&往回移动一个记录

? BOF()

.T.

 

⑵测试记录指针是否在文件尾──EOF()

【格式】EOF([<别名>])

【功能】测试一个数据库文件的记录指针是否在文件尾(即最后一条记录的后面),若

是,则返回.T.,否则返回.F.。

【说明】该函数可以使用0(或1)个参数,函数值类型为逻辑型。省略<别名>时则测试

当前工作区中数据库记录的状态。如果指定的工作区中并未打开数据库文件,则返回.F.。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

GO BOTTOM &&指向数据库最后一条记录

? EOF()

.F.

SKIP &&向下移动一个记录

? EOF()

.T.

 

⑶测试当前记录是否被逻辑删除──DELETED()

【格式】DELETED([<别名>])

【功能】测试数据库当前记录是否执行过逻辑删除,如果当前记录已经标上“删除”标

记,则返回.T.,否则返回.F.。

【说明】该函数可使用0(或1)个参数,函数值类型为逻辑型。省略<别名>时则测试当

前工作区中数据库当前记录的状态。如果指定的工作区中并未打开数据库文件,则返回.F.。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

? DELETED()

.F.

DELETE &&逻辑删除当前记录

? DELETED()

.T.

 

⑷测试记录查找结果──FOUND()

【格式】FOUND([<别名>])

【功能】测试数据库记录查找命令(CONTINUE、FIND、LOCATE或SEEK)是否成功地找到

指定的记录,如果找到,则返回.T.,否则返回.F.。

【说明】该函数可使用0(或1)个参数,函数值类型为逻辑型。省略<别名>时则测试当

前工作区。如果指定的工作区中并未打开数据库文件,则返回.F.。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

? FOUND()

.F.

LOCATE FOR 姓名=”世纪” &&查找姓名为“世纪”的记录(假设存在)

? FOUND()

.T.

 

⑸返回当前记录号──RECNO()

【格式】RECNO([<别名>])

【功能】返回当前记录指针所在记录的编号。

【说明】该函数可使用0(或1)个参数,函数值类型为数值型。省略<别名>时则返回当

前工作区中数据库的当前记录号。如果指定的工作区中并未打开数据库文件,则返回0值。

例如:

SELECT 1

USE TXLK && 打开通讯录数据库

? RECNO(1), RECNO(“A”), RECNO(), RECNO(“TXLK”)

1 1 1 1

 

其实,当记录指针在不同的位置时,RECNO()函数的返回值是不同的。具体情况如下:

 

记录指针当前位置 RECNO()函数返回值 BOF()函数值 EOF()函数值

在文件头 1 .T. .F.

在文件尾 记录总数+1 .F. .T.

空数据库 1 .T. .T.

其它情况 当前记录编号 .F. .F.

 

⒊ 其它测试函数

⑴测试文件是否存在──FILE()

【格式】FILE(<字符表达式>)

其中,<字符表达式>指定要检查的磁盘文件名(允许使用盘符和路径),可以为字符型

内存变量或字符串常量。

【功能】检查指定的磁盘文件是否存在,若存在,则返回.T.,否则返回.F.。

【说明】该函数需要一个字符型参数,函数值类型为逻辑型。

例如:

? FILE(“C:\FOXPROW\GENMENU.PRG”)

.T.

 

⑵测试表达式值是否为空──EMPTY()

【格式】EMPTY(<表达式>)

其中,<表达式>可以为任何类型的表达式。

【功能】测试<表达式>值是否为“空” ,若为空,则返回.T.,否则返回.F.。

【说明】该函数需要一个参数,函数值类型为逻辑型。不同类型的表达式对“空”的规

定也不同,具体如下:

数据类型 表达式内容

字符型 空串、空格、换行符、回车符或其组合

数值型 0

日期型 { / / }或CTOD(“”)

逻辑型 .F.

备注型 备注字段中没有任何内容

通用型 通用字段中没有任何OLE对象

 

例如:

? EMPTY(“12345”),EMPTY({10/01/99}),EMPTY(.T.),EMPTY(10+20)

.F. .F. .F. .F.

CLEAR ALL

?EMPTY(DBF()),EMPTY(.F.)

.T. .T.

 

⑶测试表达式值是否在指定范围──BETWEEN()

【格式】BETWEEN(<表达式1>,<表达式2>,<表达式3>)

其中,<表达式1>、<表达式2>和<表达式3>必须为相同类型(数值型、字符型、日期型)

的表达式。

【功能】检查<表达式1>的值是否大于或等于<表达式2>的值且小于或等于<表达式3> 的

值,如果在此范围内,则返回.T.,否则返回.F.。

【说明】该函数需要三个类型相同的参数,函数值类型为逻辑型。

例如:

? BETWEEN(20,10,30),BETWEEN(40,20,30)

.T. .F.

? BETWEEN(“1″,”0″,”9”), BETWEEN(“b”,”A”,”Z”)

.T. .F.

? BETWEEN({10/01/99},{07/01/99},{12/20/99}),BETWEEN(DATE(),DATE()+1,DATE()-1)

.T. .F.

 

⑷测试一个表达式是否包含在一系列表达式中──INLIST()

【格式】INLIST(<表达式1>,<表达式2>[,<表达式3>…])

其中,<表达式1>、<表达式2>、<表达式3>…必须为相同类型(数值型、字符型、 日期

型和逻辑型)的表达式。

【功能】检查<表达式1>是否出现在<表达式2>、<表达式3>…等表达式中,若在, 则返

回.T.,否则返回.F.。

【说明】该函数需要两个以上(最多为25个)类型相同的参数,函数值类型为逻辑型。

例如:

? INLIST(“Microsoft Word”,”Microsoft Word”,”Microsoft Excel”)

.T.

mybirthday={10/01/70}

? INLIST(mybirthday,DATE()

.F.

 

⑸测试表达式结果类型──TYPE()

【格式】TYPE(<字符表达式>)

其中,<字符表达式>指定要测试的表达式(也可以为数据库的字段名),被测试的表达

式应使用字符串定界符括起来。

【功能】测试指定表达式的数据类型,并返回相应数据类型的代码(C─字符型、N─数

值型或浮点型、D─日期型、L─逻辑型、M─备注型、G─通用型、U─未定义类型)。

【说明】该函数需要一个字符型的参数,函数返回值为代表该数据类型的代码。

例如:

? TYPE(“[ABC]+[DEF]”)

C

? TYPE(“2*3+4”)

N

? TYPE(“DATE()”)

D

? TYPE(“3<5”)

L

? TYPE(”Foxpro”)

U

 » 转载请注明来源:网络蛀虫小窝 » 《foxpro测试函数》
 » 本站地址:http://www.gomoth.com

标签: