|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
静态页面导出实例分析: 下面讨论如何使用静态页面导出技术来实现我们在前面要求的各种功能。 首先,我们来看看要导出的页面文件的结构: 所有导出的页面都将被放在一个目录名为当日期的目录下。其中有两个非导出文件index.htm和show.htm文件。其作用同cbbinput目录中的default.htm和show.htm文件相类似。都是为了满意使页面能够正常显示的需要。之所以使用index.htm而不用default.htm为文件名,是因为大多数ISP提供的主页空间的目录省缺文件的名字都是index.htm。 当日的各个版面则导出为一个名为list.htm的文件。每个版面的文章题目列表则分别按顺序导出为1~n(n为当日的版面总数)个页面文件。其文件名也为1.htm~n.htm。当日所刊载的各个文章则以其id为文件名分别进行导出。在list.htm文件中,包含到各个版面页面文件的超链接。在各个版面的页面文件中,又包含到各个文章页面文件的超连接。 在出版报的主页上,还应该有一个用来显示日期的页面文件。每个日期的超链接都将与其页面文件所在的目录中的index.htm文件相对应。点击日期后,将弹出一个新的浏览器窗口。其中显示的是相应日期的报纸内容。 此外,还应当将此日各篇文章的配图文件也拷贝到此目录之下。 我们为此建立一个任务,它会在天天下午的六点执行,将当天报纸的内容导出为静态的HTML页面文件。此任务的代码如下(可以在本书配套光盘的SQLServer目录的子目录test下找到此段代码的文件,其文件名为webout.sql。它使用的模板文件也可以在此目录下找到): use test go declare @riqi varchar(20), @filepath varchar(255), @listfile varchar(255), @command varchar(255) set @riqi=left(convert(varchar(40),getdate(),20),10) set @filepath=\\\'d:webout\\\'+@riqi+\\\'\\\' set @command=\\\'md \\\'+@filepath execute master.dbo.Xp_cmdshell @command set @command=\\\'md \\\'+@filepath+\\\'images\\\' execute master.dbo.Xp_cmdshell @command set @command =\\\'copy d:testfiles*.* d:webout\\\'+@riqi+\\\'\\\' execute master.dbo.Xp_cmdshell @command set @command =\\\'copy d:testfilesimages*.* d:webout\\\'+@riqi+\\\'images\\\' execute master.dbo.Xp_cmdshell @command set @command =\\\'copy d:test\\\'+@riqi+\\\'*.* d:webout\\\'+@riqi+\\\'\\\' execute master.dbo.Xp_cmdshell @command set @listfile=@filepath+\\\'list.htm\\\' execute sp_makewebtask @outputfile=@listfile, @query=\\\'select distinct banmian from gaojian where kanwu=\\\'\\\'出版报\\\'\\\' and datepart(yy,riqi)=datepart(yy,getdate()) and datepart(dy,riqi)=datepart(dy,getdate())\\\', @templatefile=\\\'d:testlist.tml\\\', @codepage=936 declare @lists int, @banmian varchar(64), @filename varchar(64), @search varchar(2000) set @lists=0 declare point cursor for select distinct banmian from gaojian where kanwu=\\\'出版报\\\' and datepart(yy,riqi)=datepart(yy,getdate()) and datepart(dy,riqi)=datepart(dy,getdate()) for read only open point fetch point into @banmian while (@@fetch_status=0) begin set @lists=@lists+1 set @filename=@filepath+convert(varchar(64),@lists)+\\\'.htm\\\' set @search=\\\'SELECT id,timu,laiyuan FROM gaojian WHERE datepart(yy,riqi)=datepart(yy,convert(datetime,\\\'\\\'\\\'+@riqi+\\\'\\\'\\\')) and datepart(dy,riqi)=datepart(dy,convert(datetime,\\\'\\\'\\\'+@riqi+\\\'\\\'\\\'))\\\'+ \\\'and banmian =\\\'\\\'\\\'+@banmian+\\\'\\\'\\\'and kanwu=\\\'\\\'出版报\\\'\\\'order by timu\\\' execute sp_makewebtask @outputfile=@filename, @query=@search, @templatefile=\\\'d:testlist2.tml\\\', @codepage=936 fetch point into @banmian end close point deallocate point declare @gaojianid int declare point2 cursor for select gaojian.id from gaojian where kanwu=\\\'出版报\\\' and datepart(yy,riqi)=datepart(yy,getdate()) and datepart(dy,riqi)=datepart(dy,getdate()) for read only open point2 fetch point2 into @gaojianid while (@@fetch_status=0) begin set @filename=@filepath+convert(varchar(64),@gaojianid)+\\\'.htm\\\' set @search=\\\'SELECT timu,laiyuan,neirong,left(pics,10)+ STUFF(pics,1,21,\\\'\\\'\\\'\\\'),yuanwen FROM gaojian WHERE id=\\\'+convert(varchar(64),@gaojianid) execute sp_makewebtask @outputfile=@filename, @query=@search, @templatefile=\\\'d:testoutfile.tml\\\', @codepage=936 fetch point2 into @gaojianid end close point2 deallocate point2 declare @dy int, @date varchar(20), @yue varchar(2), @yue2 varchar(2), @ri int, @xingqi int, @year int, @outchar varchar(1600), @tt int create table ##daylist (out varchar(1600)) set @yue2=\\\'00\\\' set @tt=0 declare point3 cursor for SELECT distinct dy=datepart(dy,riqi),date=left(convert(varchar(40),riqi,20),10), yue=convert(varchar(2),datepart(mm,riqi)),ri=datepart(dd,riqi),xingqi=datepart(dw,riqi),year=datepart(yy,riqi) FROM gaojian where kanwu = \\\'出版报\\\' order by year,dy for read only open point3 fetch point3 into @dy,@date,@yue,@ri,@xingqi,@year while (@@fetch_status=0) begin if @yue<>@yue2 begin set @tt=0 if @yue2=0 insert into ##daylist values(\\\'<TABLE BORDER="BORDER" ALIGN="CENTER"><th><tr><h2>\\\'+convert(varchar(4),@year)+ \\\'年\\\'+@yue+\\\'月份</h2></tr></th><tr><td>星期日</td><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td></tr>\\\') else insert into ##daylist values(\\\'</tr></table><TABLE BORDER="BORDER" ALIGN="CENTER"><th><tr><h2>\\\'+ convert(varchar(4),@year)+\\\'年\\\'+@yue+\\\'月份</h2></tr></th><tr><td>星期日</td><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td></tr>\\\') end if @tt<>0 if @xingqi < 7 set @outchar=@outchar+\\\'<td><a href="\\\'+@date+\\\'/index.htm" TARGET="new">\\\'+convert(varchar(2), @ri)+\\\'</a></td>\\\' else set @outchar=@outchar+\\\'<td><a href="\\\'+@date+\\\'/index.htm" TARGET="new">\\\'+convert(varchar(2), @ri)+\\\'</a></td></tr><tr>\\\' else begin set @tt=1 set @outchar= case when @xingqi=1 then \\\'\\\' when @xingqi=2 then \\\'<td></td>\\\' when @xingqi=3 then \\\'<td></td><td></td>\\\' when @xingqi=4 then \\\'<td></td><td></td><td></td>\\\' when @xingqi=5 then \\\'<td></td><td></td><td></td><td></td>\\\' when @xingqi=6 then \\\'<td></td><td></td><td></td><td></td><td></td>\\\' when @xingqi=7 then \\\'<td></td><td></td><td></td><td></td><td></td><td></td>\\\' end if @xingqi < 7 set @outchar=@outchar+\\\'<td><a href="\\\'+@date+\\\'/index.htm" TARGET="new">\\\'+convert(varchar(2), @ri)+\\\'</a></td>\\\' else set @outchar=@outchar+\\\'<td><a href="\\\'+@date+\\\'/index.htm" TARGET="new">\\\'+convert(varchar(2), @ri)+\\\'</a></td></tr><tr>\\\' end insert into ##daylist values(@outchar) set @yue2=@yue set @outchar=\\\'\\\' fetch point3 into @dy,@date,@yue,@ri,@xingqi,@year end close point3 deallocate point3 execute sp_makewebtask @outputfile=\\\'d:testdaylist.htm\\\', @query=\\\'select * from ##daylist\\\', @templatefile=\\\'d:testrili.tml\\\', @codepage=936 drop table ##daylist 首先请读者通读上面的代码,以便对它有一个大概的了解。下面我们将对代码进行逐段的分析和讲解: 返回类别: 教程 上一教程: 在服务器上安装、使用MYSQL的注重事项 下一教程: 存储过程替换TEXT,NTEXT列中的字符串 您可以阅读与"SQL SERVER静态页面导出技术3"相关的教程: · SQL SERVER静态页面导出技术1 · SQL SERVER静态页面导出技术4 · SQL SERVER静态页面导出技术2 · SQL Server的链接服务器技术小结 · SQL SERVER的链接服务器技术小结 |
| 快精灵印艺坊 版权所有 |
首页 |
||