大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 数据库 -> 其他相关 -> 使用XML技术实现OWC对数据库的展示

使用XML技术实现OWC对数据库的展示

时间: 2021-08-13 作者:daque

概括:   正文档引见了怎样借助xml谈话实行在web页面上的owc对数据库中的数据举行展现的本领。因为xml数据不妨超过风火墙,所以该办法不妨实行在internet上对数据举行展示。  在鉴于web的数据库领会运用中,往往借助owc控件贯串html实行对数据的表格和图表两种办法的展示。普遍运用常常沿用owc径直贯穿数据库的办法,这会使数据库贯穿口令表露在存户端,而使数据库的安定性贬低。正文引见的沿用xml动作owc和数据库之间数据调换介质的办法,不妨制止这种对数据库形成的不安定伤害。同声,这也能带来其余少许长处,比方:使欣赏器与web效劳器及数据库间的交互度数缩小,进而加速排序等操纵的相应速率,并缩小了效劳器的负载。 一、获得xml数据 将数据库中的数据变化为xml方法的本领很多,正文档然而多对此举行引见。从本能、通用性观点商量,这边咱们沿用了ado径直序列化(长久化persist)数据的办法,代码如次: <!--getdata.asp  --> <% dim strconn strconn="provider=sqloledb.1;persist security info=false;user id=sa;initial catalog=test;data source=jlwz" ’----------读取数据---------------- dim conn,rs set conn=server.createobject("adodb.connection") set rs=server.createobject("adodb.recordset") conn.open strconn rs.open "select stat_date,call_num,call_fee from callstat",conn   ’将ado变化为xml dom const adpersistxml=1   dim objxmldom set objxmldom=server.createobject("msxml2.domdocument.3.0") rs.save objxmldom,adpersistxml  set rs=nothing %>   这种办法获得的的xml并不够简略,个中包括了schema消息。  纵然对于owc中的datasourcecontrol控件来说,不妨径直沿用这种情势的xml数据,但商量到数据从效劳器向存户端传输的功效,咱们运用xslt对这种xml数据举行了变化。为此,编写了如次的clean.xsl文献: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"     xmlns:s="uuid:bdc6e3f0-6da3-11d1-a2a3-00aa00c14882"     xmlns:dt="uuid:c2f41010-65b3-11d1-a29f-00aa00c14882"     xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#rowsetschema">     <xsl:output omit-xml-declaration="yes"/>     <xsl:template match="/">         <xsl:element name="data">             <xsl:for-each select="/xml/rs:data/z:row">                 <xsl:element name="row">                     <xsl:for-each select="@*">                         <xsl:element name="{name()}">                         <xsl:value-of select="."/>                         </xsl:element>                     </xsl:for-each>                 </xsl:element>             </xsl:for-each>         </xsl:element>     </xsl:template> </xsl:stylesheet>   而后,在getdata.asp中经过如次代码对前方的xml数据举行变化: ’用xslt整理变化xml数据 dim strcleanxml,objxslt   set objxslt=server.createobject("msxml2.domdocument") objxslt.load(server.mappath("clean.xsl")) strcleanxml=objxmldom.transformnode(objxslt)   此时,就获得了咱们想要的比拟简略的xml构造的字符串,不妨大略地将其response.write到存户端: <data>   <row>      <stat_date>2003-06-01</stat_date>       <call_num>100</call_num>       <call_fee>200</call_fee>    </row>   <row>      <stat_date>2003-07-01</stat_date>       <call_num>200</call_num>       <call_fee>400</call_fee>    </row>   。。。 </data>  [page_break]二、运用owc控件和html表格展示xml数据 2.1 基础功效的实行 这边兴建了其余一个html页面。为了运用方才获得的xml数据,在html页面中,沿用xml 数据岛: <xml id="dbxml" src="getdata.asp" onreadystatechange="init()"></xml>   而后,不妨运用html表格的绑定功效展示数据: <table  datasrc="#dbxml" style="width:100%;border-collapse: collapse;" border=1 cellpadding=0 cellspacing=0>      <tr>       <td><div  type=text  datafld=stat_date></div></td>       <td><div  type=text  datafld=call_num></div></td>     <td><div type=text datafld=call_fee></div></td>      </tr>   </table>   在方才的xml数据岛的onreadystatechange事变对应的init()因变量中,咱们经过如次代码实行owc的图表: <object id=cs1 style="width:400px;top:0px;height:280px"  classid=clsid:0002e556-0000-0000-c000-000000000046 viewastext> </object> <script lanaguage=vbscript> sub init()     if(dbxml.readystate="complete") then          dim strxml         set strxml=dbxml.xmldocument         createchart strxml,cs1     end if end sub sub createchart(byref oxml,cspace) ’按照传入的xml天生图表         dim xdoc,xroot,ccnt         dim ndx,cnode,txtdata,txtcat,txtdata2                      set xdoc=dbxml.xmldocument         set xroot = xdoc.documentelement         ccnt = xroot.childnodes.length         txtdata = "":txtcat = ""           ’ 从xml数据中获得相映的子符串         for ndx = 0 to ccnt - 1             set cnode = xroot.childnodes(ndx)             txtcat = txtcat & cnode.childnodes(0).text             txtdata = txtdata & cnode.childnodes(1).text             txtdata2=txtdata2 & cnode.childnodes(2).text             if ndx <> (ccnt -1) then                 txtcat = txtcat & ","                 txtdata = txtdata & ","                 txtdata2 = txtdata2 & ","             end if         next                  ’---底下发端画图----------         ’增添数据序列1        set ch =cspace.charts.add()         set s = ch.seriescollection.add()         s.name="通话用度(元)"         s.caption=s.name         s.setdata c.chdimcategories,c.chdataliteral, txtcat         s.setdata c.chdimvalues, c.chdataliteral, txtdata         s.type=8 ’弧线图                 ’设定功夫刻度轴方法         set axcategory = cspace.charts(0).axes(c.chaxispositioncategory)         with axcategory             .groupingunittype = c.chaxisunitmonth ’月             .groupingunit = 1 ’单元             .numberformat="short date" ’短日子         end with                 ’增添数据序列2         set s2 = ch.seriescollection.add()          s2.name="通话度数(次)"         s2.caption=s2.name         s2.setdata c.chdimvalues, c.chdataliteral, txtdata2           ’题目         ch.hastitle = true         ch.title.caption="通话情景月报"         ch.title.font.color="black"         ch.title.font.size=10         ch.title.font.bold=true                 ’chartspace属性        cspace.border=c.chlinedash         cspace.hasselectionmarks=true        cspace.allowfiltering=true ’承诺吩咐与分批        cspace.allowpropertytoolbox=true                 ’树立图例及场所        ch.legend.position=c.chlegendpositionright         ch.haslegend=false           ’分红各别的组,表露双坐标轴        s2.ungroup true         set axincomeaxis = ch.axes.add(s2.scalings(c.chdimvalues))        axincomeaxis.position = c.chaxispositionright        axincomeaxis.hasmajorgridlines=false         s2.type=0 ’柱形图     end sub   如许,咱们就获得了数据表格和图表,其最后功效如次: 如许,借助于xml本领和ie绑定本领,咱们就实行了owc对数据库中数据的展现,而在存户端并没有表露任何数据贯穿消息。   2.2 其余功效 owc不妨很简单的实行将所见到的图表生存为当地图片,大洪量便了运用者。同声,owc供给了多种图表典型,如:饼图、弧线图、柱形图等,符合在各别的情景下展示数据。   即使借助com组件、以及对xsl的精巧应用,咱们这个页面能获得更好的本能和更强的功效。比方:对html表格的排序(拜见附属类小部件中的html源代码)、数据分页等。其余,咱们还不妨实行通用的数据考察、探求功效。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.