读书人

关于用SQL“like”查询Access数据库备

发布时间: 2013-01-11 11:57:35 作者: rapoo

关于用SQL“like”查询Access数据库备注字段的问题
大家知道,当数据库是Access,字段数据类型是“备注”时,用SQL查询,如果用关键字like,那么就会报“内存溢出”。搜搜了网上,有高手给出一种解决方法,我试了试,挺好,好象解决了这个问题。
代码如下:
......
SQL.Add('and (InStr(1,LCase(内容),LCase(:nr),0)<>0)');
Parameters.ParamByName('nr').Value:=Edit1.Text;
本人水平低,看不懂是什么意思,有没有高手说说这到底是什么意思。
谢谢!!
[解决办法]
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()是一个函数,表示将字符串转换成小写。
[解决办法]
InStr作用是否包含某一内容,功能类似LIKE;
[解决办法]
上边说的很详细了。给分结帖吧。

读书人网 >.NET

热点推荐