| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4054 人关注过本帖
标题:请教一个问题:Microsoft VBScript runtime 错误 '800a000d' Type mismatc ...
只看楼主 加入收藏
benxs
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-11-2
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
请教一个问题:Microsoft VBScript runtime 错误 '800a000d' Type mismatch: 'cint'报错。
今天给aspcms换模版的时候碰见了一个报错,无奈找不到解决办法,又来到了达人这里寻求解答,拜托高人了!!!

报错内容是这个:
程序代码:
Microsoft VBScript runtime 错误 '800a000d'

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


拜托各位了。
搜索更多相关主题的帖子: 源文件 办法 color Microsoft 
2012-09-10 11:39
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:10 
你检查一下你的CInt里的函数会返回什么值
2012-09-10 12:54
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:10 
在cint()函数这儿出错,是很常见的。
因为cint()函数的容错功能并不强,如果你给的参数不是可以直接转换成数值的字符串,它就会出错。
所以,在使用这个函数前,最后用其它方法判断输给它的参数是否符合要求。


做自己喜欢的事!
2012-09-15 12:21
快速回复:请教一个问题:Microsoft VBScript runtime 错误 '800a000d' Type mi ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014029 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved