国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

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

2024-05-04 11:05:23
字體:
來源:轉載
供稿:網友

隨著網絡應用的發展,基于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?頁。

本文介紹的是ASP和SQL實現基于Web的事件日歷的方法,相信大家都了解了,想要學習更多的技術方面的內容,請繼續關注錯新技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柯坪县| 乌鲁木齐县| 潜江市| 桃源县| 鸡泽县| 尉犁县| 永顺县| 林州市| 通州市| 阿坝县| 离岛区| 尖扎县| 天长市| 武宁县| 邹平县| 循化| 班玛县| 兴安县| 遂川县| 本溪| 海南省| 应用必备| 延庆县| 富宁县| 西吉县| 扶余县| 万年县| 衡东县| 陵水| 六安市| 贺州市| 凤台县| 北碚区| 桑日县| 云龙县| 应城市| 德令哈市| 福鼎市| 遵义县| 玉树县| 扶风县|