ASP實用大全-ASP服務器組件(7)
發表時間:2024-02-10 來源:明輝站整理相關軟件相關文章人氣:
[摘要]ASP服務器組件編程心得 使用ASP編程的一大優點是可以使用眾多的服務器組件(ActiveX Server Components)。這些組件提供諸如廣告輪顯(Ad Rotator)、瀏覽器兼容(Browser Capabilities)、數據庫存�。―atabase Access)、文件超...
ASP服務器組件編程心得
使用ASP編程的一大優點是可以使用眾多的服務器組件(ActiveX Server Components)。這些組件提供諸如廣告輪顯(Ad Rotator)、瀏覽器兼容(Browser Capabilities)、數據庫存取(Database Access)、文件超鏈接(Content Linking)、文件存�。‵ile Access)等等功能。使用服務器組件,可以通過非常簡單的方式高效率地完成各種復雜的工作。
一般,ASP的各個組件通常使用 Server.CreateObject 方法來創建。例如,創建一個AD Rotator 組件可用:
<%
set ad = Server.CreateObjet (“MSWC.AdRotator”)
%>
在ASP的各個組件中,ActiveX Data Object(ADO)組件有著極為重要的作用。它是一種可以提供Web頁面設計開發人員快速存取Internet的數據庫,并在用戶端實現網上實時更新顯示的Web數據庫技術;ADO幾乎兼容于各種數據庫系統,而且跨越多種不同的程序語言開發環境。
例如,我們在網上向本公司的客戶群提供各種硬件的升級程序,與此同時,我們希望能夠記錄下客戶的相關資料。在以前,這種Web上的交互操作一般采用CGI來完成,不僅難以書寫和維護,而且對處理器的消耗很大�,F在,我們使用ASP的ADO組件,就可以在短短的兩個小時輕輕松松的完成以前需要三天才能完成的開發工作,而且還不必花費太多的時間和精力放在維護上。
首先,我們需要寫一個供用戶填寫資料的表格頁面,或者我們還可以將這個頁面與后面的ASP處理程序放在同一個文件里,只需要我們在<form>代碼中注明Action的對象是本程序(要么就什么都不寫)。
假定我們的程序名是download.html,下面是原代碼:
<html>
<body>
`聲明提交方法及傳遞信息的方式
<form METHOD="POST" ACTION="download.asp">
<font face=arial>
<table border="0" align=center>
<tr>
<td><font color="black" size="2"><b>Name:</b></font></td>
<td><input TYPE="text" SIZE="30" NAME="name"></td>
</tr>
<tr>
<td><font color="black" size="2"><b>Telephone:</b></font></ #@62;
<td><input TYPE="text" SIZE="30" NAME="telephone"></td>
</tr>
<td><font color="black" size="2"><b>E-mail:</b></font></td>
<td><input TYPE="text" SIZE="30" NAME="email"></td>
</tr>
<tr>
<td><font color="black" size="2"><b>Address:</b></font></td>
<td><input TYPE="text" SIZE="30" NAME="address"></td>
</tr>
<tr>
</table>
<hr>
<table align=center><tr>
<td><input TYPE="Submit" VALUE="Submit"></td>
<td width=30></td>
<td><input TYPE="Reset" VALUE="Reset"></td>
</tr></table>
</font>
</form>
</body>
</html>
然后,我們開始編寫數據處理程序download.asp。
<script language=vbscript runat=server>
`設置緩沖區屬性
response.buffer=true
Dim name
判斷有關字段是否為空
if Len(request.form("name"))=0 then
name="Not Entered"
else
不為空時,利用Response對象讓Server獲取表格中“name”字段內容
name=request.form("name")
end if
Dim telephone
if Len(request.form("telephone"))=0 then
telephone="Not Entered"
else
telephone=request.form("telephone")
end if
Dim address
if Len(request.form("address"))=0 then
address="Not Entered"
else
address=request.form("address")
end if
由于我們將采取Email發送的方式將該下載軟件提供給用戶,所以我們必須要求客戶提供有效的Email地址。
Dim email
email=request.form("email")
`判定客戶填寫的“Email”資料中是否含有特別字符“@”
if instr(email,"@")=0 then
`若為否,引導客戶至“back.htm”的提示頁面。
response.redirect("back.htm")
else
建立數據庫連接通道
Set objConn = Server.CreateObject("ADODB.Connection")
打開需要的數據庫
objConn.Open("download")
創建對象接口
set objRst = Server.CreateObject("ADODB.Recordset")
set objRst.ActiveConnection = objConn
設定對數據庫更新數據時的鎖定機制為:數據在更新時并未鎖定其他用戶的動作。
objRst.LockType = 3
數據庫源
objRst.Source = "client"
控制數據更新后過濾下載的數據類型
objRst.CursorType = adOpenKeyset
將從表格內獲取的資料傳送到web服務器上的數據庫
objRst.Open
objRst.AddNew
objRst("company") = company
objRst("name") = name
objRst("telephone") = telephone
objRst("fax") = fax
objRst("email") = email
objRst("address") = address
objRst.Update
objRst.close
關閉連接
objConn.close
下面是利用IIS4.0附帶的Email組件CDONTS發送郵件
Dim objMail
建立一個Email組件
set objMail=Server.CreateObject("CDONTS.NewMail")
郵件發送者的Email地址
objMail.From="[email protected]"
郵件接收者的Email地址
objMail.To=email
郵件的標題
objMail.Subject="Thank you!"
郵件的正文
objMail.Body="This is the software of Virtual Drive 2000 Network."
在郵件里附加文件,“絕對路徑”,“文件名”。若為URL地址,則改為ObjMail.AttachUrl
objMail.AttachFile "d:/power/download/vdn2kdm.exe", "vdn2kdm.exe"
發送郵件
objMail.Send
將Email對象從內存中清除
Set objMail=nothing
response.write "<p><font face=arial size=3 color=blue><b>Thank you!<br>We have sent the file pass your Email, please wait...</b></font></p>"
end if
</script>
到這里,一個很不錯的web數據庫交互操作程序就大功告成,而且,它還帶有向客戶發送Email的功能,方便客戶利用Email下載較大的文件。