网站地图|客服中心|设为首页|加入收藏

您的位置 → 首页建站百科

相关文章

一次有趣的ASP程序调试过程

作者:客服中心 文章来源:天润智力 点击数:136580 更新时间:2010-7-20

 引用内容
Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配

/sfbbs/inc/Dv_ClsMain.asp,行710

碰到这样的错误提示我们应该高兴,因为它明确的指出了错误的地方,一般情况下只要检查下所在行的代码即可,但这次错误比较特别,710行处在一个函数体中,函数肯定是没有问题的,那么问题应该出在调用函数的地方,可是页面中有好几处调用了这个函数(难点一:确定出错位置);还有,这个函数主要的是一个循环体,我们还得判断出是在哪次循环时出的错(难点二)。OK,我们先来看下这个函数:


 程序代码
Public Function RecordsetToxml(Recordset,row,xmlroot)
    Dim i,node,rs,j,DataArray
    If xmlroot="" Then xmlroot="xml"
    If row="" Then row="row"
    Set RecordsetToxml=Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion)
    RecordsetToxml.appendChild(RecordsetToxml.createElement(xmlroot))
    If Not Recordset.EOF Then
        DataArray=Recordset.GetRows(-1)
        For i=0 To UBound(DataArray,2)
            Set Node=RecordsetToxml.createNode(1,row,"")
            j=0
            For Each rs in Recordset.Fields
                     node.attributes.setNamedItem(RecordsetToxml.createNode(2,LCase(rs.name),"")).text= DataArray(j,i)& "" '710行
                     j=j+1
            Next
            RecordsetToxml.documentElement.appendChild(Node)
        Next
    End If
    DataArray=Null
End Function

这个函数的功能还是比较简单的,主要就是建立一个FreeThreadedDOMDocument对象,其根节点是xmlroot,下边只有一个子节点row,然后将Recordset对象中的各字段及其值以属性的方式保存在row节点中。

好了,现在我们先来解决第一个难点:找出错误位置!修改RecordsetToxml函数如下:


 程序代码
Public Function RecordsetToxml(Recordset,row,xmlroot)
    Dim i,node,rs,j,DataArray
    If xmlroot="" Then xmlroot="xml"
    If row="" Then row="row"
    Set RecordsetToxml=Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion)
    RecordsetToxml.appendChild(RecordsetToxml.createElement(xmlroot))
    If Not Recordset.EOF Then
        DataArray=Recordset.GetRows(-1)
        For i=0 To UBound(DataArray,2)
            Set Node=RecordsetToxml.createNode(1,row,"")
            j=0
            For Each rs in Recordset.Fields
                     Response.Write(row & "  " & xmlroot & " " & rs.name & "<br/>")
                     node.attributes.setNamedItem(RecordsetToxml.createNode(2,LCase(rs.name),"")).text= DataArray(j,i)& "" '710
                     j=j+1
            Next
            RecordsetToxml.documentElement.appendChild(Node)
        Next
    End If
    DataArray=Null
End Function

注意Response.write语句放置的位置也很重要!浏览,返回结果为:
引用内容
style xml ID
style xml StyleName
style xml Main_Style
style xml Style_Pic
style xml page_index
style xml page_dispbbs
style xml page_showerr
style xml page_login
style xml page_online
style xml page_usermanager
style xml page_fmanage
style xml page_boardstat
style xml page_paper_even_toplist
style xml page_query
style xml page_show
style xml page_dispuser
style xml page_help_permission
style xml page_postjob
style xml page_post
style xml page_boardhelp
style xml upsize_ts

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配

/sfbbs/inc/Dv_ClsMain.asp,行711

可以初步判断是类似RecordsetToxml(Recordset,"style","xml")的位置出错,OK,我们搜索"style","xml",没有结果:(,再搜索"style",搜索结果中只有一处参数中有带"style"的,就是它了,发现也是位于一个函数中:


 程序代码
Public Sub Loadstyle()
    Dim Rs
    Set Rs=Dvbbs.Execute("Select *  From Dv_style")
    Set Application(CacheName &"_style")=RecordsetToxml(rs,"style","") '就是这句了
    Set Rs=Nothing
    LoadStyleMenu()
End Sub

这个函数的作用也挺简单的,就是从Dv_style表中将论坛样式读取出来以XML格式保存到Application对象中,OK,结合上边错误信息,我们可以猜到是在读取upsize_ts字段时出错了!才想起来这个字段动网本身是没有的,是在Access2000转Access2003时新增的,将其删除,问题解决!

===业务办理及咨询=== 客服热线:010-57281389 13020085953 在线客服:北京网站建设中心欢迎您购买网站|即买即开即用 功能强大 服务完备 欢迎咨询北京网站建设中心欢迎您进行网站建设业务咨询|客服热线:010-57281389 13020085953 QQ:523313456 MSN:digiark@hotmail.com北京网站建设中心欢迎您进行网站建设业务咨询|客服热线:010-57281389 13020085953 QQ:523313456 MSN:digiark@hotmail.com 客服邮箱:cnet99@cnet99.com

新品上架网站功能说明典型客户案例服务优势常见问题视频展示成功故事用户使用手册标准网站服务

更多

本站搜索关键词:ASP程序 | 北京网站建设公司 | 北京网站制作公司 | 北京网站设计公司 | 北京网站维护公司 | 北京网站优化公司 | 北京企业建站公司 | 北京做网站公司

销售热线

7x24小时全国售前咨询热线:010-57281389

7x24小时全国售后服务热线:13020085953 15313016798

手机 | 微信同号:18600846206   QQ:523313456

立即咨询 网站建设业务咨询|客服热线:010-57281389 13020085953

点这里给我发消息 电子邮箱:cnet99@cnet99.com

营业地址(东部):北京市朝阳区伊莎文心广场A座3层B-22

位置分享

营业地址(西部):北京市丰台区汽车博物馆东路1号诺德中心9-605

网站建设与服务超级群:北京网站建设中心:167837061 北京域名注册中心:65194647

北京网站主机中心:56350700 北京企业云邮箱中心:65197392 北京网站维护中心:65198105

天润智力-专注于互联网平台建设与服务领域 中国互联网平台建设服务提供商

万网阿里云金牌首席合作伙伴站点 全线代理万网阿里云产品及服务

中国万网正式通过ISO9001国际标准质量体系认证

Copyright©1999-2020 北京天润智力智能科技有限公司 网站许可证/ICP备案:京ICP备12009254号-3

标准网站,网站建设,域名注册,虚拟主机,独享主机,企业云邮箱,网站维护一条龙,北京网站建设中心