当前位置:洪恩在线 -> 继续教育 -> 计算机考级 -> 二级FOXBASE+语言
 

  计算机考试
 


  FOXBASE+    


  数据检索——索引查询

     前面学过的LIST、DISPLAY命令是数据查询的常用命令,LOCATE命令用于按条件顺序定位,这三条命令无论是否打开索引均可以使用。打开索引之后还可以进行快速记录指针定位,将指针指向与主索引的索引关键字或索引表达式相匹配的第一个记录。

    一、查找字符串或数值FIND

     命令格式:      FIND<字符串>|<数字>

     命令注释:

     (1)查找到匹配的记录时,将记录指针指向该记录。测试函数FOUND()返回逻辑真值。查找失败时,系统给出“没找到”提示信息。测试函数FOUND()返回逻辑假值,指针指向文件结束标识。

     (2)FIND中的字符串可以省略定界符,若字符串包括前置空格,则必须加定界符。

     (3)如果通过字符型内存变量检索,FIND中必须使用宏替换函数&,以表示按内存变量的内容检索。

    二、宏替换函数&

     系统提供一个独特的宏替换函数&,形式上的独特表现在唯有此函数不带括号。

     宏替换函数      &<字符型变量>[.]

     功能:替换出字符型变量的内容,即&的值是变量中的字符串。如果该函数与其后的字符无明确分界,则要用“.”作结束标识。

    三、查找表达式SEEK

     命令格式:      SEEK<表达式>

     命令注释:

     (1)查找到匹配的记录时,将记录指针指向该记录。测试函数FOUND()返回逻辑真值。查找失败时,系统给出“没找到”提示信息。测试函数FOUND()返回逻辑假值,指针指向文件结束标识。

     (2)SEEK中的字符串必须有定界符,以表示指定的不是变量而是字符串常量。

     (3)如果通过字符型内存变量检索,SEEK中应直接给出内存变量名,作为简单的表达式,不使用宏替换&函数。

     相比之下,如果检索字符串或数字,用FWD比较方便。如果检索日期型索引关键字或用变量及表达式检索,必须用SEEK命令。

     检索字符串时,在系统默认SET EXACT OFF状态下,检索的字符串可以是索引关键字的前几个字符。在SET EXACT ON状态下,检索的字符串必须与索引关键字完全匹配。

     前面对ZGJK.DBF已经建立了三个索引文件:按职称的唯一索引JK_ZC.IDX、先按职称,再按基本工资的二重索引JK_ZCGZ.IDX,按基本工资的降序索引JK_DGZ.IDX。对青年数据库QNZC.DBF建立过的索引关键字是出生日期的索引QN_RQ.IDX。数据库修改后己经更新了索引文件。

    四、SEEK与FIND的比较

     SEEK和FIND命令都是根据索引文件查找与索引表达式相匹配的记录来定位指针。由于逻辑型数据不能比较大,故不能按照逻辑型数据建立索引,因此SEEK和FIND都不能查找L型数据。两者之间的主要区别如下:

    1.查找对象的区别

    SEEK的查找对象是关键字表达式;FIND查找常量,包括使用宏替换函数。

    2.数据类型的区别

    FIND能够查找数值型N或字符型C数据;SEEK能够查找数值型N、字符型C和日期型D数据。

课堂提问:
问题

 


简单举例
例子
基础测试
测试