set exact命令对Foxbase数据库记录查找的影响
set exact off
use student index na
seek "高天"
display
此时屏幕上将显示找到了“高天”这个记录,但事实上此数据库中并没有“高天”这个记录。将上面的set exact off语句改为set exact on,则屏幕上显示找不到此记录。比较这两种情况就会发现set exact命令对搜寻的影响:当exact处于缺省值(off)时,seek命令所进行的字符串搜寻是一种“非完全比较”方式的搜寻,两个字符串由左开始字符逐一比较,一直比较到较短字符串的最后一个字符,如果仍与较长字符串的相应字符相同,则视其为“相等”。当exact被设定为on时,则两个字符串的长度及相对应的字符亦必须相同才可视为相等。因此上面例子中exact为off状态时,“高天”是“高天飞”字符串中的两个字符,故屏幕显示找到了记录。而exact设on状态后,则显示找不到记录了。
exact命令对用locate命令做查寻定位操作时的影响与seek一样,也是分此两种情况。不过,Foxpro为locate命令中的逻辑表达式提供两种等号运算符“=”和“==”。exact命令只对“=”运算符起作用,对运算符“==”没有任何影响,也就是说“==”运算符所进行的字符串比较才是一种真正完全相等的比较。