明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP實(shí)用大全-ASP服務(wù)器組件(7)

[摘要]ASP服務(wù)器組件編程心得  使用ASP編程的一大優(yōu)點(diǎn)是可以使用眾多的服務(wù)器組件(ActiveX Server Components)。這些組件提供諸如廣告輪顯(Ad Rotator)、瀏覽器兼容(Browser Capabilities)、數(shù)據(jù)庫存取(Database Access)、文件超...

ASP服務(wù)器組件編程心得

     使用ASP編程的一大優(yōu)點(diǎn)是可以使用眾多的服務(wù)器組件(ActiveX Server Components)。這些組件提供諸如廣告輪顯(Ad Rotator)、瀏覽器兼容(Browser Capabilities)、數(shù)據(jù)庫存。―atabase Access)、文件超鏈接(Content Linking)、文件存。‵ile Access)等等功能。使用服務(wù)器組件,可以通過非常簡單的方式高效率地完成各種復(fù)雜的工作。
 一般,ASP的各個(gè)組件通常使用 Server.CreateObject 方法來創(chuàng)建。例如,創(chuàng)建一個(gè)AD Rotator 組件可用:

<%

set ad = Server.CreateObjet (“MSWC.AdRotator”)

%>

 在ASP的各個(gè)組件中,ActiveX Data Object(ADO)組件有著極為重要的作用。它是一種可以提供Web頁面設(shè)計(jì)開發(fā)人員快速存取Internet的數(shù)據(jù)庫,并在用戶端實(shí)現(xiàn)網(wǎng)上實(shí)時(shí)更新顯示的Web數(shù)據(jù)庫技術(shù);ADO幾乎兼容于各種數(shù)據(jù)庫系統(tǒng),而且跨越多種不同的程序語言開發(fā)環(huán)境。

 例如,我們?cè)诰W(wǎng)上向本公司的客戶群提供各種硬件的升級(jí)程序,與此同時(shí),我們希望能夠記錄下客戶的相關(guān)資料。在以前,這種Web上的交互操作一般采用CGI來完成,不僅難以書寫和維護(hù),而且對(duì)處理器的消耗很大,F(xiàn)在,我們使用ASP的ADO組件,就可以在短短的兩個(gè)小時(shí)輕輕松松的完成以前需要三天才能完成的開發(fā)工作,而且還不必花費(fèi)太多的時(shí)間和精力放在維護(hù)上。

 首先,我們需要寫一個(gè)供用戶填寫資料的表格頁面,或者我們還可以將這個(gè)頁面與后面的ASP處理程序放在同一個(gè)文件里,只需要我們?cè)冢糵orm>代碼中注明Action的對(duì)象是本程序(要么就什么都不寫)。

 假定我們的程序名是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>

 然后,我們開始編寫數(shù)據(jù)處理程序download.asp。

<script language=vbscript runat=server>

`設(shè)置緩沖區(qū)屬性

response.buffer=true

Dim name

 判斷有關(guān)字段是否為空

if Len(request.form("name"))=0 then

name="Not Entered"

else

 不為空時(shí),利用Response對(duì)象讓Server獲取表格中“name”字段內(nèi)容

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發(fā)送的方式將該下載軟件提供給用戶,所以我們必須要求客戶提供有效的Email地址。

Dim email

email=request.form("email")

 `判定客戶填寫的“Email”資料中是否含有特別字符“@”

if instr(email,"@")=0 then

`若為否,引導(dǎo)客戶至“back.htm”的提示頁面。

response.redirect("back.htm")

else

 建立數(shù)據(jù)庫連接通道

Set objConn = Server.CreateObject("ADODB.Connection")

 打開需要的數(shù)據(jù)庫

objConn.Open("download")

 創(chuàng)建對(duì)象接口

set objRst = Server.CreateObject("ADODB.Recordset")

set objRst.ActiveConnection = objConn

 設(shè)定對(duì)數(shù)據(jù)庫更新數(shù)據(jù)時(shí)的鎖定機(jī)制為:數(shù)據(jù)在更新時(shí)并未鎖定其他用戶的動(dòng)作。

objRst.LockType = 3

 數(shù)據(jù)庫源

objRst.Source = "client"

 控制數(shù)據(jù)更新后過濾下載的數(shù)據(jù)類型

objRst.CursorType = adOpenKeyset

 將從表格內(nèi)獲取的資料傳送到web服務(wù)器上的數(shù)據(jù)庫

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

 關(guān)閉連接

objConn.close


  下面是利用IIS4.0附帶的Email組件CDONTS發(fā)送郵件

Dim objMail

 建立一個(gè)Email組件

set objMail=Server.CreateObject("CDONTS.NewMail")

 郵件發(fā)送者的Email地址

objMail.From="me@hotmail.com"

 郵件接收者的Email地址

objMail.To=email

 郵件的標(biāo)題

objMail.Subject="Thank you!"

 郵件的正文

objMail.Body="This is the software of Virtual Drive 2000 Network."

 在郵件里附加文件,“絕對(duì)路徑”,“文件名”。若為URL地址,則改為ObjMail.AttachUrl

objMail.AttachFile "d:/power/download/vdn2kdm.exe", "vdn2kdm.exe"

 發(fā)送郵件

objMail.Send

 將Email對(duì)象從內(nèi)存中清除

Set objMail=nothing

response.write "<p><font face=arial size=3 color=blue><b>Thank you!<br>W(wǎng)e have sent the file pass your Email, please wait...</b></font></p>"

end if

</script>

  到這里,一個(gè)很不錯(cuò)的web數(shù)據(jù)庫交互操作程序就大功告成,而且,它還帶有向客戶發(fā)送Email的功能,方便客戶利用Email下載較大的文件。