分类分类
关注+2009-04-27作者:
Microsoft JET Database Engine 错误 '80040e14'
本来的代码是:
sql_news="select * from news where new_title like '%"&search&"%' "
sql_road="select * from road where road_name like '%"&search&"%'"
sql_Features="select * from Features where mingcheng like '%"&search&"%' "
修改后的代码是:
sql_news="select * from news where InStr(1,LCase(new_title),LCase('"&search&"'),0)<>0 "
sql_road="select * from road where InStr(1,LCase(road_name),LCase('"&search&"'),0)<>0 "
sql_Features="select * from Features where InStr(1,LCase(mingcheng),LCase('"&search&"'),0)<>0 "
修改后测试问题解决。
下面是解决过程中参考的资料:
==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"
附:
Active Server Pages, ASP 0126 (0x80004005) --> 找不到包含文件
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21) --> sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) --> sql语句出错(字段名错
误,或数据类型不匹配)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) --> sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E57) --> sql语句出错(要插入或更新的数据溢出)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) --> sql语句出错(update字段名或要更新的数据类型错误)
Microsoft OLE DB Provider for ODBC Drivers (0x80004005) --> sql语句出错(要插入或更新的字段的数值不能为空值)
Microsoft OLE DB Provider for ODBC Drivers (0x80004005) --> 打开数据库出错,没有在指定目录发现数据库
Microsoft OLE DB Provider for ODBC Drivers (0x80040E37) --> 没有发现表
Microsoft VBScript 运行时错误 (0x800A000D) --> 错误引用rs变量(rs对像已关闭或未定义)
Microsoft VBScript 运行时错误 (0x800A01C2) --> vbscript脚本错误(vbscript语句出错)
Microsoft VBScript 运行时错误 (0x800A0006) --> vbscript脚本错误(溢出错误)
Microsoft VBScript 编译器错误 (0x800A040E) --> 缺少loop
Microsoft VBScript 编译器错误 (0x800A03EA) --> 缺少if或end if
Microsoft VBScript 编译器错误 (0x800A03EE) --> 语句未结束(缺少")")
Microsoft VBScript 编译器错误 (0x800A03F6) --> if语句出错(缺少end if)
Microsoft VBScript 运行时错误 (0x800A005B) --> 缺少set
Microsoft VBScript 运行时错误 (0x800A0005) --> 变量未定义
Microsoft VBScript 编译器错误 (0x800A03F9) --> if语句缺少then
Microsoft VBScript 编译器错误 (0x800A0411) --> dim语句定义错误
Microsoft VBScript 编译器错误 (0x800A0408) --> sql语句错误(?????????????????)
ADODB.Recordset (0x800A0BB9) --> sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误)
ADODB.Recordset (0x800A0CC1) --> rs对像出错(rs对像本身不存在或错误地引用了一个不
存在的字段名)
ADODB.Recordset (0x800A0BCD) --> rs对像出错(记录集中没有记录却对记录集进行操作)
ADODB.Recordset (0x800A0E78) --> rs对像出错(记录集不存在,缺少rs.open语句)
ADODB.Recordset (0x800A0CC1) --> rs对像出错(引用了一个不存在的字段名)
ADODB.Recordset (0x800A0E7D) --> conn定义错误
ADODB.Recordset (0x800A0CB3) --> 数据库以只读方式打开,无法更新数据。
相关文章
更多+相同厂商
热门推荐
点击查看更多
点击查看更多
点击查看更多
说两句网友评论