“错误号:3704 错误描述:对象关闭时,不允许操作。sql=select top 10 contentid,a.sortid,a.groupid,a.exc.......”
inc/aspcms_mainclass.asp文件,大约900行,原来代码为:
代码如下:
if str=content or str=news or str=product or str=down or str=pic then
sperstrs =conn.exec(select speccategory+'_'+specfield from {prefix}specset order by specorder asc,specid, arr)
if isarray(sperstrs) then
for each spec in sperstrs
sperstr = sperstr&,&spec
next
end if
我们修改为:
代码如下:
if str=content or str=news or str=product or str=down or str=pic then
sperstrs =conn.exec(select speccategory+'_'+specfield from {prefix}specset order by specorder asc,specid, arr)
if isarray(sperstrs) then
sperstr=
for each spec in sperstrs
sperstr = sperstr&,&spec
next
end if
因为程序在同一个页面循环{aspcms:content}标签时,原来的代码在后面再调用该标签时会不断累加 sperstr值,造成该标签数量越多,后面的sql查询字段,而access数据库,单表最多255个字段,sql查询里面一次查询也最多不超过255个字段,当累加的字段数超过255个时,运行程序就会出错。此时,会引起inc/aspcms_mainclass.asp文件,大约152行的程序代码,内容是:
代码如下:
if not debugmode then
if err then
errid=err.number:errdes=err.description:err.clear:dbconn.close:set dbconn=nothing:isconnect=false
echoerr err_03,errid,errdes&sql=&sqlstr
end if
end if
如果有错误,程序代码会关闭数据。于是就出现了前文的错误 。
中国足彩网信息请查看IT技术专栏