SQL Server靜態頁面匯出技術(SQL Server Web Assistant)6

來源:互聯網
上載者:User
server|web|靜態|頁面 本段文章節選自鐵道出版社新出的《用BackOffice建立Intranet/Extranet應用》一書(現已在海澱圖書城有售,外地或者需要送貨上門的讀者可以到www.wanbook.com.cn或www.e-bookshop.com.cn上線上購買。本書書號為ISBN7113039448)。本書詳盡地講述了如何使用微軟BackOffice系列產品來組建Intranet/Extranet應用。通過它您將掌握NT的安裝和設定、使用IIS建立Web網站、通過ILS建立網路會議系統、用Exchange建立企業的郵件和協作系統、用SQL Server建立Web資料庫應用、用Proxy Server建立同Internet安全可靠的串連、用Media Server建立網路電視台/廣播站、用Chart server建立功能強大的聊天室、用Site Server建立個人化的郵件清單和分析網站的訪問情況、用Commerce Server建立B2B或B2C的電子商務網站。此外本書還對網路的安全性進行了討論,從而指導您建立一個更為健壯和安全的網路應用。閱讀本書之後,您將發現實現豐富多彩的網路應用原來這樣簡單……
絕對原創,歡迎轉載。但請務必保留以上文字。


最後,我們來介紹匯出日期列表頁面部分的代碼。我們在前面通過IDC技術產生過日期的列表頁面,但是在靜態頁面匯出時採用的方法與其不同。前面通過IDC所產生的頁面在瀏覽器端通過Java來完成對每個日期產生最終頁面的工作。這樣會造成產生的分頁檔過於龐大。因為對於每個日期,都要包含下面的一段Java代碼:
<script>
yue1=yue2;
yue2=4;
if (yue1!=yue2){
tt=0;
if (yue1==0){
document.write('<TABLE BORDER="BORDER" ALIGN="CENTER"><th><tr><h2>1999-4月</h2></tr></th><tr><td>星期日</td><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td></tr><tr>')
}else{
document.write('</tr></table>')
document.write('<TABLE BORDER="BORDER" ALIGN="CENTER"><th><tr><h2>1999-4月</h2></tr></th><tr><td>星期日</td><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td></tr><tr>')
}
}
ri=22;
xingqi=5;
if (tt!=0){
if (xingqi<7) {
document.write('<td><FONT SIZE="+1"><a href="goto.idc?day=1999-04-22" TARGET="goto"><b>22</b></a></FONT></td>');
}else {
document.write('<td><FONT SIZE="+1"><a href="goto.idc?day=1999-04-22" TARGET="goto"><b>22</b></a></FONT></td></tr><tr>');
}
}else{
tt=1;
for (i=1;i < xingqi;i++){
document.write('<td></td>');
}
document.write('<td><FONT SIZE="+1"><a href="goto.idc?day=1999-04-22" TARGET="goto"><b>22</b></a></FONT></td>');
if (xingqi==7){
document.write('</tr><tr>');
}
}
</script>
如果為一年的報紙內容來生產一個頁面的話,其大小可能會超過幾百KB。這對於區域網路來說,算不了什麼。這幾百KB資料所帶來的延遲使用者一般是察覺不到的。因為在區域網路上傳送這些資料所耗費的時間可能還不到一秒。而對於Internet使用者,就不得不考慮其有限的頻寬了。如此之大的分頁檔所帶來的延遲,恐怕是使用者所不能承受的。所以必須縮小此分頁檔的尺寸。我們使用遊標和流量控制語句在進行靜態頁面匯出的時候,在伺服器端完成相應的判斷工作。從而只生產"純"HTML檔案。下面就是實現此功能的程式碼片段:
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>'



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。