大家知道,当数据库是Access,字段数据类型是“备注”时,用SQL查询,如果用关键字like,那么就会报“内存溢出”。搜搜了网上,有高手给出一种解决方法,我试了试,挺好,好象解决了这个问题。
代码如下:
......
SQL.Add('and (InStr(1,LCase(内容),LCase(:nr),0)<>0)'); 
Parameters.ParamByName('nr').Value:=Edit1.Text;
本人水平低,看不懂是什么意思,有没有高手说说这到底是什么意思。
谢谢!!

解决方案 »

  1.   

    InStr 函数:
    返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。
    语法 
    InStr([start, ]string1, string2[, compare])InStr 函数的语法具有下面的参数:部分 说明 
    start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。 
    string1 必要参数。接受搜索的字符串表达式。 
    string2 必要参数。被搜索的字符串表达式。 
    Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。指定一个有效的LCID (LocaleID) 以在比较中使用与区域有关的规则。 
    InStr(1,LCase(内容),LCase(:nr),0)<>0
    这个表达式的意思是:在字段名“内容”中找参数:nr 中要找的字符,0表示以二进制方式比较。<>0表示找到

    LCase()是一个函数,表示将字符串转换成小写。
      

  2.   

    InStr作用是否包含某一内容,功能类似LIKE;