ASP在ACCESS中模糊查詢"內(nèi)存溢出"的解決方法
今天在日常維護(hù)一個(gè)網(wǎng)站時(shí),發(fā)現(xiàn)該網(wǎng)站的留言程序沒(méi)有經(jīng)過(guò)嚴(yán)格的驗(yàn)證過(guò)濾,導(dǎo)致了將近十萬(wàn)條垃圾數(shù)據(jù)。而其中又不乏重要信息,需要清理數(shù)據(jù),以及增加更為嚴(yán)格的驗(yàn)證措施。
而通過(guò)在數(shù)據(jù)庫(kù)中直接刪除又不太科學(xué),會(huì)誤刪很多重要信息。
通過(guò) 模糊查詢語(yǔ)句:
select * from Feedback where Comments like '%http%'
結(jié)果:“內(nèi)存溢出”
經(jīng)過(guò)不斷的搜索,找出了問(wèn)題的主要原因:
asp 中用 LIKE 關(guān)鍵字查詢?nèi)瘴姆?hào)就會(huì)出錯(cuò),比如說(shuō)Chr(-23075),提示內(nèi)存溢出。
如果數(shù)據(jù)表中的數(shù)據(jù)包含日文或者一些特殊非簡(jiǎn)體漢字符號(hào),也會(huì)出現(xiàn)內(nèi)存溢出的錯(cuò)誤。
而網(wǎng)上說(shuō),上述問(wèn)題已經(jīng)得到微軟動(dòng)力營(yíng)的微軟工程師確認(rèn),為產(chǎn)品的 BUG,無(wú)法解決。唯一的辦法就是將整個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)編碼為ANSI 文本格式,然后保存。顯示的時(shí)候再DECODE。
無(wú)解,只有按上面所說(shuō),進(jìn)行字段轉(zhuǎn)換保存到另外一個(gè)新字段中,然后再進(jìn)行清理操作。面對(duì)這個(gè)超標(biāo)數(shù)據(jù)真是困難。
EncodeString 函數(shù)進(jìn)行字符轉(zhuǎn)義
Function EncodeString(strWords)
Dim i As Long
Dim strEncodeWords
For i = 1 To Len(strWords)
strEncodeWords = strEncodeWords & CStr(Asc(Mid(strWords, i, 1))) & ","
Next
EncodeString = strEncodeWords
End Function
這樣經(jīng)過(guò)轉(zhuǎn)義后,在模糊搜索時(shí),將關(guān)鍵字進(jìn)行轉(zhuǎn)義一下
delete * from Feedback where Comments_new like '%&EncodeString("http")&%'
相關(guān)文章
asp下tag的實(shí)現(xiàn),簡(jiǎn)單介紹與部分代碼
asp下tag的實(shí)現(xiàn),簡(jiǎn)單介紹與部分代碼...2007-03-03
asp通過(guò)JMAIL實(shí)現(xiàn)通用發(fā)送函數(shù)
asp通過(guò)JMAIL實(shí)現(xiàn)通用發(fā)送函數(shù)...2007-08-08
asp中格式化HTML函數(shù)代碼 SDCMS加強(qiáng)版
主要用來(lái)去除html中的script,iframe等html標(biāo)記,需要的朋友可以參考下。2011-01-01
JavaScript在ASP頁(yè)面中實(shí)現(xiàn)掩碼文本框效果代碼
在網(wǎng)頁(yè)中輸日期、時(shí)間、IP地址等需要一定的格式限制,否則將會(huì)程序?qū)?huì)很難和程序溝通2012-08-08
flash和asp分頁(yè)的一點(diǎn)心得與flash腳本
flash和asp分頁(yè)的一點(diǎn)心得與flash腳本...2007-03-03

