仓酷云

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

[学习教程] MYSQL网站制作之SQL Server静态页面导出手艺4

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:35:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
DBaaS向客户提供了许多与其他云服务相类似的优势:一个灵活的、可扩展的MySQL学习教程、按需服务的平台,它以自助服务和便捷管理为导向,可以对环境中的资源进行调配。server|静态|页面本段文章节选自铁道出书社新出的《用BackOffice创建Intranet/Extranet使用》一书(现已在海淀图书城有售)。本书细致地报告了怎样利用微软BackOffice系列产物来组建Intranet/Extranet使用。经由过程它您将把握NT的安装和设置、利用IIS创建Web站点、经由过程ILS创建收集集会体系、用Exchange创建企业的邮件和合作体系、用SQLServer创建Web数据库使用、用ProxyServer创建同Internet平安牢靠的毗连、用MediaServer创建收集电视台/播送站、用Chartserver创建功效壮大的谈天室、用SiteServer创建本性化的邮件列表和剖析网站的会见情形、用CommerceServer创建B2B或B2C的电子商务网站。别的本书还对收集的平安性举行了会商,从而引导您创建一个更加强健和平安的收集使用。浏览本书以后,您将发明完成丰厚多彩的收集使用本来如许复杂……
相对原创,接待转载。但请务必保存以上笔墨。


usetest
go
declare
@riqivarchar(20),
@filepathvarchar(255),
@listfilevarchar(255),
@commandvarchar(255)
set@riqi=left(convert(varchar(40),getdate(),20),10)
set@filepath=d:webout+@riqi+
set@command=md+@filepath
executemaster.dbo.Xp_cmdshell@command
set@command=md+@filepath+images
executemaster.dbo.Xp_cmdshell@command
set@command=copyd:        estfiles*.*d:webout+@riqi+
executemaster.dbo.Xp_cmdshell@command
set@command=copyd:        estfilesimages*.*d:webout+@riqi+images
executemaster.dbo.Xp_cmdshell@command
set@command=copyd:        est+@riqi+*.*d:webout+@riqi+
executemaster.dbo.Xp_cmdshell@command
set@listfile=@filepath+list.htm
executesp_makewebtask
@outputfile=@listfile,
@query=selectdistinctbanmian
fromgaojian
wherekanwu=出书报anddatepart(yy,riqi)=datepart(yy,getdate())anddatepart(dy,riqi)=datepart(dy,getdate()),
@templatefile=d:        estlist.tml,
@codepage=936
在此段代码中先界说了一些变量,用来挪用存贮历程时利用。个中@riqi变量用于寄存当日的日期(其格局为yyy-mm-dd);@filepath变量用于寄存发生静态页面的路径;@listfile变量用于寄存版面列表页面文件的路径和文件名;@command变量用于寄存要实行的体系命令。
随后我们对各个变量举行赋值。并挪用xp_cmdshell存贮历程来完成创建响应目次、拷贝文件等事情。xp_cmdshell存贮历程是一个用来实行NT体系命令的扩大存贮历程。其语法布局以下:
xp_cmdshell{command_string}[,no_output]
个中command_string参数为要实行的体系命令。而选项no_output则用来指明不输入体系命令的实行了局。
在此段代码的最初,实行未指明whentype参数的sp_makewebtask存贮历程,导出当日的版面列表页面文件。利用的模板文件为list.tml。list.tml文件的代码以下:
<html>
<head><title>出书报</title></head>
<bodyBACKGROUND="images/WB00703_.gif">
<script>
vart=0;
</script>
<tableBORDER="0"ALIGN="CENTER">
<%begindetail%>
<tr>
<td><imgSRC="http://edu.cnzz.cn/NewsInfo/images/Yellowb2.gif"WIDTH="14"HEIGHT="14">
<script>
vart=t+1;
document.write(<aHREF=");
document.write(t);
document.write(.htm"TARGET="show"><b><i><fontSIZE="+1">)
</script>
<%insert_data_here%></font></i></b></a></td></tr>
<%enddetail%>
</table></body></html>
能够看到,静态页面导出利用的模板文件同IDC手艺中利用的htx文件非常类似。个中也包括<%begindetail%>和<%enddetail%>字段。所分歧的是,模板文件中不利用<%字段名%>来标识字段。只是复杂的利用<%insert_data_here%>来指明在那边拔出了局会合的数据。假如了局集纪录中包括多个字段的话,<%insert_data_here%>将依照其在纪录中的按次(即依照SELECT语句中的字段按次)来按次地拔出数据。也就是说,每一个了局纪录中的每一个字段只能在页面中被拔出一次。假如要想在页面中屡次利用某个字段,能够先将它赋给一个变量。然后再重复地利用此变量便可。
在此模板文件中有一段Java程序,其用处是为每一个版面依照其按次发生超链接。其链接分离为1.htm~n.htm,n值为当日版面的数量。
至此我们已乐成地创建了寄存页面文件的目次、完成了响应文件的拷贝事情、导出了当日版面的列表文件。上面将为每一个版面来发生文章列表页面文件。
declare
@listsint,
@banmianvarchar(64),
@filenamevarchar(64),
@searchvarchar(2000)
set@lists=0
declarepointcursorfor
selectdistinctbanmian
fromgaojian
wherekanwu=出书报anddatepart(yy,riqi)=datepart(yy,getdate())anddatepart(dy,riqi)=datepart(dy,getdate())
forreadonly

openpoint
fetchpointinto
@banmian
while(@@fetch_status=0)
begin
set@lists=@lists+1
set@filename=@filepath+convert(varchar(64),@lists)+.htm
set@search=SELECTid,timu,laiyuan
FROMgaojian
WHEREdatepart(yy,riqi)=datepart(yy,convert(datetime,+@riqi+))
anddatepart(dy,riqi)=datepart(dy,convert(datetime,+@riqi+))+
andbanmian=+@banmian+andkanwu=出书报orderbytimu
executesp_makewebtask
@outputfile=@filename,
@query=@search,
@templatefile=d:        estlist2.tml,
@codepage=936
fetchpointinto
@banmian
end
closepoint
deallocatepoint
在此段代码中我们利用了游标。在此之前我们所利用的SQL语句都是用于汇合操纵的。也就是说,语句只是用来发生了局汇合,或对了局汇合举行分组。而要想分离对每一个前往的了局纪录举行分歧的处置,就只要经由过程游标来完成了。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。
沙发
发表于 2015-1-17 16:35:26 | 只看该作者
多加的系统视图和实时系统信息这些工具对DBA挑优非常有帮助,但是感觉粒度还是不太细。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-20 20:35:10 | 只看该作者
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
莫相离 该用户已被删除
地板
发表于 2015-1-29 21:49:37 | 只看该作者
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
小魔女 该用户已被删除
5#
发表于 2015-2-6 05:24:57 | 只看该作者
光写几个SQL实在叫无知。
柔情似水 该用户已被删除
6#
发表于 2015-2-15 14:05:10 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
活着的死人 该用户已被删除
7#
发表于 2015-3-4 11:35:37 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
海妖 该用户已被删除
8#
发表于 2015-3-11 19:18:37 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
逍遥一派 该用户已被删除
9#
 楼主| 发表于 2015-3-27 17:11:09 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 07:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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