在数据库操作过程中,用户需要了解数据对象的类型、状态等属性,Visual FoxPro提供了相关的测试函数,使用户能够准确地获取操作对象的相关属性。 1.数据类型测试函数 格式:VARTYPE((表达式),[(逻辑表达式)]) 功能:测试表达式的数据类型,返回用字母代表的数据类型。函数值为字符型。未定义或错误的表达式返回字母U。若表达式是一个数组,则根据第一个数组元素的类型返回字符串。 若表达式的运算结果是NULL值,则根据函数中逻辑表达式的值决定是否返回表达式的类型。具体规则是:如果逻辑表达式为.T.,则返回表达式的原数据类型。如果逻辑表达式为.F.或省略,则返回X,表明表达式的运算结果是NUll值。 举例: a=DATE() a=NUll ?VARTYPE($385),VARTYPE([FoxPro]),VARTYPE(a,T.),VARTYPE(a) 输出为:Y C D X。 2.表头测试函数 格式:BOF([(工作区号)])l<别名)]) 功能:测试指定或当前工作区的记录指针是否超过了第一个逻辑记录,即是否指向表头,若是,函数值为.T.,否则为.F.。(工作区号)用于指定工作区,(别名)为工作区的别名或在该工作区上打开的表的别名。当<工作区号>和<别名>都缺省不写时,默认为当前工作区。 3.表尾测试函数 格式:EOF([(工作区号)[(别名>]) 功能:测试指定或当前工作区中记录指针是否超过了最后一个逻辑记录,即是否指向表的末尾,若是,函数值为.T.,否则为.F.。自变量含义同BOF函数,缺省时默认为当前工作区。 4.记录号测试函数 格式:REcNO([<工作区号>}(别名>]) 功能:返回指定或当前工作区中当前记录的记录号,函数值为数值型。省略参数时,默认为当前工作区。如果记录指针在最后一个记录之后,即EOF()为.T.,RECNO()返回比记录总数大l的值。如果记录指针在第一个记录之前或者无记录,即BOF()为.T.,REcONO()返回1。 5.记录个数测试函数 格式:RECCOUNT([(工作区号|别名>]) 功能:返回当前或指定表中记录的个数。如果在指定的工作区中没有表被打开,则函数值为O。如果省略参数,则默认为当前工作区。RECCOUNT()返回的值不受SET r)EI。ETED和SET FIITER的影响,总是返回包括加有删除标记在内的全部记录数。 6.查找是否成功测试函数 格式:FOUND([<工作区号『别名>]) 功能:在当前或指定表中,检测是否找到所需的数据。如果省略参数,则默认为当前工作区。数据搜索由FIND、SEEK、LOCATE或CONTINUE命令实现。如果这些命令搜索到所需的数据记录,函数值为.T.,否则函数值为.F.。如果指定的工作区中没有表被打开,则FOUND()返回.F.。如果用非搜索命令如GO移动记录指针,则函数值为.F [Page] 7.文件是否存在测试函数 格式:FILE((文件名>) 功能:检测指定的文件是否存在。如果文件存在,则函数值为.T,否则函数值为.F文件名必须是全称,包括盘符、路径和扩展名,且(文件名)是字符型表达式。 8.判断值介于两个值之间的函数 格式:BETwEEN(<被测试表达式>,<下限表达式),(上限表达式)) 功能:判断表达式的值是否介于相同数据类型的两个表达式值之间。BETwEEN()首先计算表达式的值。如果一个字符、数值、日期、表达式的值介于两个相同类型表达式的值之间,即被测表达式的值大于或等于下限表达式的值,小于或者等于上限表达式的值,BETW:EEN()将返回.T.值,否则返回.F 举例: gz一375 7 BETWEEN(gz,260,650) 输出为.T 9.条件函数IIF 格式:IIF((逻辑型表达式),(表达式1),(表达式2>) 功能:若逻辑型表达式的值为.T.,函数值为(表达式1>的值,否则为<表达式2>的值。 举例: xb=\"女\" ?IIF(xB=[男],l,IIF(Xb一[女],2,3)) 输出为2。 |
联系客服