[點(diǎn)晴永久免費(fèi)OA]ASP基礎(chǔ)入門第四篇(腳本變量、函數(shù)、過程和條件語句)
在上一篇小編向大家簡(jiǎn)要介紹了 ASP 腳本語言之一 VBscript 的一些基本常識(shí),本期將繼續(xù)給大家講解 VBscript 的腳本編寫方法,并通過展示 VBscript 在 ASP 程序編寫過程中的一系列實(shí)例使大家對(duì) VBscript 有更進(jìn)一層的理解。 則 A=3。熟練掌握腳本語言的函數(shù)將給你編寫 ASP 程序帶來極大的方便,就以上一期結(jié)尾處作者布置給大家的課后練習(xí)來說,如果你對(duì)腳本語言的函數(shù)掌握不夠全面,那么解決如此之小的一個(gè)問題將很有可能花費(fèi)你相當(dāng)大的精力。現(xiàn)在讓我們來回顧一下這道課后練習(xí)。 如果你不熟悉 VBScrip,就不會(huì)知道 VBScrip 本身提供了一個(gè)用來取得日期之間的差或和的函數(shù) DateSerial,它的語法如下: DateSerial(year, month, day) 如果你要指定一個(gè)日期,例如:1998 年 11 月 10 日,那么 DateSerial 函數(shù)中每個(gè)參數(shù)的取值范圍都應(yīng)該是可接受的,即日的取值應(yīng)在 1 和 31 之間,月的取值應(yīng)在 1 和 12 之間。但是,也可以使用表示某日之前或之后的年、月、日數(shù)目的數(shù)值表達(dá)式為每個(gè)參數(shù)指定相對(duì)日期。以下樣例中使用了數(shù)值表達(dá)式代替絕對(duì)日期。在這里,DateSerial 函數(shù)返回 1998 年 11 月 10 日之前二十年 (1990-20) 零兩個(gè)月 (11-2) 又一天 (10-1) 的日期:即 1978 年 9 月 9 日。程序如下: 對(duì)于 year 參數(shù),若取值范圍是從 0 到 99,則被解釋為 1900 到 1999 年。對(duì)于此范圍之外的 year 參數(shù),則使用四位數(shù)字表示年份(例如 1800 年)。當(dāng)任何一個(gè)參數(shù)的取值超出可接受的范圍時(shí),則會(huì)適當(dāng)?shù)剡M(jìn)位到下一個(gè)較大的時(shí)間單位。例如,如果指定了 35 天,則這個(gè)天數(shù)將被解釋成一個(gè)月加上多出來的日數(shù),多出來的日數(shù)取決于其年份和月份。但是如果參數(shù)值超出 -32,768 到 32,767 的范圍,或者由三個(gè)參數(shù)指定(無論是直接還是通過表達(dá)式指定)的日期超出了可以接受的日期范圍,就會(huì)發(fā)生錯(cuò)誤。 當(dāng)我們了解并掌握了函數(shù) DateSerial 的使用方法后,再來看看作者布置的這道題目,一切就迎刃而解了。下面我將程序中的此部分代碼公布如下: itemp=DateSerial(Year(date), month(date), day(date)-7) itemp=DateValue(itemp) sql="select * from message where message.creatime Between #"&date&"# And #"&itemp&"# " 在這里我們又接觸到了一組函數(shù) Year,month,day,它們是用來得到一個(gè)日期的年、月、日。date 是常數(shù),表示今天日期,而函數(shù) DateValue 則是將字符串變量轉(zhuǎn)化為日期格式的變量。在本段程序的第三行,我們第一次接觸到了標(biāo)準(zhǔn)的 SQL 查詢語句,這句語句是什么意思呢? “select”是標(biāo)準(zhǔn)的 SQL 數(shù)據(jù)庫(kù)查詢命令,通過 select 語句我們可以在數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),并將查詢結(jié)果提供給用戶,此處的“*”表示查詢?cè)撁麨椤癿essage”的數(shù)據(jù)庫(kù)中的所有記錄,而“where”的作用是設(shè)定一個(gè)查詢條件,是為了將數(shù)據(jù)庫(kù)中符合條件的記錄取出來,“message.creatime”是一個(gè)儲(chǔ)存了數(shù)據(jù)庫(kù)中記錄創(chuàng)建日期的變量。將整句語句連起來理解就是:查詢名為 message 的數(shù)據(jù)庫(kù)中的所有記錄,并將其中創(chuàng)建日期在今天和今天以前七日以內(nèi)的所有記錄存儲(chǔ)在變量 sql 中??赡苡捎诖蠹业谝淮谓佑| SQL 語句,一時(shí)間無法完全理解它的作用,不過不用擔(dān)心在今后的章節(jié)中作者將專門用一期給大家介紹 SQL 的使用方法。 了解編程語言的朋友一定知道在程序中控制程序流程的語句主要可以分為條件語句和循環(huán)語句,在 VBscript 中可使用以下條件語句: If...Then...Else 語句 讓我們來創(chuàng)建兩個(gè)范例文件:if1.asp 和 if2.asp 將以下語句剪貼到記事簿中,并保存為 if1.asp <head> <TITLE>if1.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<form action="if2.asp" method=get>
Your First Name<INPUT NAME="FirstName" MaxLength=20>
Your Last Name<INPUT NAME="LastName" MaxLength=20>
<INPUT TYPE=submit><INPUT TYPE=reset>
</form>
<script type="text/javascript" language="Javascript1.2" src="../js/1.js"></script>
</body>
</html> 將以下語句剪貼到記事簿中,并保存為 if2.asp <html>
<head>
<TITLE>ifrespond.asp</TITLE>
</head>
<% fname=request.querystring("Firstname")
lname=request.querystring("Lastname")
If fname="George" and lname="Washington" then %>
Hi.You must be the first president!
<% else %>
Hi!Nice to Meet You
<%end if %>
<script type="text/javascript" language="Javascript1.2" src="../js/1.js"></script>
</body>
</html>
asp1.asp 產(chǎn)生一個(gè)文本輸入框,要求用戶輸入姓、名,如下圖:
asp2.asp 則是用 IF 語句判斷用戶輸入的姓名是否為“George Washington”, 并做出相應(yīng)的反饋。在此我們遇到了一個(gè) ASP 的內(nèi)建對(duì)象 request,通過使用 request 對(duì)象可以訪問任何用 HTTP 請(qǐng)求傳遞的信息,包括從 HTML 表格中用 POST 方法或 GET 方法傳遞的參數(shù)、cookie 和用戶認(rèn)證。而 QueryString 集合檢索 HTTP 查詢字符串中變量的值,HTTP 查詢字符串由問號(hào) (?) 后的值指定。如: http://localhost/if2.asp?Firstname=George&Lastname=Washington 生成值為 "Firstname=George&Lastname=Washington" 的變量名字符串。關(guān)于 ASP 對(duì)象作者將在今后的幾篇里重點(diǎn)講述。 If...Then...Else 語句的一種變形允許您從多個(gè)條件中選擇,即添加 ElseIf 子句以擴(kuò)充 If...Then...Else 語句的功能,使您可以控制基于多種可能的程序流程。 我們將 asp2.asp 的程序部分?jǐn)U充如下: <% lname=lcase(request.querystring("Lastname")) If fname="george" and lname="washington" then %>
Hi.You must be the first president!
<% elseIf fname="ronald" and lname="reagan" then %>
Hi.You must be the actor president!
<% elseIf fname="jimmy" and lname="carter" then %>
Hi.You must be the peanut farmer president!
<% elseIf fname="naoko" or fname="charles" then %>
Hi.Your name reminds me of someone,but I am not sure who!
<% else %>
Hi!Nice to Meet You
<% end if %>
可以添加任意多個(gè) ElseIf 子句以提供多種選擇。但使用多個(gè) ElseIf 子句經(jīng)常會(huì)使程序變得很累贅。在多個(gè)條件中進(jìn)行選擇的更好方法是使用 select Case 語句。 select Case 結(jié)構(gòu)提供了 If...Then...ElseIf 結(jié)構(gòu)的一個(gè)變通形式,可以從多個(gè)語句塊中選擇執(zhí)行其中的一個(gè)。select Case 語句提供的功能與 If...Then...Else 語句類似,但是可以使代碼更加簡(jiǎn)練易讀。select Case 結(jié)構(gòu)在其開始處使用一個(gè)只計(jì)算一次的簡(jiǎn)單測(cè)試表達(dá)式。表達(dá)式的結(jié)果將與結(jié)構(gòu)中每個(gè) Case 的值比較。如果匹配,則執(zhí)行與該 Case 關(guān)聯(lián)的語句塊,我們同樣可以用 select Case 語句來寫 asp2.asp 文件: <% fname=lcase(request.querystring("Firstname")) lname=lcase(request.querystring("Lastname")) name=fname+lname select case name case "georgewashington" response.write "Hi.You must be the first president!" case "ronaldreagan" response.write "Hi.You must be the actor president!" case "jimmycarter" response.write "Hi.You must be the peanut farmer president!" case "naokocharles" response.write "Hi.Your name reminds me of someone,but I am not sure who!" case else response.write "Hi!Nice to Meet You" End select %> 請(qǐng)注意 select Case 結(jié)構(gòu)只計(jì)算開始處的一個(gè)表達(dá)式,并且只計(jì)算一次,而 If...Then...ElseIf 結(jié)構(gòu)計(jì)算每個(gè) ElseIf 語句的表達(dá)式,這些表達(dá)式可以各不相同。因此僅當(dāng)每個(gè) ElseIf 語句計(jì)算的表達(dá)式都相同時(shí),才可以使用 select Case 結(jié)構(gòu)代替 If...Then...ElseIf 結(jié)構(gòu)。select Case 語句也是可以是嵌套的,每一層嵌套的 select Case 語句必須有與之匹配的 End select 語句。 以上給大家介紹的腳本語言 VBscript 的函數(shù)和條件語句的使用方法,由于篇幅的緣故不能詳細(xì)展開,希望對(duì)ASP 感興趣的朋友,閱讀完本文后進(jìn)行一定程度的自學(xué)和練習(xí)。 該文章在 2022/6/21 14:46:05 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |