|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你看出了作者的深度?深处半米!当初是冲那么多的大牛给他写序才买的,后来才发现无啥内容,作者也只是才用几年的新手,百花了几十两银子,再次感叹当今社会的虚伪与浮躁xml|数据|数据库概述:本文档先容了怎样借助XML言语完成在Web页面上的OWC对数据库中的数据举行展现的办法。因为XML数据能够超过防火墙,因而该体例能够完成在Internet上对数据举行展示。
在基于WEB的数据库剖析使用中,经常借助OWC控件分离HTML完成对数据的表格和图表两种体例的展示。一样平常使用常常接纳OWC间接毗连数据库的体例,这会使数据库毗连口令表露在客户端,而使数据库的平安性下降。本文先容的接纳XML作为OWC和数据库之间数据互换介质的体例,可以制止这类对数据库酿成的不平安伤害。同时,这也能带来其他一些优点,比方:使扫瞄器与WEB服务器及数据库间的交互次数削减,从而加速排序等操纵的呼应速率,并削减了服务器的负荷。
1、猎取XML数据
将数据库中的数据转化为XML格局的办法良多,本文档不外多对此举行先容。从功能、通用性角度思索,这里我们接纳了ADO间接序列化(耐久化Persist)数据的体例,代码以下:
<!--GetData.asp-->
<%
dimstrConn
strConn="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=test;DataSource=jlwz"
----------读取数据----------------
dimconn,rs
setconn=server.CreateObject("adodb.connection")
setrs=server.CreateObject("adodb.recordset")
conn.OpenstrConn
rs.Open"SelectStat_Date,Call_Num,Call_FeeFromCallStat",conn
将ADO转化为xmldom
ConstadPersistXML=1
dimobjXMLDom
setobjXMLDom=server.CreateObject("MSXML2.DOMDocument.3.0")
rs.SaveobjXMLDom,adPersistXML
setrs=nothing
%>
这类体例失掉的的XML其实不够简便,个中包括了Schema信息。
只管关于OWC中的DataSourceControl控件来讲,能够间接接纳这类情势的XML数据,但思索到数据从服务器向客户端传输的效力,我们利用XSLT对这类XML数据举行了转化。为此,编写了以下的Clean.xsl文件:
<?xmlversion="1.0"?>
<xsl:stylesheetversion="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:outputomit-xml-declaration="yes"/>
<xsl:templatematch="/">
<xsl:elementname="data">
<xsl:for-eachselect="/xml/rs:data/z:row">
<xsl:elementname="row">
<xsl:for-eachselect="@*">
<xsl:elementname="{name()}">
<xsl:value-ofselect="."/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
然后,在GetData.asp中经由过程以下代码对后面的XML数据举行转化:
用XSLT清算转化XML数据
DimstrCleanXML,objXSLT
setobjXSLT=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>
因此,我们的第一个“米”,就是二进制日志binlog必须是rowbased的。在rowbase下,二进制日志binlog同时记录了更新前后的整行记录。 |
|