关于Tsys2.0的动态碎片自定义Sql无效。。

这是转自落伍http://www.im286.com/viewthread.php?tid=1426652&extra=page%3D3%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D41

由小小鸟 发布的一个帖子!
关于Tsys2.0的动态碎片自定义Sql无效。。


修改该文件
SliceParser.class.asp


找到这里

            '替换Sql
            Sql = Replace(Sql, "$TOP$", pTop)
            Sql = Replace(Sql, "$WHERE$", sqlWhere)
    End if'加入这个

拉到这里


strHtml =  NodeCommand.selectSingleNode("./body/head").text & strHtml & NodeCommand.selectSingleNode("./body/foot").text
End if'删了这个
        loop_view_resource = strHtml

OK了

我检查了一下,确实存在这个问题.可能是当时的开发者米克的笔误吧!
在这里我要向大家推荐一个好用的工具!"Altova XMLSpy© 2006 "
Altova XMLSpy© 2006 是业界标准XML的开发环境,可用于涉及XML、XML Schema、XSLT、XQuery、SOAP、WSDL和Web服务技术的企业级应用的设计、编辑和调试。它是提高J2EE、.NET和数据库开发人员开发效率的终极利器。

其实,在这里我们就是利用他的一个特性,Altova XMLSpy© 2006不论代码进行了多少层的嵌套,都会用竖虚线的提示线进行分割,让你一目了然!

上面是他的操作界面!

现在我们再回到Tsys的修改上面!按照小小鸟的修改方法,改正了Tsys自定义SQL无效的问题.但这样的话,数据的检索就全靠碎片里面的SQL语句了,下面那些SQL控制标签将无效了!为了继续使用这样的标签,我建议将"End if"再往上提,代码示意如下:

源代码:
Set XMLNode = NodeCommand.selectSingleNode("./parameter")
        If XMLNode.getAttribute("type") = "custome" Then
            Set XMLNode = NodeCommand.selectSingleNode("./parameter/sql")
            Sql = XMLNode.text
        Else
            Sql = "SELECT $TOP$ * FROM view_resource WHERE $WHERE$"
            sqlWhere = "1<>2"

改动后

Set XMLNode = NodeCommand.selectSingleNode("./parameter")
        If XMLNode.getAttribute("type") = "custome" Then
            Set XMLNode = NodeCommand.selectSingleNode("./parameter/sql")
            Sql = XMLNode.text
        Else
            Sql = "SELECT $TOP$ * FROM view_resource WHERE $WHERE$"
        End if
            sqlWhere = "1<>2"


记得拉到这里


strHtml =  NodeCommand.selectSingleNode("./body/head").text & strHtml & NodeCommand.selectSingleNode("./body/foot").text
End if'删了这个
        loop_view_resource = strHtml

这样的话好处是继续使用碎片的标签,但同时有个问题,如果我们就是简单的直接自定义SQL语句,下面这些标签还是会从头到尾解析一遍!如何取舍,请大家定夺!

今天考虑了一天会员系统的问题,还是没有想好,怎么办呢?

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值