因為這些值一直存放在Application中,當運行“每日提示”時,我們就可將它們從TIPSTORE.DAT中取出。作這項工作最佳的方式是利用GLOBAL.ASA,在Application_OnStart中。GLOBAL.ASA文件可以取出這些值。(知道下面這句話怎么譯的人請舉手?。㏕his is done, courtesy of the FileSystemObject and its support through the TextStreamObject methods:(好,手放下!既然你們都知道了,那我也就不解釋了)
PhyPth = Server.MapPath("/tipstore.dat") set FilSys = CreateObject("Scripting.FileSystemObject") set TipFil = FilSys.OpenTextFile(PhyPth, 1) Application("CurTip") = TipFil.ReadLine Application("SymDt") = CDate(TipFil.ReadLine) TipFil.Close set TipFil = nothing set FilSys = nothing
'Tip of the day PRocessing if Application("SymDt") < Date then Application.Lock CurTip = Application("CurTip") + 1 SymDt = date Application("CurTip") = CurTip Application("SymDt") = SymDt Application.Unlock
PhyPth = Server.MapPath("/tipstore.dat") set FilSys = CreateObject("Scripting.FileSystemObject") set TipFil = FilSys.CreateTextFile(PhyPth, true) TipFil.WriteLine(CurTip) TipFil.WriteLine(CStr(SymDt)) TipFil.Close set TipFil = nothing set FilSys = nothing end if
%> ... 直到最后,我們檢查當前的提示是否比上一個提示更新。如果第一個用戶訪問這個導致新數據的頁面,我們就很容易來處理這種變化。(明白乎?反正蜘蛛精是搞蒙了。我發覺翻譯技術資料最頭痛的并不是技術內容,而是如何去領會作者的意思。鄙人生性愚鈍,才疏學淺,直覺亦不甚敏銳,只有把這些內容留給網友了。原文請見英文版)。鎖住Application,我們就不會取到重復的變化。選擇下一個提示的編號,把當前的編號存入數據中以備明天使用。由于上述的諸多原因,將處理的結果存入文檔是必要的。(除非你是玩MUD,或與網絡情人進行生死戀??梢浴?4 hours a day, 7 days a week”地開著機器)
set rstTip = CreateObject("ADODB.Recordset") rstTip.Open "SELECT * FROM Tip WHERE Tip=" & TipNbr, _ "DSN=TipData" %> 我們創建rstTip作為Recordset來訪問數據庫,這個數據庫注冊為系統DSN(System DSN)(注冊方法就不多說了吧,在控制面板中完成)。 DSN的名稱為'TipData'。在記錄中,我們關注存于Application中的提示編號。