国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > XML > 正文

使用XML技術實現OWC對數據庫的展示(一)

2024-07-21 02:08:09
字體:
來源:轉載
供稿:網友
概述:   本文檔介紹了如何借助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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芮城县| 嘉义县| 拉萨市| 昆明市| 花莲县| 宁明县| 中西区| 华蓥市| 清徐县| 佳木斯市| 静宁县| 武安市| 冀州市| 敦煌市| 青田县| 红桥区| 台北市| 宾川县| 江都市| 梓潼县| 嘉荫县| 同德县| 巴彦淖尔市| 平邑县| 广宗县| 平阳县| 奉新县| 南木林县| 安阳市| 天峨县| 治县。| 耿马| 邮箱| 扬州市| 靖州| 宁远县| 石阡县| 永仁县| 桃园市| 香格里拉县| 泸定县|