(4). 转换函数
在数据库应用的过程中,经常要将不同数据类型的数据进行相应转换,满足实际应用的需要。Visual FoxPro系统提供了若干个转换函数,较好地解决了数据类型转换的问题。
1).ASCII码函数ASC( )
【格式】ASC ( 【功能】返回cExp串首字符的ASCII码值。函数值为N型。
【例】 ? ASC(“abc”) && 结果为:97
2).ASCII 字符函数CHR( )
【格式】CHR( 【功能】返回以nExp 值为ASCII 码的ASCII 字符。函数值为C 型。
【例】 ? CHR(99) && 结果为:c
3).字符日期型转换函数CTOD( )
【格式】CTOD( 【功能】把“××/××/××”格式的cExp串转换成对应日期值。函数值为D型。
【ày】 DA=”12/12/99”
? CTOD(DA)
12/12/99
4).日期字符型转换函数DTOC( )
【格式】DTOC( 【功能】把日期dExp转换成相应的字符串。函数值为C型。
【ày】 D={^2004/11/24}
DT=DTOC(D)
? DT
?? LEN(DT)
11/24/04 8
5).数值转换成字符串函数STR( )
【格式】STR( 【功能】将nExp1 的数值转换成字符串形式。函数值为C 型。
【例】 ?
STR(1324.46,6,1) 1324.5 ?
STR(1324.46,8,3) , STR(1324.46,3,1) 1324.460 ***
注:如果长度小于 6).字符串转换成数值函数VAL( )
【格式】VAL ( 【功能】将cExp 串中数字转换成对应数值,转换结果取两位小数。函数值为N 型。
【例】 ? VAL(”32”+”18”) 3218.00 ?
VAL(”112GH”),VAL(”AB204”),VAL(”ASD”) 112.00
0.00 0.00
7).宏代换函数 &
[格式]:&<字符型内存变量>
[功能]:取“字符型内存变量”的值。
[说明]:
(1)宏代换是一种间接取值的操作,在&符号后面必须紧跟(无空格)一个己被赋过值的字符型内存变量的名字。
(2)若&<字符型内存变量>与后面的字符之间无空格分界时,应加上“.”符号作为分界符。
(3)宏代换的使用可以嵌套另一个宏代换,但不能嵌套自己。例如,X=“&X”的写法是错误的。
(4)对于数字字符串,可以通过&函数使其与其他数字进行计算。
[例]:求宏代换。
<1>. CH=”X”
X=9
? &CH &&结果为:9
<2> TT=”学生”
USE &TT &&结果为:打开了“学生.dbf”表文件。
<3> X=”2004”
M=”+”
Y=”&X.&M.1”
? Y &&结果为:2004+1
? &Y &&结果为:2005
(5).测试函数
在数据库应用的操作过程中,用户需要了解数据对象的类型、状态等属性,Visual FoxPro提供了相关的测试函数,使用户能够准确地获取操作对象的相关属性。
1).数据类型函数VARTYPE( )
【格式】VARTYPE(<表达式>)
【功能】返回<表达式>表示的数据对象的数据类型,返回值是一个表示数据类型的大写字母。C:字符型,D:日期型,N:数值型,L:逻辑型,M:备注型,G:通用型,U:未定义。
2).值域测试函数BETWEEN()
【格式】BETWEEN( 【功能】判断当表达式 【例】? BETWEEN(3*5,10,50),BETWEEN(80,.null.,100)
.T. .NULL.
3).条件测试函数IIF( )
【格式】IIF( 【功能】逻辑表达式lExp 值为真(.T.),返回表达式eExp1 的值,否则返回表达式eExp2 的值。eExp1 和eExp2 可以是任意数据类型的表达式。
【例】成绩=78
?IIF(成绩<60,“不及格”,“及格”)及格
4).当前记录号函数RECNO()
【格式】RECNO([<工作区号> | <别名>])
【功能】返回指定工作区中表的当前记录的记录号。对于空表返回值为1。
【例】 测试记录指针的当前位置。
USE 学生档案.dbf GOTO
BOTTOM ? RECNO() && 显示结果为:10
SKIP ? RECNO() && 显示结果为:11 GO
TOP ? RECNO() && 显示结果为: 1
SKIP -1 ? RECNO() && 显示结果为:
5).表结束标志测试函数EOF( )
【格式】EOF([<工作区号> | <别名>])
【功能】测试记录指针是否移到表结束处。如果记录指针指向表中尾记录之后,函数返回真(.T.),否则为假(.F.)。
【例】测试文件记录是否指向文件尾。
USE 学生档案.dbf
GOTO BOTTOM
? EOF() && 显示结果为:.F.
SKIP && 移动记录指针到下一条记录命令
? EOF() && 显示结果为:.T.
6).表起始标识测试函数BOF ( )
【格式】BOF ([<工作区号> | <别名>])
【功能】测试记录指针是否移到表起始处。如果记录指针指向表中首记录前面,函数返回真(.T.),否则为假(.F.)。
【例】 测试文件记录是否指向文件头。 USE 学生档案.dbf ?
BOF() && 显示结果为:.F. SKIP -1 &&
移动记录指针到上一条记录命令 ? BOF() &&
显示结果为:.T.
7).记录删除测试函数DELETED( )
【格式】DELETED([<工作区号> | <别名>])
【功能】测试指定工作区中表的当前记录是否被逻辑删除。如果当前记有逻辑删除标记,函数返回真(.T.),否则为假(.F.)。
8).记录个数测试函数RECCOUNT( )
【格式】RECCOUNT ([<工作区号> | <别名>])
【功能】返回指定工作区中表的记录个数。如果工作区中没有打开表则返回0。
【例】 USE XY && 假设表中有10条记录
GO BOTTOM
? EOF(),RECNO() && 显示 .F. 10
SKIP
? EOF(),RECNO(),RECCOUNT() && 显示 .T. 11 10 上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页