麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

用ASP和SQL實現基于Web的事件日歷

2020-07-27 13:29:11
字體:
來源:轉載
供稿:網友
本文介紹如何建立基于Web的日歷,同時為不熟悉Active Server Pages(ASP)、SQL和ADO的開發者提供建立Web站點的過程介紹,也為有經驗的開發者提供了Web站點可伸縮性方面的技巧。 

隨著網絡應用的發展,基于Web的日歷越來越受到人們的重視,對于顯示諸如最后期限或日程安排之類的重要事件,或顯示誰在什么時候休假,基于Web的日歷都是有用的。本文描述了如何使用IIS和SQL Server內的ASP建立一個非常簡單的基于Web的日歷,并允許你與其他人共享你的日程表或管理一組人員的日歷。 

建立SQL服務器端 

對Web日歷而言,我們在服務器端僅需保存表明事件性質的一個文本字符串即可,字符串最長為100個字符。設計源代碼如下: 

Calendar.sql
-- 創建表
create table Schedule
(
idSchedule smallint identity primary key,
dtDate smalldatetime not null,
vcEvent varchar(100) not null
)
go
-- 存儲過程
create procedure GetSchedule (@nMonth tinyint, @nYear smallint)
as
select idSchedule, convert(varchar, datepart(dd, dtDate)) 'nDay', vcEvent
from Schedule
where datepart(yy, dtDate) = @nYear and datepart(mm, dtDate) = @nMonth
order by datepart(dd, dtDate)
go
create procedure AddEvent (@vcDate varchar(20), @vcEvent varchar(100))
as
insert Schedule
select @vcDate, @vcEvent 
go
create procedure DeleteEvent (@idSchedule smallint)
as
delete Schedule where idSchedule = @idSchedule
go  


設計ASP客戶端 

下圖是Web日歷的主要用戶界面,用戶可以看到哪些事件是已安排的。另外,使用底部的鏈接可以在日歷中按月前后翻動。 





ASP的實現代碼如下: 

header.asp
<@ LANGUAGE="VBSCRIPT" 
ENABLESESSIONSTATE = False %>
<%
' 目的:表頭包括用來啟動所有頁的文件
' 還包括全局函數
Option Explicit
Response.Buffer = True
Response.Expires = 0
sub Doheader(strTitle)
%>
<html>
   <head>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
   <title>Event Calendar - <%= strTitle %></title>
   </head>
   <body bgcolor="white" link="blue" alink="blue" vlink="blue">
   <basefont face="Verdana, Arial">
   <center><h1>Event Calendar</h1>
   <h3><%= strTitle %></h3>
<%
end sub
function GetDataConnection()
dim oConn, strConn
Set oConn = Server.CreateObject("ADODB.Connection")
strConn = "Provider=SQLOLEDB; Data Source=adspm; Initial Catalog=TeamWeb; "
strConn = strConn && "User Id=TeamWeb; Password=x"
oConn.Open strConn
set GetDataConnection = oConn
end function 
%>  


利用ADO,我們可以很容易地將 ASP 頁面與 SQL 數據庫相連接。首先我們要創建一個到數據庫的連接。為了獲得記錄集,我們要調用 Connection 對象的Execute方法,將希望執行的命令的文本字符串傳入,一旦有了記錄集,就可以在其中循環。header.asp 包含獲得數據連接的函數,這意味著如果數據源有變化,我們只有一個位置需要編輯連接信息(服務器、用戶和口令)。請注意,作為結果,我們必須在函數的末尾使用set命令傳出新連接。 

優化性能 

ASP使建立Web頁面變得十分容易,但如果想建立一個可以適應大量用戶的站點,你就需要仔細考慮編碼。下面筆者將為讀者介紹增強基于Web日歷可伸縮性的幾種方法,這些方法也可用于提高任何基于ASP的Web站點的性能。 

1.SQL優化 

提高站點性能的一個簡單方法是給 Schedule表的date字段添加一個索引,這樣,它會在給定日期之間進行查找,因而將加快 GetEvents的存儲過程。 

對于小型站點,我們可以將 SQL 與 IIS 安裝在同一服務器上,一旦站點訪問量開始增長,我們可將 SQL 移動到其自身的服務器上,當訪問量進一步增長時,我們可以添加均指向同一 SQL 服務器的多個 IIS 服務器。如果 SQL 服務器的通信量過度增長時,還可以將數據分割到不同的服務器上,我們可以將奇數月份分配到一臺服務器,將偶數月份分配到另一臺服務器上,當然,這需要修改 header.asp 中的 GetDataConnection,以便它為你提供基于此月份的正確連接。 

2.ASP 優化 

ASP 解釋的主要優化方法將是利用高速緩存頁面,以便無需每次讀取都對它們進行解釋。做到這一點的最簡單的方法是借助 ASP Application 對象。要做到這一點,你只需將HTML保存到含有月份和年份名稱的應用程序變量(例如 Calendar07-2000)中。然后,當顯示 Event Calendar 頁時,你首先檢查一下看看日歷是否已經保存在應用程序變量中,如果是,則只需檢索它,這種方式會大大加快網站的查詢過程。下面的代碼顯示了這個工作過程: 

<<do header>>
ShowCalendar(nMonth, nYear)
<<do Footer>>
sub ShowCalendar(nMonth, nYear)
if Application("Calendar" && nMonth && "-" && nYear) = "" then
<<Build Calendar>>
Application("Calendar" && nMonth && "-" && nYear) = <<Calendar>>
End if
Response.Write Application("Calendar" && nMonth && "-" && nYear) 
End sub  


當然,在 Events.asp 頁更改某個月份的事件時,你需要清空該月份的應用程序變量,以便反映這些事件的更改狀況。 

安全性 

有幾種方法可實現此站點上的安全性。對于 Intranet 站點,基于Windows NT的驗證是最容易設置的,其原因是你的用戶將很可能已經登錄到網絡。你可讓所有用戶查看 Event Calendar 頁,但是只有管理員能訪問Add/Remove Events 頁。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线小视频国产 | 激情视频在线播放 | 成人精品视频网站 | 国产成人精品网站 | 国产午夜免费 | 久色视频| 国产欧美亚洲精品a | 亚洲福利视频52 | 久久人人人 | 久久新地址 | 精品国产91久久久久久浪潮蜜月 | 成人勉费视频 | 欧美亚洲国产成人 | zzzzzzzxxxxxx日本人 | 午夜视频在线免费观看 | 男女隐私免费视频 | 国产毛片网| 久久精品视频网站 | 成人免费一区二区三区视频网站 | 在线视频观看一区二区 | 特黄一区二区三区 | 国产一级一区二区 | 91 在线免费观看 | 久久久久久久一区二区 | 国产午夜精品久久久久久免费视 | 在线成人av| 性欧美在线视频 | 一二区电影 | 日本在线视频免费观看 | 国产午夜精品一区二区三区视频 | 激情大乳女做爰办公室韩国 | 成人午夜免费福利 | 国产成人精品区一区二区不卡 | 亚洲导航深夜福利涩涩屋 | 猫咪av在线 | 在线区 | 欧美精品在线免费观看 | 91精品片| 国产一区日韩精品 | 91精品国产综合久久男男 | 久久人添人人爽人人爽人人片av |