有些用户会发现自己的前台搜索功能search.asp这块,以及后台搜索“搜索小助理”,使用搜索时,会出现内存溢出的错误。
原因:因为你的网站文章或下载等的标题/内容里产生了日文片假名。
26个日文片假名导致Access搜索(80040e14/内存溢出)的解决办法==
ゴ ガ ギ グ ゲ ザ ジ ズ ヅ デ ド ポ ベ プ ビ パ ヴ ボ ペ ブ ピ バ ヂ ダ ゾ ゼ
解决方法:使用LCase和InStr函数来解决。解决方法很简单,方法如下:
1.只需用记事本打开search.asp(前台搜索程序),Admin_Article.asp(后台搜索小助理):
2.搜索:And Title Like '%" & KeyWord & "%'
改为:And (InStr(1,LCase(Title),LCase('"&KeyWord&"'),0)<>0
方法会了吧?
如果还不会,说明你的ASP水平还需提高。。。。。
解决文案:
打开Admin_Article.asp,第593行:
将select case searchtype 到 end select的内容替换为以下内容:
Select Case SearchType
Case 0
Param = Param & " And (InStr(1,LCase(Title),LCase('"&KeyWord&"'),0)<>0 Or InStr(1,LCase(SubTitle),LCase('"&KeyWord&"'),0)<>0)"
Case 1
Param = Param & " And InStr(1,LCase(ArticleContent),LCase('"&KeyWord&"'),0)<>0"
Case 2
Param = Param & " And InStr(1,LCase(keywords),LCase('"&KeyWord&"'),0)<>0"
Case 3
Param = Param & " And InStr(1,LCase(Author),LCase('"&KeyWord&"'),0)<>0"
Case 4
Param = Param & " And InStr(1,LCase(ArticleInput),LCase('"&KeyWord&"'),0)<>0"
End Select
打开search.asp文件 156行:
将select case searchtype 到 end select的内容替换为以下内容:
Select Case SearchType
Case 1
Param=Param & " And InStr(1,LCase(Title),LCase('"&KeyWord&"'),0)<>0"
Case 2
Param=Param & " And InStr(1,LCase(PictureContent),LCase('"&KeyWord&"'),0)<>0"
Case 3
Param=Param & " And InStr(1,LCase(Author),LCase('"&KeyWord&"'),0)<>0"
Case 4
Param=Param & " And InStr(1,LCase(PictureInput),LCase('"&KeyWord&"'),0)<>0"
Case 5
Param=Param & " And InStr(1,LCase(KeyWords),LCase('"&KeyWord&"'),0)<>0"
Case else: Param=Param & " And (InStr(1,LCase(Title),LCase('"&KeyWord&"'),0)<>0 Or InStr(1,LCase(Author),LCase('"&KeyWord&"'),0)<>0)"
End Select
[此贴子已经被作者于2007-5-28 13:48:01编辑过]