ASP服务器组件编程心得

本文介绍如何使用ASP和ADO组件简化Web数据库交互操作,通过实例展示如何收集用户信息并发送带有下载链接的电子邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<a href='http://www.biancheng88.cn/html/2008-11/ASP-58137774.html'>ASP服务器组件编程心得</a><br><br>
                    使用ASP编程的一大优点是可以使用众多的服务器组件(ActiveX Server Components)。这些组件提供诸如广告轮显(Ad Rotator)、浏览器兼容(Browser Capabilities)、数据库存取(Database Access)、文件超链接(Content Linking)、文件存取(File Access)等等功能。使用服务器组件,可以通过非常简单的方式高效率地完成各种复杂的工作。 <br>
<br>
  一般,ASP的各个组件通常使用 Server.CreateObject 方法来创建。例如,创建一个AD Rotator 组件可用:<br>
<br>
<%<br>
<br>
set ad = Server.CreateObjet (“MSWC.AdRotator”)<br>
<br>
%><br>
<br>
  在ASP的各个组件中,ActiveX Data Object(ADO)组件有着极为重要的作用。它是一种可以提供Web页面设计开发人员快速存取Internet的数据库,并在用户端实现网上实时更新显示的Web数据库技术;ADO几乎兼容于各种数据库系统,而且跨越多种不同的程序语言开发环境。<br>
<br>
  例如,我们在网上向本公司的客户群提供各种硬件的升级程序,与此同时,我们希望能够记录下客户的相关资料。在以前,这种Web上的交互操作一般采用CGI来完成,不仅难以书写和维护,而且对处理器的消耗很大。现在,我们使用<a href="http://www.biancheng88.cn/html/special/2008-11/ASP/" title="ASP" target=_blank><B>ASP</B></a>的ADO组件,就可以在短短的两个小时轻轻松松的完成以前需要三天才能完成的开发工作,而且还不必花费太多的时间和精力放在维护上。<br>
<br>
  首先,我们需要写一个供用户填写资料的表格页面,或者我们还可以将这个页面与后面的<a href="http://www.biancheng88.cn/html/special/2008-11/ASP/" title="ASP" target=_blank><B>ASP</B></a>处理程序放在同一个文件里,只需要我们在<form>代码中注明Action的对象是本程序(要么就什么都不写)。<br>
<br>
  假定我们的程序名是download.html,下面是原代码:<br>
<br>
<html><br>
<br>
<body><br>
<br>
`声明提交方法及传递信息的方式<br>
<br>
<form METHOD="POST" ACTION="download.asp"><br>
<br>
<font face=arial><br>
<br>
<table border="0" align=center><br>
<br>
<tr><br>
<br>
<td><font color="black" size="2"><b>Name:</b></font></td><br>
<br>
<td><input TYPE="text" SIZE="30" NAME="name"></td><br>
<br>
</tr><br>
<br>
<tr><br>
<br>
<td><font color="black" size="2"><b>Telephone:</b></font></td><br>
<br>
<td><input TYPE="text" SIZE="30" NAME="telephone"></td><br>
<br>
</tr><br>
<br>
<td><font color="black" size="2"><b>E-mail:</b></font></td><br>
<br>
<td><input TYPE="text" SIZE="30" NAME="email"></td><br>
<br>
</tr><br>
<br>
<tr><br>
<br>
<td><font color="black" size="2"><b>Address:</b></font></td><br>
<br>
<td><input TYPE="text" SIZE="30" NAME="address"></td><br>
<br>
</tr><br>
<br>
<tr><br>
<br>
</table><br>
<br>
<hr><br>
<br>
<table align=center><tr><br>
<br>
<td><input TYPE="Submit" VALUE="Submit"></td><br>
<br>
<td width=30></td><br>
<br>
<td><input TYPE="Reset" VALUE="Reset"></td><br>
<br>
</tr></table><br>
<br>
</font><br>
<br>
</form><br>
<br>
</body><br>
<br>
</html><br>
<br>
  然后,我们开始编写数据处理程序download.asp。<br>
<br>
<script language=vbscript runat=server><br>
<br>
`设置缓冲区属性<br>
<br>
response.buffer=true<br>
<br>
Dim name<br>
<br>
  判断有关字段是否为空<br>
