仓酷云
标题:
MSSQL网站制作之利用XML手艺完成OWC对数据库的展现(一...
[打印本页]
作者:
活着的死人
时间:
2015-1-16 22:30
标题:
MSSQL网站制作之利用XML手艺完成OWC对数据库的展现(一...
你看出了作者的深度?深处半米!当初是冲那么多的大牛给他写序才买的,后来才发现无啥内容,作者也只是才用几年的新手,百花了几十两银子,再次感叹当今社会的虚伪与浮躁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同时记录了更新前后的整行记录。
作者:
飘飘悠悠
时间:
2015-1-18 19:24
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
作者:
乐观
时间:
2015-1-23 05:28
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
作者:
admin
时间:
2015-1-31 14:26
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
作者:
蒙在股里
时间:
2015-2-6 19:45
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
作者:
莫相离
时间:
2015-2-18 11:22
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
作者:
老尸
时间:
2015-3-6 04:53
大侠们有推荐的书籍和学习方法写下吧。
作者:
再现理想
时间:
2015-3-12 21:12
是要和操作系统进行Socket通讯的场景。否则建议慎重!
作者:
活着的死人
时间:
2015-3-20 03:18
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2