深山工作室

深山工作室 >

asp采用access数据库搜索信息时因为日文片假名问题提示“Microsoft JET Database Engine 错误80040e14”的解决方法

程序是:asp
数据库:access
在搜索时出现错误:
--------------------------------------------
错误提示:
Microsoft JET Database Engine 错误 '80040e14'
内存溢出
--------------------------------------------

其实ASP下出现80040e14错误一般有两个问题产生的:
1、数据表名使用了保留字
2、一般出现在搜索like语句下,Access搜索日文片假名或者中文乱码情况下会出现这个错误


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 [qwnew] Where Title like '%"&keyword&"%' Order By id Desc"
换成:Sql = "select * from [qwnew] where InStr(1,LCase(Title),LCase('"&keyword&"'),0)<>0 order by id desc"

实例 sql="select * from qwnew where mername like '%"& keyword &"%' order by id desc"
换成 sql="select * from qwnew where  InStr(1,LCase(mername),LCase('"& keyword &"'),0)<>0  order by id desc"

这个问题据说是Access的一个BUG,在SQL Server没有发现这个问题。原因绝大多数的情况是由于文章、标题、名字等内容的标题、名称或者关键字等字段内含有一些日本片假名造成的。这些非法字符包括:(不能写出来,否则搜索该出错了)。反正看到那26个日文字符就不要写就好了,保证没这个问题。
前一页:asp利用dateadd获得上个月、本月、下个月的第一天和最后一天
后一页:纯asp根据当前日期计算出相应的星座
更多>>asp函数库相关信息
asp利用hasOwnProperty验证某个json中的某个标签是否存在
asp用BcO将二进制转八进制然后再OcB将八进制转二进制
asp用BcH将二进制转十六进制然后再HcB将十六进制转二进制
asp用cDec将二进制转十进制然后再用cBit将十进制转二进制
纯asp根据当前日期计算出相应的星座
更多>>最新添加
dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
抖音直播音挂载小雪花 懂车帝小程序
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法