当前位置:首页 > 日记 > 正文

用asp和sql实现基于web的事件日历

用asp和sql实现基于web的事件日历
本文介绍如何建立基于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 页。 
如果关心审计,你可以容易地修改 AddEvent 和 DeleteEvent 过程将其信息保存到审计表中。你还可以确保 IIS 为每个页命中的查询字符串和用户进行日志记录,然后逐个分析日志以确定何人于何时做了什么,这是非常简单的。

相关文章

在情人的激情之后,一把水果刀和一只

在情人的激情之后,一把水果刀和一只

激情,错误,手把,一只,杀了,昨日,记者从警方获悉,南方的官方街地区;7 13谋杀案有了新进展,激情过后的最初是由于夫妇,在错手伤害杀人的年轻女子发现无证酒店躺在血泊中的谋杀 8:30 7月13日,公安局的官方社区民警中队值班室电话南海从麦克风响了,来…

安装Win7系统的硬件条件

安装Win7系统的硬件条件

硬件,系统,安装,条件,电脑软件,如果要在计算机上运行Windows 7,则需要以下条件。 1000兆赫(GHz)或更快的32位(x86)或64位(x64)处理器 1000兆字节(GB)RAM(32位)或2 GB RAM(64位) 16 GB可在硬盘空间(32位)或20 GB可用硬盘空间(64位)上提供。 DirectX 9图形设备…

微软的下一代的Hotmail预览Flash版

微软的下一代的Hotmail预览Flash版

微软的,版本,电脑软件,Flash,Hotmail,微软11月17日又发布了一个全新的Flash影片,向外界展现未来Hotmail的新鲜特性。用户可以从影片中欣赏到如下操作:阅读和书写电子邮件、对付垃圾邮件、调整“我的日历”、完善使用“联系”功能。下一代Hotm…

删除快捷方式箭头正确Vista/Win7下

删除快捷方式箭头正确Vista/Win7下

快捷方式,删除,箭头,正确,电脑软件,其实很多朋友下载Vista优化大师、Windows7优化大师或者魔方后最想干的第一件事,就是点击美化,在美化大师里面去掉快捷方式图标上的箭头。 很多熟悉各种操作系统的朋友都知道,Win7、Vista系统下面的快捷方式…

快乐的全国三强的郁可唯被淘汰了。

快乐的全国三强的郁可唯被淘汰了。

三强,快乐,全国,被淘汰,电脑软件,中新网长沙8月29日电(记者 邓霞)湖南卫视&ldquo;快乐女声(论坛)&;4进3比赛29日凌晨结束,一路跌跌撞撞闯进四强的&ldquo;红歌歌手&;黄英在与&ldquo;天籁之音&;郁可唯的终极PK中再显黑马本色,以三票的优势将后…

流媒体音乐服务Songza获380万美元

流媒体音乐服务Songza获380万美元

音乐,服务,流媒体,融资,电脑软件,{新闻}北京时间4月15日消息,据国外媒体报道,免费的音乐流媒体和推荐服务Songza有了一个新的380万美元融资。 Songza是一个免费的流媒体音乐服务,通过听歌曲创建播放列表,可以根据不同的时间,不同的地点和不同的…

小AbiWord文字处理软件

小AbiWord文字处理软件

文字,处理软件,电脑软件,AbiWord, 如果要说是替代微软系统自带的记事本程序,我们熟知的Notepad++ V5.43 Final 文本编辑器,UltraEdit-32, EditPlus V3.11.340这些软件 都是佼佼者,只不过这些记事本软件为程序设计员提供了更加…

ASP系列讲座(1)关于活动服务器页面

ASP系列讲座(1)关于活动服务器页面

服务器,讲座,页面,系列,电脑软件,Microsoft&reg; Active Server Pages (ASP) 是端脚本编写环境,使用它可以创建和运行动态、交互的 Web 应用程序。使用 ASP 可以组合 HTML 页、脚本命令和 ActiveX 以创建交互的 Web 页和基于 Web 的功能强大…

教你一个神奇的音乐。

教你一个神奇的音乐。

音乐,教你,神奇,电脑软件,妙用一起来音乐助手你是否为每天听歌而不知道听什么歌头疼过?你是否听过的好歌而忘记歌曲名再也找不到了惋惜过?那么,请跟随笔者体验一下一起来音乐助手带给你的极乐体验吧!一切都能帮你解决。一、一起来音乐助手流行…

微软发布的Bing桌面支持WindowsXP

微软发布的Bing桌面支持WindowsXP

桌面,支持,微软发布,电脑软件,Bing,微软发布了必应桌面1.1版微软发布了必应桌面1.1版,支持从Windows XP开始的所有版本Windows。通过该版本应用,Windows XP用户将可以在不离开桌面的情况下进行搜索。此外,新版必应桌面还支持将必应主页中的照…

傲游浏览器疯狂疯狂开发新未来

傲游浏览器疯狂疯狂开发新未来

傲游浏览器,疯狂,未来,电脑软件,2012年12月10日,以&ldquo;傲游&mdash;让自由前所未有&;为主题的傲游全新浏览器发布会在北京国贸大酒店隆重举行。会上傲游宣布其最新产品&mdash;&mdash;傲游云浏览器(预览版)正式发布。傲游云浏览器是业界首…

使弹出窗口更为周到

使弹出窗口更为周到

弹出窗口,周到,电脑软件, 在网上冲浪时进入一些网站会出现弹出窗口。它可能是站长对你的亲切问候,也可能是网站的重要通告、网站广告之类的。但用得不好会让人产生厌烦心理。如何才能让弹出窗口发挥作用,而又不影响浏览者浏览页面呢?  一…