给客户处理搜索查询的时候提示错误:Microsoft JET Database Engine 错误 '80040e14'内存溢出的解决办法,这个错误是什么原因引起的呢?下面看编程之家的解决方法。
我们先看一下错误提示
Microsoft JET Database Engine 错误 '80040e14'
内存溢出
/admin_search.asp,行 74
我们可以根据代码具体错误来分析,下面我就来说一下这两种问题的解决办法:
1、数据表名或者字段使用了保留字
这个问题就比较简单了,因为不同数据库的保留字是不同的,不过常见的有:ADD、ALL、ALTER、AND、BETWEEN、COLUMN、Count、COUNTER、CREATE、DATE、DATETIME、DOUBLE、FUNCTION、GROUP、GUID、INDEX、INSERT、INTO、LEFT、NAME、REAL等等,实在太多了。
解决的办法就是将这个数据库表或者字段加上中括号“[]”就可以了,比如:
select * from [counter] where id=1 //这个是数据库表名
select [name], mobile * from addrbook //这个是字段
2、搜索like语句的错误
搜索中文乱码或者日文片假名可能会产生这个问题,尤其在Access数据库下。
把如下的语句:
sql = "select * From [tbname] Where Title like '%"&keyword&"%' Order By id Desc"
换成:
sql = "select * from [tbname] where InStr(1,LCase(Title),LCase('"&keyword&"'),0)<>0 order by id desc"
实例
sql="select * from merinfo where mername like '%"&sousuo&"%' order by id desc"
换成
sql="select * from merinfo where InStr(1,LCase(mername),LCase('"&sousuo&"'),0)<>0 order by id desc"
第一和第二实例结合
sql = "[" & FieldKey & "] Like '%" & Key & "%'"
换成
sql = "InStr(1,[" & FieldKey & "], LCase('" & Key & "'),0)<>0"
对于以上用到的几个语法解释
instr函数
instr( string1, string2)
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串 。
lcase函数
LCase(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。
说明
只有大写的字母会转成小写;所有小写字母和非字母字符保持不变。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。