如果喜歡我就繼續,如不喜歡就刪掉吧。
5個實用網站功能速成
刊登於RUN!PC 1999/2月號
作者 喬篷科技 周世雄
本文重點
在前幾期的IIS 4.0專欄當中,我們看到了威力強大的IIS(Internet Information Server)4.0之30個特異功能、SSL與數位認證、如何使用asp設計一個生動的網站、如何將Web資料庫化、IIS 4.0網站進階管理、如何將網站元件化、Transaction Server三層式架構技術速成、和SQL Server 7.0網站資料庫的技術等單元。本期將探討5個實用的ASP網站功能。
筆者為微軟台北廳、經銷商訓練、TechNet等研討會講師,和微軟之友、RUN!PC雜誌專欄作者,著作有「ASP網站熱門應用技術」、「微軟熱門Web技術速成班」等網站網頁設計十幾本電腦書籍。現任「喬篷科技」公司總經理,從事Internet、Intranet之Web資料庫應用設計、網站網頁規劃架設等服務。
IIS 4.0示範網站:www.asp.com.tw
連絡E-mail:[email protected]。
5個實用的ASP網站功能
前幾期學會了如何將網站asp化、資料庫化、和元件化的「網站3化」後,本期將教您如何善用5個實用的ASP網站功能。
5個實用的ASP網站功能如下:
Transaction功能:「同生共死」的異動(Transaction)功能。
SSL功能:安全傳輸。
Message Queue功能:非同步處理功能。
中文全文檢索功能。
郵件傳送功能。
網站如何加入Transaction功能呢?
如何於您的網站加入異動(Transaction)功能呢?
IIS(Internet Information Server)與MTS(Microsoft Transaction Server)緊密整合,資料庫更動可以有「同生共死」的異動(Transaction)功能。
當ASP程式中所有的資料庫更動都成功時,才算成功;有一個資料庫的更動失敗時,已經更動的資料庫資料將自動恢復(rollback),這就是所謂的異動(Transaction)功能。
譬如從甲帳戶匯款到乙帳戶時,若乙帳戶的資料庫更動失敗時,已經更動甲帳戶的資料庫資料將自動恢復(rollback)。數個資料庫的資料更動,不是「同生」,就是「共死」。
並不是所有資料庫都提供異動(Transaction)的功能,Access沒有提供,SQL Server和Oracle則提供異動(Transaction)的功能。
asp程式中異動(Transaction)功能的有效範圍為一個asp程式,換句話說,這個ASP程式中所有的資料庫更動都具有異動(Transaction)功能。
如何於ASP程式中告訴IIS要做異動(Transaction)功能的處理呢?
方法為於asp程式碼當中的第一行加入「TRANSACTION=Required」,告訴IIS這一個asp程式使用異動(Transaction)功能的處理方式,ASP程式如下:
<%@ TRANSACTION=Required LANGUAGE="VBScript" %>
若此ASP程式內所有程式(包括更新數個資料庫)執行成功時,將呼叫OnTransactionCommit()副程式。若執行失敗(包括更新任何一個資料庫失敗)時,將呼叫OnTransactionAbort()副程式。
您可以呼叫SetComplete方法表示執行成功,或呼叫SetAbort方法表示執行失敗。
譬如ASP檔案如下:
<%@ TRANSACTION=Required LANGUAGE="VBScript" %>
...
<% Set obj1 = Server.CreateObject("testobj.cls1") %>
<% = obj1.data3t(1,10) %>
<%
Sub OnTransactionCommit()
…
end sub
Sub OnTransactionAbort()
…
end sub
%>
設計有Transaction功能的元件
如何設計有異動(Transaction)功能的元件呢?
方法為ActiveX DLL中使用ASP的ObjectContext物件,譬如說於Visual Basic 的ActiveX DLL定義如下:
Dim objContext As ObjectContext
Set objContext = GetObjectContext()
執行成功時,呼叫SetComplete方法,執行失敗時呼叫SetAbort方法以釋放資源。
譬如說於Visual Basic 的ActiveX DLL,其Visual Basic程式碼如下:
Function data3t(input1, points)
On Error GoTo Error1
Dim objContext As ObjectContext
Set objContext = GetObjectContext()
...
objContext.SetComplete
Exit Function
Error1:
objContext.SetAbort
End Function