仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1390|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网站制作之利用XML手艺完成OWC对数据库的展现(一...

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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同时记录了更新前后的整行记录。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-18 19:24:41 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
乐观 该用户已被删除
板凳
发表于 2015-1-23 05:28:21 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
admin 该用户已被删除
地板
发表于 2015-1-31 14:26:44 | 只看该作者
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
蒙在股里 该用户已被删除
5#
发表于 2015-2-6 19:45:14 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
莫相离 该用户已被删除
6#
发表于 2015-2-18 11:22:41 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
老尸 该用户已被删除
7#
发表于 2015-3-6 04:53:48 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
再现理想 该用户已被删除
8#
发表于 2015-3-12 21:12:02 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
活着的死人 该用户已被删除
9#
 楼主| 发表于 2015-3-20 03:18:50 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-3-13 03:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表