26个日文片假名导致Access搜索(80040e14/内存溢出)的解决办法

ゴ ガ ギ グ ゲ ザ ジ ズ ヅ デ ド ポ ベ プ ビ パ ヴ ボ ペ ブ ピ バ ヂ ダ ゾ ゼ

当字段内包含了这26个日文字符任意一个多个时,就会导致在执行SQL语句中包含了

[字段] like '%aaaaa%' 或 inStr(1,[字段],'aaaaa',1)>0

这样的查询时,毫无道理的出现了

"Microsoft JET Database Engine 错误 '80040e14' 内存溢出"的错误

其他Jet SQL函数命令未作测试,大概与字符搜索定位匹配相关的都可能出错

搜索相关资料得知被微软工程师证实是Access的bug,可能是语法关系都是微软的东东

在vbs中 执行inStr(1,日文平假名变量,"aaaaa",1)依然要出现错误

Microsoft VBScript 运行时错误 错误 '800a0005' 无效的过程调用或参数: 'instr'

没有搜索,因这几个字符出现Access的论坛网站搜索无法进行,何等痛苦

昨天一朋友大叫怪事,他的音乐数据库无法搜索了,只有30000条记录时是好的

毫无疑问,日文片假名是祸根,花几分钟把有包含上面的日文替换成"?"搜索顺利恢复

找来论坛程序用户群最大的动网dvBBS AC版本 7.0SP2 版测试,同样有这个日文发帖后 导致无法搜索并且运行时出错的问题

线上去搜索 '80040e14' 内存溢出" 的错误 多的是!

一个简单的方法是:

把如下的语句:

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"

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部