MYSQL网站制作之SQL Server静态页面导出手艺4
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倍。 多加的系统视图和实时系统信息这些工具对DBA挑优非常有帮助,但是感觉粒度还是不太细。 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西 光写几个SQL实在叫无知。 Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。 多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
页:
[1]