![]() |
#2
yms1232012-09-10 12:54
|
报错内容是这个:

Microsoft VBScript runtime 错误 '800a000d'
Type mismatch: 'cint'
/inc/AspCms_MainClass.asp,行 620
Type mismatch: 'cint'
/inc/AspCms_MainClass.asp,行 620
源文件620行周围是这个:

'调用节点
Private Function parseSubNavListProc(vnum,maxlevel,tHead,tFoot,tItem,pid)
dim sTranslate,i,labelRuleField
dim mf,mfs
dim sNameAndAttr,sName,sAttr
dim m
dim namelen
dim sql,marr
sql ="select SortName,SortType,SortURL,sortID,IcoImage,(select count (*) from {prefix}Sort as a where a.ParentID=b.sortID) as subcount,SortFolder,SortFileName,GroupID,Exclusive,parentid,sortlevel from {prefix}Sort as b where LanguageID="&setting.languageID&" and SortStatus=1 and ParentID="&pid&" order by SortOrder asc"
marr=conn.Exec(sql,"arr")
if not isarray(marr) then exit function
for i=0 to ubound(marr,2)
If CInt(marr(9,i)) = CInt(pid) Then '父ID匹配
If CInt(marr(10,i)) <= CInt(maxlevel) Then '最大深度匹配
If i <= vnum then ' 单个计数5个
parseSubNavListProc=parseSubNavListProc&SubNavListAttTranslate(tHead,i,marr)
parseSubNavListProc=parseSubNavListProc&SubNavListAttTranslate(tItem,i,marr)
sTranslate=parseSubNavListProc(vnum,maxlevel,tHead,tFoot,tItem,marr(3,i))
parseSubNavListProc = parseSubNavListProc & sTranslate
parseSubNavListProc=parseSubNavListProc&SubNavListAttTranslate(tFoot,i,marr)
end if
end if
end if
next
End Function
'节点属性翻译
Function SubNavListAttTranslate(tItem,i,marr)
Dim labelRuleField
Dim mfs,mf,m
Dim sTranslate
Dim sName,sAttr,sNameAndAttr
Dim namelen
labelRuleField="\[subnavlist:([\s\S]+?)\]"
regExpObj.Pattern=labelRuleField
'echo titem&"<hr>"
set mfs=regExpObj.Execute(tItem)
sTranslate=tItem
for each mf in mfs
sNameAndAttr=regExpReplace(mf.SubMatches(0),"[\s]+",chr(32))
'echo sNameAndAttr & "<br>"
sNameAndAttr=trimOuter(sNameAndAttr)
m=instr(sNameAndAttr,chr(32))
if m > 0 then
sName=left(sNameAndAttr,m - 1)
sAttr = right(sNameAndAttr,len(sNameAndAttr) - m)
else
sName=sNameAndAttr
sAttr = ""
end if
select case sName
case "name"
namelen=parseArr(sAttr)("len")
if isNul(namelen) then
sTranslate=replaceStr(sTranslate,mf.value,marr(0,i))
else
namelen=clng(namelen)
sTranslate=replaceStr(sTranslate,mf.value,left(marr(0,i),namelen)&"..")
end if
case "link"
sTranslate=replaceStr(sTranslate,mf.value,getSortLink(marr(1,i),marr(3,i),marr(2,i),marr(5,i),marr(6,i),marr(7,i),marr(8,i)))
case "sortid"
sTranslate=replaceStr(sTranslate,mf.value,marr(3,i))
case "subcount"
sTranslate=replaceStr(sTranslate,mf.value,marr(4,i))
case "desc"
m_des=decodeHtml(marr(3,i)):deslen=parseArr(sAttr)("len")
if isNul(deslen) then deslen=100
if len(m_des) > clng(deslen) then m_des=left(m_des,clng(deslen)-1)&".."
sTranslate=replaceStr(sTranslate,mf.value,m_des)
case "i"
sTranslate=replaceStr(sTranslate,mf.value,i+1)
case "cursortid"
If runMode = 0 Then
dim m_SortAndID
m_SortAndID=split(replaceStr(request.QueryString,FileExt,""),"_")
if IsArray(m_SortAndID) then
sTranslate=replaceStr(sTranslate,mf.value,m_SortAndID(0))
end if
End If
case "level"
sTranslate=replaceStr(sTranslate,mf.value,marr(10,i))
case "pid"
sTranslate=replaceStr(sTranslate,mf.value,marr(9,i))
end select
next
set mfs=nothing
SubNavListAttTranslate = sTranslate
End Function
Private Function parseSubNavListProc(vnum,maxlevel,tHead,tFoot,tItem,pid)
dim sTranslate,i,labelRuleField
dim mf,mfs
dim sNameAndAttr,sName,sAttr
dim m
dim namelen
dim sql,marr
sql ="select SortName,SortType,SortURL,sortID,IcoImage,(select count (*) from {prefix}Sort as a where a.ParentID=b.sortID) as subcount,SortFolder,SortFileName,GroupID,Exclusive,parentid,sortlevel from {prefix}Sort as b where LanguageID="&setting.languageID&" and SortStatus=1 and ParentID="&pid&" order by SortOrder asc"
marr=conn.Exec(sql,"arr")
if not isarray(marr) then exit function
for i=0 to ubound(marr,2)
If CInt(marr(9,i)) = CInt(pid) Then '父ID匹配
If CInt(marr(10,i)) <= CInt(maxlevel) Then '最大深度匹配
If i <= vnum then ' 单个计数5个
parseSubNavListProc=parseSubNavListProc&SubNavListAttTranslate(tHead,i,marr)
parseSubNavListProc=parseSubNavListProc&SubNavListAttTranslate(tItem,i,marr)
sTranslate=parseSubNavListProc(vnum,maxlevel,tHead,tFoot,tItem,marr(3,i))
parseSubNavListProc = parseSubNavListProc & sTranslate
parseSubNavListProc=parseSubNavListProc&SubNavListAttTranslate(tFoot,i,marr)
end if
end if
end if
next
End Function
'节点属性翻译
Function SubNavListAttTranslate(tItem,i,marr)
Dim labelRuleField
Dim mfs,mf,m
Dim sTranslate
Dim sName,sAttr,sNameAndAttr
Dim namelen
labelRuleField="\[subnavlist:([\s\S]+?)\]"
regExpObj.Pattern=labelRuleField
'echo titem&"<hr>"
set mfs=regExpObj.Execute(tItem)
sTranslate=tItem
for each mf in mfs
sNameAndAttr=regExpReplace(mf.SubMatches(0),"[\s]+",chr(32))
'echo sNameAndAttr & "<br>"
sNameAndAttr=trimOuter(sNameAndAttr)
m=instr(sNameAndAttr,chr(32))
if m > 0 then
sName=left(sNameAndAttr,m - 1)
sAttr = right(sNameAndAttr,len(sNameAndAttr) - m)
else
sName=sNameAndAttr
sAttr = ""
end if
select case sName
case "name"
namelen=parseArr(sAttr)("len")
if isNul(namelen) then
sTranslate=replaceStr(sTranslate,mf.value,marr(0,i))
else
namelen=clng(namelen)
sTranslate=replaceStr(sTranslate,mf.value,left(marr(0,i),namelen)&"..")
end if
case "link"
sTranslate=replaceStr(sTranslate,mf.value,getSortLink(marr(1,i),marr(3,i),marr(2,i),marr(5,i),marr(6,i),marr(7,i),marr(8,i)))
case "sortid"
sTranslate=replaceStr(sTranslate,mf.value,marr(3,i))
case "subcount"
sTranslate=replaceStr(sTranslate,mf.value,marr(4,i))
case "desc"
m_des=decodeHtml(marr(3,i)):deslen=parseArr(sAttr)("len")
if isNul(deslen) then deslen=100
if len(m_des) > clng(deslen) then m_des=left(m_des,clng(deslen)-1)&".."
sTranslate=replaceStr(sTranslate,mf.value,m_des)
case "i"
sTranslate=replaceStr(sTranslate,mf.value,i+1)
case "cursortid"
If runMode = 0 Then
dim m_SortAndID
m_SortAndID=split(replaceStr(request.QueryString,FileExt,""),"_")
if IsArray(m_SortAndID) then
sTranslate=replaceStr(sTranslate,mf.value,m_SortAndID(0))
end if
End If
case "level"
sTranslate=replaceStr(sTranslate,mf.value,marr(10,i))
case "pid"
sTranslate=replaceStr(sTranslate,mf.value,marr(9,i))
end select
next
set mfs=nothing
SubNavListAttTranslate = sTranslate
End Function
拜托各位了。