<br>
if Len(request.form("name"))=0 then<br>
<br>
name="Not Entered"<br>
<br>
else<br>
<br>
  不为空时,利用Response对象让Server获取表格中“name”字段内容<br>
<br>
name=request.form("name")<br>
<br>
end if<br>
<br>
<br>
Dim telephone<br>
<br>
if Len(request.form("telephone"))=0 then <br>
<br>
telephone="Not Entered"<br>
<br>
else<br>
<br>
telephone=request.form("telephone")<br>
<br>
end if<br>
<br>
<br>
Dim address<br>
<br>
if Len(request.form("address"))=0 then<br>
<br>
address="Not Entered"<br>
<br>
else<br>
<br>
address=request.form("address")<br>
<br>
end if<br>
<br>
<br>
  由于我们将采取Email发送的方式将该下载软件提供给用户,所以我们必须要求客户提供 有效的Email地址。<br>
<br>
Dim email <br>
<br>
email=request.form("email")<br>
<br>
  `判定客户填写的“Email”资料中是否含有特别字符“@”<br>
<br>
if instr(email,"@")=0 then<br>
<br>
`若为否,引导客户至“back.htm”的提示页面。<br>
<br>
response.redirect("back.htm")<br>
<br>
else<br>
<br>
  建立数据库连接通道<br>
<br>
Set objConn = Server.CreateObject("ADODB.Connection")<br>
<br>
  打开需要的数据库<br>
<br>
objConn.Open("download") <br>
<br>
  创建对象接口<br>
<br>
set objRst = Server.CreateObject("ADODB.Recordset") <br>
<br>
set objRst.ActiveConnection = objConn <br>
<br>
  设定对数据库更新数据时的锁定机制为:数据在更新时并未锁定其他用户的动作。<br>
<br>
objRst.LockType = 3<br>
<br>
  数据库源<br>
<br>
objRst.Source = "client" <br>
<br>
  控制数据更新后过滤下载的数据类型<br>
<br>
objRst.CursorType = adOpenKeyset <br>
<br>
  将从表格内获取的资料传送到web服务器上的数据库 <br>
<br>
objRst.Open <br>
<br>
objRst.AddNew <br>
<br>
objRst("company") = company <br>
<br>
objRst("name") = name <br>
<br>
objRst("telephone") = telephone<br>
<br>
objRst("fax") = fax <br>
<br>
objRst("email") = email <br>
<br>
objRst("address") = address <br>
<br>
objRst.Update <br>
<br>
objRst.close<br>
<br>
  关闭连接<br>
<br>
objConn.close<br>
<br>
<br>
  下面是利用IIS4.0附带的Email组件CDONTS发送邮件 <br>
<br>
Dim objMail<br>
<br>
  建立一个Email组件<br>
<br>
set objMail=Server.CreateObject("CDONTS.NewMail")<br>
<br>
  邮件发送者的Email地址<br>
<br>
objMail.From="me@hotmail.com" <br>
<br>
  邮件接收者的Email地址 <br>
<br>
objMail.To=email<br>
<br>
  邮件的标题<br>
<br>
objMail.Subject="Thank you!"<br>
<br>
  邮件的正文<br>
<br>
objMail.Body="This is the software of Virtual Drive 2000 Network."<br>
<br>
  在邮件里附加文件,“绝对路径”,“文件名”。若为URL地址,则改为ObjMail.AttachUrl<br>
<br>
objMail.AttachFile "d:/power/download/vdn2kdm.exe", "vdn2kdm.exe" <br>
<br>
 发送邮件<br>
<br>
objMail.Send<br>
<br>
  将Email对象从内存中清除<br>
<br>
Set objMail=nothing<br>
<br>
<br>
response.write "<p><font face=arial size=3 color=blue><b>Thank you!<br>We have sent the file pass your <br>
Email, please wait...</b></font></p>"<br>
<br>
<br>
end if <br>
<br>
<br>
</script><br>
<br>
<br>
  到这里,一个很不错的web数据库交互操作程序就大功告成,而且,它还带有向客户发送Email的功能,方便客户利用Email下载较大的文件。 <br>

                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值