王新阳

wangxinyang

ASP错误 80040e14 内存溢出

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

主要原因:

1、字段或表名使用了保留字,如:select、insert、date等,不要使用保留字,或在sql中相应字段加方括号,如 [select]

2、要查询的字段包含特殊字符,常见的有bom标记等不可见字符,可以在数据保存时使用正则过滤掉,我的做法:regReplace(str, "[\ufeff\u2028\u2029\xa0]+", "")

3、包含日文字符,并不是所有的日文字符都有问题,而是只有26个有问题,这个是access的bug,只能在保存数据时进行转换成自定义的字符,查询和显示时再转换回去。如果不需要日文查询,可以在保存时,把相应日文转义。如你转义为你
我的做法:

Function jpEncode(ByVal s)
	Dim jpArr, i
	'26个日文字符的unicode代码
	jpArr=array(12468, 12460, 12462, 12464, 12466, 12470, 12472, 12474,_
			12485, 12487, 12489, 12509, 12505, 12503, 12499, 12497,_
			12532, 12508, 12506, 12502, 12500, 12496, 12482, 12480,_
			12478, 12476)
	For i=0 To Ubound(jpArr)
		s=Replace(s, ChrW(jpArr(i)), "&#"&jpArr(i)&";")
	Next
	jpEncode=s
End Function
2015-12-15
2024-05-07 星期二 农历三月二十九