VFP的查询(3)之模糊查询

作者在 2006-10-06 02:03:00 发布以下内容

VFP程序经常用到查询,其中有模糊查询的情况。用AT()和$都不能满足需要,这个时候就要用SELECT-SQL的LIKE子句了。但是需要查询的内容被写入一个文本框,如何使用LIKE子句呢?一个处理的思路就是一个字符一个字符地取出来。遇到需要查询单字节字符倒也无妨,但是需要处理双字节,上述思路就错了。正确的办法就是“遇单取单,遇双取双”。这就需要用到函数ISLEADBYTE()函数了。

就上述模糊查询思路给一个例子。假如数据表(职工.DBF)的内容显示在表格(GRID1)中,需要查询的字段为“姓名”,指定查询的模糊数据在文本框(TEXT1)中。“查询”命令按钮实现查询。则该命令按钮的CLICK代码为

cString=ALLTRIM(THISFORM.TEXT1.VALUE)
IF EMPTY(cString)
  SELECT * FROM 职工
ELSE
  cText="%"
  FOR nCnt=1 TO LEN(cString)
    IF ISLEADBYTE(SUBSTR(cString,nCnt))
      cText=cText+SUBSTR(cString,nCnt,2)+"%"
      nCnt=nCnt+1
    ELSE
      cText=cText+SUBSTR(cString,nCnt,1)+"%"
    ENDIF
  ENDFOR
  SELECT * FROM  WHERE 姓名 LIKE (cText)
ENDIF

VFP程序 | 阅读 8119 次
文章评论,共1条
对艺贺要(游客)
2020-04-12 23:41
1
谢谢!
游客请输入验证码
浏览116608次