版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ASP程序設(shè)計(jì)第一章ASP簡介第一章ASP簡介1.1什么是ASP1.2ASP的工作平臺(tái)1.3創(chuàng)建ASP頁1.1什么是ASPASP是ActiveServerPages的簡稱,是服務(wù)器端腳本編寫環(huán)境,使用它可以創(chuàng)建和運(yùn)行動(dòng)態(tài)、交互的
Web服務(wù)器應(yīng)用程序。使用
ASP可以組合
HTML頁、腳本命令和
ActiveX組件以創(chuàng)建交互的
Web頁和基于Web的功能強(qiáng)大的應(yīng)用程序。ASP可用來創(chuàng)建動(dòng)態(tài)
Web頁或生成功能強(qiáng)大的
Web應(yīng)用程序。
1.2ASP的工作平臺(tái)
一般來說,ASP程序可以在Windows9x/NT/2000等操作系統(tǒng)下運(yùn)行.本節(jié)將以windows98為例解釋一下安裝TCP/IP網(wǎng)絡(luò)通訊協(xié)議、Web服務(wù)器及ASP軟件。
1.3創(chuàng)建ASP頁ActiveServerPages(ASP)文件是以.asp為擴(kuò)展名的文本文件,這個(gè)文本文件可以包括下列部分的任意組合:
文本,HTML標(biāo)記,
ASP腳本命令。第二章Web頁面制作基礎(chǔ)第二章Web頁面制作基礎(chǔ)2.1HTML語言概述 2.2制作表單 2.3框架結(jié)構(gòu) 2.1HTML語言概述 HTML是超文本標(biāo)記語言(HyperTextMarkupLanguage)的縮寫。
HTML文件的開頭和結(jié)尾由<HTML>和</HTML>來標(biāo)記的。所有HTML文件都可以分為兩個(gè)部分:標(biāo)題和正文。每一部分用特定的標(biāo)記標(biāo)出:在HTML語言中規(guī)定<HEAD>和</HEDAD>標(biāo)記標(biāo)題部分,用<BODY>和</BODY>標(biāo)記正文部分。
下面就給出了HTML文件的基本格式:<HTML><HEAD>
標(biāo)題部分
</HEAD>
<BODY>
正文部分
</BODY></HTML>2.2制作表單
表單是用戶和Web應(yīng)用程序、Web數(shù)據(jù)庫等進(jìn)行交互的界面。 表單由兩個(gè)部分組成:HTML代碼和CGI程序。其中HTML代碼主要用來生成表單的可視化界面,CGI程序主要用來負(fù)責(zé)對(duì)表單所包含的信息進(jìn)行解釋或處理,在本書中CGI程序主要用ASP構(gòu)成。
在HTML中,表單一般有如下的結(jié)構(gòu):
<FORMACTION=“…”METHOD=“…”>…<INPUT>……<SELECT>…</SELECT>…<TEXTAREA>…</TEXTAREA>…</FORM>2.3框架結(jié)構(gòu)
在HTML中,為解決網(wǎng)頁的框架結(jié)構(gòu),引入了框架標(biāo)記。使用框架標(biāo)記,就可以在一個(gè)屏幕上多開幾個(gè)窗口,在每個(gè)不同多窗口顯示不同的HTML文件。
含有框架結(jié)構(gòu)的網(wǎng)頁其HTML的形式和一般的HTML文件相似,只是用FRAMESET代替BODY標(biāo)記。框架結(jié)構(gòu)有開始和結(jié)束標(biāo)記,框架所有內(nèi)容都應(yīng)該在<FRAMESET>和</FRAMESET>之間。FRAMESET標(biāo)記內(nèi)使用另一個(gè)標(biāo)記符合<FRAME>來指定框架中每個(gè)小(子)窗口的內(nèi)容。
其具體格式如下:
<HTML> <HEAD>
… </HEAD> <FRAMESET> <FRAME>
… </FRAMESET></HTML>
下面以一個(gè)例子介紹:<FRAMESETCOLS=“*,50%”>
<FRAMESETROWS=“40%,60%”>
<FRAMESRC=“ONE.HTM”>
<FRAMESRC=“TWO.HTM”>
</FRAMESET> <FRAMESETROWS=“20%,20%,20%”> <FRAMESRC=“ONE.HTM”> <FRAMESRC=“TWO.HTM”> <FRAMESRC=“THREE.HTM”> </FRAMESET></FRAMESET>
如圖:第三章ASP內(nèi)置對(duì)象第三章ASP內(nèi)置對(duì)象3.1Request對(duì)象 3.2Response對(duì)象 3.3Sever對(duì)象 3.4Session對(duì)象 3.5Application對(duì)象 3.6ObjectContext對(duì)象
本章將介紹ASP本身所提供的對(duì)象,稱為ASP內(nèi)置對(duì)象,包括Request對(duì)象、Response對(duì)象、Server對(duì)象、
Session對(duì)象、Application對(duì)象及ObjectContext對(duì)象。 這些對(duì)象都有其特別的任務(wù)與工作,在詳細(xì)說明之前,下面先簡單地說明每個(gè)內(nèi)置對(duì)象的功能,然后再將這些對(duì)象分六個(gè)小節(jié)進(jìn)行介紹。對(duì)
象
名
稱對(duì)
象
功
能Request對(duì)象負(fù)責(zé)從用戶端接收信息。Response對(duì)象負(fù)責(zé)傳送信息給用戶。Sever對(duì)象負(fù)責(zé)控制ASP的運(yùn)行環(huán)境。Session對(duì)象負(fù)責(zé)存儲(chǔ)個(gè)別用戶的信息,以便重復(fù)使用。Application對(duì)象負(fù)責(zé)存儲(chǔ)數(shù)據(jù)以供多個(gè)用戶使用。ObjectContext對(duì)象可供ASP程序直接配合MTS進(jìn)行分散式的事務(wù)處理。3.1Request對(duì)象 Request對(duì)象通常包括了用戶端的相關(guān)信息,如瀏覽器的種類、表頭信息、表單參數(shù)及cookies等等。而Response對(duì)象則是包含Web服務(wù)器所要響應(yīng)給用戶的各項(xiàng)信息。
Request對(duì)象的語法描述如下
:Request[.collection|property|method](variable)
其中collection表示Request對(duì)象的集合,property表示Request對(duì)象的屬性,method表示Request對(duì)象的方法,變量參數(shù)(variable)是一些字符串,這些字符串指定要從集合中檢索的項(xiàng)目,或作為方法或?qū)傩缘妮斎?。Request對(duì)象的集合如下:
集
合功
能
說
明ClientCertificate存儲(chǔ)發(fā)送到HTTP請(qǐng)求中客戶端證書中的字段值。CookiesHTTP請(qǐng)求中被發(fā)送的cookies的值。FormHTTP請(qǐng)求正文中表格元素的值。QueryStringHTTP中查詢字符串中變量的值。ServerVariables預(yù)定的環(huán)境變量的值。Request對(duì)象提供BinaryRead方法,該方法是以二進(jìn)制方式來讀取客戶端使用POST傳送方法所傳遞的數(shù)據(jù)。
Request對(duì)象總共提供了Form集合、
Cookies集合、
ClientCertificate集合、ServerVariables集合及
QueryString集合等。3.2Response對(duì)象
在ASP中負(fù)責(zé)將信息傳遞給用戶的對(duì)象就是Response對(duì)象。
Response對(duì)象用于動(dòng)態(tài)響應(yīng)客戶端請(qǐng)求(Request),并將動(dòng)態(tài)生成的響應(yīng)結(jié)果返回到客戶端瀏覽器中,使用該對(duì)象可以動(dòng)態(tài)創(chuàng)建web頁面。
Response對(duì)象的使用語法為:
其中collection表示Response對(duì)象的集合,property表示Response對(duì)象的屬性,method表示Response對(duì)象的方法。Response.collection|property|methodResponse對(duì)象的方法:方
法功
能
說
明AddHeader從名稱到值設(shè)置HTML標(biāo)題。AppendToLog在該請(qǐng)求的Web服務(wù)器日志條目后添加字符串。BinaryWrite將給出信息寫入到當(dāng)前HTTP輸出中,并且不進(jìn)行任何字符集轉(zhuǎn)換。Clear清除任何緩沖的HTML輸出。End停止處理.asp文件并返回當(dāng)前的結(jié)果。Flush立即發(fā)送緩沖的輸出。Redirect將重指示信息發(fā)送到瀏覽器,嘗試連接另一個(gè)URL。Write將變量作為字符串寫入當(dāng)前的HTTP輸出。Response對(duì)象的屬性:屬
性功
能
說
明Buffer表明頁輸出是否被緩沖。CacheControl決定代理服務(wù)器是否能緩存ASP生成的輸出。Charset將字符集的名稱添加到內(nèi)容類型標(biāo)題中。ContentType指定響應(yīng)的HTTP內(nèi)容類型。
Expires在瀏覽器中緩存的頁面超時(shí)前,指定緩存的時(shí)間。ExpiresAbsolute指定瀏覽器上緩存頁面超時(shí)的日期和時(shí)間。IsClientConnected表明客戶端是否與服務(wù)器斷開。Pics將PICS標(biāo)記值添加到響應(yīng)標(biāo)題的PICS標(biāo)記字段中。Status服務(wù)器返回的狀態(tài)行的值。
Response對(duì)象只有Cookies一個(gè)數(shù)據(jù)集合。
Cookies數(shù)據(jù)集合允許將數(shù)據(jù)設(shè)置在客戶端的瀏覽器中。假如所指定名稱的Cookies不存在,系統(tǒng)會(huì)自動(dòng)在客戶端的瀏覽器中建立新的Cookies,
3.3Sever對(duì)象Server對(duì)象提供對(duì)服務(wù)器上的方法和屬性的訪問,其中大多數(shù)方法和屬性是作為實(shí)用程序的功能服務(wù)的。
Sever對(duì)象的使用語法為:
其中property表示Server對(duì)象的屬性,method表示Server對(duì)象的方法。Sperty|methodServer的屬性只有一個(gè)
ScriptTimeout,表示超時(shí)值,即在腳本運(yùn)行超過這一時(shí)間之后作超時(shí)處理。Server對(duì)象的方法:方法描述CreateObject創(chuàng)建服務(wù)器組件的實(shí)例。HTMLEncode將HTML編碼應(yīng)用到指定的字符串。MapPath將指定的虛擬路徑,無論是當(dāng)前服務(wù)器上的絕對(duì)路徑,還是當(dāng)前頁的相對(duì)路徑,映射為物理路徑。URLEncode將URL編碼規(guī)則,包括轉(zhuǎn)義字符,應(yīng)用到字符串。3.4Session對(duì)象
由于網(wǎng)頁是一種無狀態(tài)的程序,因此無法得知用戶的瀏覽狀態(tài)。在ASP中,是通過Session對(duì)象記錄用戶的相關(guān)信息,用來作為用戶再次對(duì)服務(wù)器提供要求時(shí)作確認(rèn)。要注意的是,會(huì)話狀態(tài)僅在支持Cookie的瀏覽器中保留。
Session對(duì)象的使用語法為:
其中collection表示Session對(duì)象的集合,property表示Session對(duì)象的屬性,method表示Session對(duì)象的方法。
Session.collection|property|methodSession對(duì)象在global.asa文件中聲明兩個(gè)事件Session_OnEnd、Session_OnStart的腳本。
Session對(duì)象對(duì)應(yīng)兩個(gè)事件:Session_OnEnd、Session_OnStart。其中Session_OnStart事件對(duì)應(yīng)Session對(duì)象的起始事件:每當(dāng)產(chǎn)生一個(gè)Session對(duì)象,該事件所定義的代碼都將被激活;Session_OnEnd事件對(duì)應(yīng)Session對(duì)象的結(jié)束事件:當(dāng)Session對(duì)象被終止或失效時(shí),該事件所對(duì)應(yīng)的代碼被激活。<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>SubSession_OnStart‘事件的處理程序代碼EndSub
SubSession_OnEnd‘事件的處理程序代碼EndSub</SCRIPT>這兩個(gè)事件的代碼必須放在global.asa文件中,如下:Session對(duì)象的屬性:屬
性
名描
述CodePage將用于符號(hào)映射的代碼頁。LCID現(xiàn)場標(biāo)識(shí)。SessionID返回用戶的會(huì)話驗(yàn)證。Timeout應(yīng)用程序會(huì)話狀態(tài)的超時(shí)時(shí)限,以分鐘為單位。Session對(duì)象的集合:集
合
名描
述Contents包含已用腳本命令添加到會(huì)話中的項(xiàng)目。StaticObjects包含通過<OBJECT>標(biāo)記創(chuàng)建的并給定了會(huì)話作用域的對(duì)象。Session對(duì)象只提供了Abandon方法,該方法刪除所有存儲(chǔ)在Session對(duì)象中的對(duì)象并釋放這些對(duì)象的源。
3.5Application對(duì)象Application對(duì)象和Session對(duì)象有很多相似之處,它們的功能都是用于在不同的ASP之間共享信息。最大的不同在于其應(yīng)用的范圍:
Application對(duì)象是對(duì)所有用戶,
Session對(duì)象是對(duì)單一用戶。
Application對(duì)象的使用語法為:
其中property表示Application對(duì)象的屬性,method表示Application對(duì)象的方法。
Aperty|methodApplication對(duì)象在global.asa文件中聲明兩個(gè)事件Application_OnEnd、Application_OnStart的腳本:
Application對(duì)象對(duì)應(yīng)兩個(gè)事件:Application_OnEnd、Application_OnStart。其中Application_OnStart事件對(duì)應(yīng)Application對(duì)象的起始事件:每當(dāng)產(chǎn)生一個(gè)Application對(duì)象,該事件所定義的代碼都將被激活;Application_OnEnd事件對(duì)應(yīng)Session對(duì)象的結(jié)束事件:當(dāng)Application對(duì)象被終止或失效時(shí),該事件所對(duì)應(yīng)的代碼被激活。<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>SubApplication_OnStart‘事件的處理程序代碼EndSub
SubApplication_OnEnd‘事件的處理程序代碼EndSub</SCRIPT>這兩個(gè)事件的代碼必須放在global.asa文件中,如下:Application對(duì)象的集合如下:
Application對(duì)象的屬性如下:屬
性
名描
述LockLock方法禁止其他客戶修改Application對(duì)象的屬性。UnlockUnlock方法允許其他客戶修改Application對(duì)象的屬性。集
合
名描
述Contents包含所有通過腳本命令添加到應(yīng)用程序中的項(xiàng)。StaticObjects包含所有用<OBJECT>標(biāo)記添加到會(huì)話中的對(duì)象。3.6ObjectContext對(duì)象
ObjectContext對(duì)象是一個(gè)以組件為主的事務(wù)處理系統(tǒng),可以保證事務(wù)的成功完成。使用ObjectContext對(duì)象,就允許程序在網(wǎng)頁中直接配合MicrosoftTransactionServer(MTS)使用,從而可以管理或開發(fā)高效率的Web服務(wù)器應(yīng)用程序。
在ASP中使用@TRANSACTIO關(guān)鍵字來完成的,語法如下:<%@TRANSACTION=value%>
要注意的是@TRANSACTION指令必須位于.asp文件中的第一行,否則將出錯(cuò),必須將該指令加到要在某個(gè)事務(wù)下運(yùn)行的每一頁中。當(dāng)腳本處理完成之后,當(dāng)前事務(wù)也就結(jié)束了。
ObjectContext的方法:方
法意
義SetCompleteSetComplete方法聲明腳本不了解事務(wù)未完成的原因。如果事務(wù)中的所有組件都調(diào)用SetComplete,事務(wù)將完成。SetAbortSetAbort方法聲明被腳本初始化的事務(wù)未完成,無法更新源。ObjectContext對(duì)象提供OnTransactionCommit、OnTransactionAbort兩個(gè)事件處理程序,前者是在事務(wù)完成時(shí)被激活,后者是在事務(wù)失敗時(shí)激活。
SubOnTransactionCommit()‘處理程序EndSub
SubOnTransactionAbort()‘處理程序EndSub第四章ASP組件第四章ASP組件4.1AdRotator組件 4.2BrowserCapabilities組件 4.3DatabaseAccess組件 4.4FileAccess組件 4.5ContentLinking組件4.6其它ASP組件
使用組件可以完成諸如Web廣告條輪換、瀏覽器兼容、數(shù)據(jù)庫存取、服務(wù)器端文件存取等多種功能,值得一提的是,ASP提供的組件是在服務(wù)器端運(yùn)行,
組
件
名描
述AdRotator創(chuàng)建一個(gè)AdRotator對(duì)象,該對(duì)象可按用戶指定的播放順序,在同一頁上自動(dòng)輪換顯示各種廣告。BrowserCapabilities創(chuàng)建一個(gè)BrowserType對(duì)象,該對(duì)象決定訪問Web站點(diǎn)的每個(gè)瀏覽器的性能、類型及版本。DatabaseAccess提供ActiveXDataObjects(ADO)對(duì)數(shù)據(jù)庫的訪問。ContentLinking創(chuàng)建一個(gè)NextLink對(duì)象,該對(duì)象可動(dòng)態(tài)生成Web頁內(nèi)容列表,并象書一樣將各頁順續(xù)連接。FileAccess提供對(duì)Web服務(wù)器端文件的輸入輸出訪問。4.1AdRotator組件
AdRotator組件中,能很容易實(shí)現(xiàn)在Web頁面上插入一個(gè)循環(huán)播放廣告橫幅的播放器,可以通過定義一個(gè)播放順序文件,使播放器能根據(jù)文件中定義的播放順序輪流播放一系列廣告圖片。
AdRotator組件所使用的播放順序文件是一個(gè)文本文件,只要修改這個(gè)文件,就可以實(shí)現(xiàn)廣告橫幅播放順序的更新。
一般來說,AdRotator組件相關(guān)文件
除了必要的Adrot.dll文件外,還要有循環(huán)定時(shí)文件,另外也可以有重定向文件。
循環(huán)定時(shí)文件也叫作RotatorSchedule文件,包含AdRotator組件用于管理和顯示各種廣告圖象的信息。
重定向文件是AdRotator組件中可選擇項(xiàng),如果在循環(huán)定時(shí)文件中指定使用重定向文件,每當(dāng)用戶點(diǎn)擊廣告時(shí),其發(fā)出的請(qǐng)求對(duì)會(huì)重定向到該文件。
AdRotator組件的屬性屬
性
名語
法描
述BorderBorder=size允許用戶指定顯示廣告時(shí)四周是否帶邊框。ClickableClickable=value允許用戶指定是否將廣告作為超鏈接顯示。默認(rèn)值是
TRUE。TargetFramesTargetFrame=frame用于指定鏈接將被裝入的目標(biāo)框架。該屬性完成的功能等價(jià)于HTML語句中的TARGET參數(shù)。frame指定用來顯示廣告框架的名稱。AdRotator組件只要GetAdvertisement一個(gè)方法,主要功能在于重新取得一個(gè)將要顯示的圖片和超文本鏈接。語法如下:
其中rotationSchedulePath指定RotatorSchedule文件相對(duì)于虛擬目錄的位置。GetAdvertisement(rotationSchedulePath)4.2BrowserCapabilities組件
ASP提供的BrowerCapabilities組件的使用,可以輕松地獲取客戶端瀏覽器的類型,進(jìn)而判斷瀏覽器所支持的特性,然后再根據(jù)此信息,啟用瀏覽器支持的特性,屏蔽不支持的特性。
BrowserCapabilities組件除包含一系列屬性、方法外,也有一個(gè)外部驅(qū)動(dòng)文件Browscap.ini文件。語法如下:
SetBrowser=Server.CreateObject("MSWC.BrowserType")
Browscap.ini文件中主要定義了各種瀏覽器所具有的屬性,可以在該文件中聲明屬性定義任意數(shù)量的瀏覽器數(shù)目,也可以設(shè)置用戶瀏覽器不在所定義的列表中時(shí)使用的默認(rèn)值。對(duì)每一個(gè)瀏覽器定義,都可以提供一個(gè)用戶代理的HTTP(HTTPUserAgent)標(biāo)題和屬性以及希望與標(biāo)題相關(guān)聯(lián)的值。4.3DatabaseAccess組件
DatabaseAccess組件是ASP的精華,通過使用該組件,Web開發(fā)人員可以很容易地實(shí)現(xiàn)在Web應(yīng)用程序中訪問數(shù)據(jù)庫。
DatabaseAccess組件可以通過ADO訪問存儲(chǔ)在數(shù)據(jù)庫或其他表格化數(shù)據(jù)結(jié)構(gòu)中的信息,同時(shí)支持ODBC3.0的數(shù)據(jù)庫連接池特征。4.4FileAccess組件FileAccess組件可用來訪問計(jì)算機(jī)文件系統(tǒng)的方法和屬性。該組件是由FileSystemObject對(duì)象、TextStream對(duì)象組成。其中,F(xiàn)ileSystemObject對(duì)象負(fù)責(zé)文件或目錄的管理,但如果你要訪問文件的內(nèi)容,就必須與TextStream對(duì)象一起使用。
FileAccess組件建立的語法如下:Setfs=CreateObjext(“Scripting.FileSystemObject”)
FileSystemObject對(duì)象提供對(duì)計(jì)算機(jī)文件系統(tǒng)的訪問,共有24種方法(教材表4.4)和一種屬性。語法如下:Scripting.FileSystemObject
TextStream對(duì)象的使用可以有助于順序訪問文件,可以協(xié)助利用FileAccess組件啟動(dòng)或建立的文件。語法如下:TextStream.{property|method}
其中property和method參數(shù)可以是任何與TextStream對(duì)象相關(guān)聯(lián)的屬性和方法。
4.5ContentLinking組件
ContentLinking組件的主要目的在于管理網(wǎng)頁或網(wǎng)址間的超文本鏈接,可以通過一個(gè)網(wǎng)頁或網(wǎng)址的線性排列順序列表來管理多個(gè)網(wǎng)頁或網(wǎng)址間的超文本鏈接順序。該組件讀取一個(gè)被稱為線性排列順序文本鏈接的文本文件,根據(jù)該文件的內(nèi)容,組件可以自動(dòng)創(chuàng)建每個(gè)相關(guān)頁面的導(dǎo)航鏈接和目錄鏈接。ContentLinking組件創(chuàng)建語法如下:SetNextLink=Server.CreateObject("MSWC.NextLink")
線性排列順序文件是一個(gè)包含Web頁列表的文本文件,語法如下:WebURL[text-description[comment]]
其中參數(shù)WebURL表示的Web頁的虛擬或相對(duì)URL。參數(shù)text-description包含
WebURL描述文字的值。參數(shù)comment為組件不處理的說明性文字。
4.6其他ASP組件
ASP還包括其他組件,每個(gè)組件都相當(dāng)于一個(gè)小工具,利用這些組件,就可以快速、方便的構(gòu)造網(wǎng)頁。比如ContentRotator組件、PermissionChecker組件、LoggingUtility組件、Tools組件等。第五章VBScript和Jscript第五章VBScript和Jscript5.1服務(wù)器端腳本和客戶端腳5.2VBScript腳本語言5.3JScript腳本語言
ASP程序是由文本、HTML標(biāo)記和腳本組合而成的??梢杂萌魏文_本語言來編寫ASP程序中的腳本部分,只要Web服務(wù)器上安裝了該語言的腳本引擎。
目前比較流行的腳本語言有VBScript和Jscript。5.1服務(wù)器端腳本和客戶端腳本
使用VBScript和JScript,既可編寫服務(wù)器端腳本,也可編寫客戶端腳本。服務(wù)器端腳本在Web服務(wù)器上執(zhí)行,生成發(fā)送到瀏覽器的HTML頁面由Web服務(wù)器負(fù)責(zé)。在ASP中,服務(wù)器端腳本要用分隔符<%%>括起,或者在<SCRIPT></SCRIPT>標(biāo)記中用RUNAT=Server表示腳本在服務(wù)器端執(zhí)行。
腳本代碼能夠嵌入到HTML文檔的任何地方,通常都是將所有腳本代碼集中放在HEAD部分,這樣可以確保在BODY部分調(diào)用代碼之前所有腳本代碼都被讀取并解碼。5.2VBScript腳本語言
VBScript是VisualBasic的一個(gè)子集,編程方法和VisualBasic基本相同,但有相當(dāng)多的VisualBasic特性在VBScript中都被刪去了。1將單行語旬分成多行
有時(shí)一條語句可能會(huì)很長,這給打印和閱讀帶來不便,此時(shí)可用續(xù)行符“-”(一個(gè)空格緊跟一個(gè)下劃線)將長語句分成多行。2在代碼中加注釋
在VBScript中,注釋符采用西文單引號(hào)“′”,即以撇號(hào)作為注釋的開始。注釋可以和語句在同一行并寫在語句的后面,也可單獨(dú)占一行。3使用不同進(jìn)制的數(shù)字
在VBScript中,除了可以用默認(rèn)的十進(jìn)制來表示數(shù)字外,還允許用十六進(jìn)制或八進(jìn)制來表示數(shù)字。對(duì)于不同進(jìn)制的數(shù),VBScript在表達(dá)方式上有明確規(guī)定,即十六進(jìn)制數(shù)要加前綴&H(如&H9),八進(jìn)制數(shù)要加前綴&0(數(shù)字零)(如&011)4數(shù)據(jù)類型
VBScript只有一種數(shù)據(jù)類型,即Variant類型。由于Variant類型是VBScript中唯一的數(shù)據(jù)類型,因此它也是VBScript中所有函數(shù)的返回值的數(shù)據(jù)類型。Variant類型可以在不同場合代表不同類型的數(shù)據(jù)。5變量
聲明變量有兩種方式,即顯式聲明和隱式聲明。
顯式聲明要用到Dim語句。
隱式聲明是指腳本中第一次使用變量時(shí),就自動(dòng)創(chuàng)建該變量。
在VBScript中,變量命名必須遵循這樣的規(guī)則:
①名字必須以字母開頭;
②名字中不能含有句號(hào);
③名字不能超過255個(gè)字符;
④名字不能和關(guān)鍵字同名;
⑤名字在被聲明的作用域內(nèi)必須唯一。
VBScript不區(qū)分大小寫。
變量被聲明后不是在任何地方都可以被使用,每個(gè)變量都有它的作用域,作用域是指程序中哪些代碼能引用變量。過程內(nèi)部聲明變量稱為過程級(jí)變量或局部變量,這樣的變量只有在聲明它們的過程中才能使用,即無法在過程外部訪問;過程外部聲明的變量稱為腳本級(jí)變量或全局變量,即在同一個(gè)程序文件中的任何腳本命令均可訪問和修改該變量的值。過程級(jí)和腳本級(jí)變量可以同名,修改其中一個(gè)變量的值,不會(huì)影響另一個(gè)。6常量
常量是具有一定含義的名稱,用于代替數(shù)值或字符串。
在VBScript中,還可以用Const語句來定義自己的常量。
7數(shù)組
在VBScript中,把具有相同名字不同下標(biāo)值的一組變量稱為數(shù)組變量,簡稱數(shù)組。
數(shù)組有上界和下界,數(shù)組中的元素在上下界內(nèi)是連續(xù)的。
在VBScript中,數(shù)組有兩種類型,即固定數(shù)組和動(dòng)態(tài)數(shù)組。8運(yùn)算
在VBScript中,可以進(jìn)行4種類型的運(yùn)算,即算術(shù)運(yùn)算、連接運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算。
在表達(dá)式中,當(dāng)運(yùn)算符不止一種時(shí),要首先進(jìn)行算術(shù)運(yùn)算,接著進(jìn)行關(guān)系運(yùn)算,然后進(jìn)行邏輯運(yùn)算。9控制結(jié)構(gòu)
在VBScript中,控制結(jié)構(gòu)有兩種,即判定結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
VBScript支持的判定結(jié)構(gòu)分條件結(jié)構(gòu)和選擇結(jié)構(gòu)兩種。
可以用選擇結(jié)構(gòu)來替代塊結(jié)構(gòu)的條件語句,以便在多個(gè)語句塊中有選擇地執(zhí)行其中的一個(gè)。
循環(huán)結(jié)構(gòu)允許重復(fù)執(zhí)行一行或數(shù)行代碼。
在VBScript中,提供了三種不同風(fēng)格的循環(huán)結(jié)構(gòu),即Do循環(huán)、For循環(huán)和ForEach循環(huán)。
10with語句
with語句用于對(duì)某個(gè)對(duì)象執(zhí)行一系列操作,而不用重復(fù)指出對(duì)象的名字。
With語句可以嵌套,即With語句能夠置入另一個(gè)With語句中,但不能用一個(gè)With來設(shè)置多個(gè)不同的對(duì)象。
11過程
過程是用來執(zhí)行特定任務(wù)的獨(dú)立的程序代碼。
使用過程,可以將程序劃分成一個(gè)個(gè)較小的邏輯單元,過程中的代碼能夠被反復(fù)調(diào)用,這樣可以減少不必要的重復(fù)。12VBscript函數(shù)摘要
VBScript提供的函數(shù)見教材表5.55.3JScript腳本語言Jscript完全實(shí)現(xiàn)了ECMAScript-262語言規(guī)范并提供了一些增強(qiáng)特性。與C++和Java這樣成熟的面向?qū)ο笳Z言相比,功能要弱些,不能用Jscript來編寫?yīng)毩⑦\(yùn)行的應(yīng)用程序,Jscript腳本只能在某個(gè)解釋器上運(yùn)行,該解釋器既可是Web服務(wù)器,也可是Web瀏覽器。Jscript是一種寬松類型的語言,即不必顯式定義變量的數(shù)據(jù)類型,JScript會(huì)根據(jù)需要自動(dòng)進(jìn)行轉(zhuǎn)換。1語句和語句塊
在JScript中,語句由一行中的一個(gè)或多個(gè)項(xiàng)和符號(hào)組成。每行開始一條新的語句。可以用分號(hào)(;)來顯式地終止一條語句。分號(hào)是JScript的語句終止符。
用大括號(hào)括起來的一組Jscript語句稱為一個(gè)語句塊。2變量
JScript通常不要求變量聲明,但在使用之前先進(jìn)行聲明是一種良好的編程習(xí)慣。在JScript中,變量聲明要用到var語句。3數(shù)據(jù)類型
JScript有六種數(shù)據(jù)類型(見教材表5.6)。
在JScript中,變量在技術(shù)上沒有固定的類型,但具有與其包含的值的類型等價(jià)的類型。4運(yùn)算符
Jscript的運(yùn)算符如教材表2.7所示。
5數(shù)組
在JScript中,可以用new運(yùn)算符和Array()構(gòu)造函數(shù)來創(chuàng)建數(shù)組。
當(dāng)創(chuàng)建數(shù)組時(shí),Jscript將在該數(shù)組中包括一個(gè)只寫的length屬性,用來記錄數(shù)組中的項(xiàng)數(shù)。
創(chuàng)建數(shù)組后,可以用方括號(hào)[]來訪問數(shù)組中的單個(gè)元素。6控制結(jié)構(gòu)
Jscript支持if和if…else條件語句。
JScript支持條件運(yùn)算。條件運(yùn)算在待測條件后用一個(gè)問號(hào)并指定兩個(gè)可選項(xiàng),一個(gè)可選項(xiàng)在條件滿足時(shí)使用,另一個(gè)在條件不滿足時(shí)使用,選項(xiàng)間用冒號(hào)隔開。
JScript支持for循環(huán)、for…in循環(huán)、while循環(huán)和do…while循環(huán)。7函數(shù)
在JScript中,可以用function語句來創(chuàng)建自己的函數(shù)。
8復(fù)制、傳遞和比較數(shù)據(jù)
9特殊字符
JScript提供了一些特殊字符(見教材表5.9),允許在字符串中包括一些無法直接鍵人的字符。每個(gè)特殊字符都以反斜杠開始。反斜杠是一個(gè)轉(zhuǎn)義字符,表示緊隨其后的字符是特殊字符。10固有對(duì)象
JScript提供了九個(gè)固有對(duì)象(教材表5.10),每個(gè)固有對(duì)象都有與之關(guān)聯(lián)的方法和屬性。第六章Web數(shù)據(jù)庫的使用 第六章Web數(shù)據(jù)庫的使用6.1Web數(shù)據(jù)庫的概述6.2ODBC的安裝設(shè)置 6.3ADO概述 6.4Connection對(duì)象 6.5Command對(duì)象 第六章Web數(shù)據(jù)庫的使用6.6Recordset對(duì)象 6.7Field對(duì)象和Fields數(shù)據(jù)集合6.8Properies數(shù)據(jù)集合和Property對(duì)象6.9Parameters數(shù)據(jù)集合與Parameter對(duì)象6.10Errors數(shù)據(jù)集合和Error對(duì)象 6.1Web數(shù)據(jù)庫的概述
數(shù)據(jù)庫是管理信息的常規(guī)方法,它可以處理各種各樣的信息、試驗(yàn)數(shù)據(jù)、銷售總結(jié)、業(yè)務(wù)記錄、人事檔案和顧客要求等等。隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,基于Internet/Intranet的瀏覽器/服務(wù)器結(jié)構(gòu)的管理信息系統(tǒng)應(yīng)運(yùn)而生
。
要開發(fā)基于Internet/Intranet的瀏覽器/服務(wù)器結(jié)構(gòu)的管理信息系統(tǒng),首先要解決的就是如何實(shí)現(xiàn)網(wǎng)頁與數(shù)據(jù)庫的連接和集成,實(shí)現(xiàn)這個(gè)目的,一般有下面三種方法:(1)CGI的方法;(2)Web通過處理器與數(shù)據(jù)庫進(jìn)行連接;(3)采用集成了ODBC接口功能的Web服務(wù)器?,F(xiàn)在采用的方式絕大多數(shù)都是用第三種方式。
對(duì)于一個(gè)ASP程序而言,它通常是通過ADO層或ODBC接口來訪問數(shù)據(jù)庫的。ASP對(duì)數(shù)據(jù)庫的整個(gè)訪問過程是這樣:客戶端的瀏覽器向Web服務(wù)器提出ASP頁面文件請(qǐng)求(包括數(shù)據(jù)庫的操作),服務(wù)器將把該頁面由ASP.DLL文件進(jìn)行解釋,并在服務(wù)器端運(yùn)行,完成數(shù)據(jù)庫的操作,再把數(shù)據(jù)庫操作的結(jié)果生成動(dòng)態(tài)的網(wǎng)頁返回給瀏覽器,瀏覽器再將該網(wǎng)頁內(nèi)容顯示在客戶端。
6.2ODBC的安裝設(shè)置
本節(jié)主要介紹如何建立一個(gè)與已有數(shù)據(jù)庫連接的DSN(DataSourceName),其中DSN表示應(yīng)用程序和指定數(shù)據(jù)庫的連接信息。(請(qǐng)參考書6.2
)6.3ADO概述
ASP對(duì)數(shù)據(jù)庫的訪問是可以通過ADO模式來實(shí)現(xiàn)。ADO對(duì)象給開發(fā)人員提供了一種快捷、簡單、高效的數(shù)據(jù)庫訪問方法,ADO可以包含在腳本中來產(chǎn)生對(duì)數(shù)據(jù)庫的連接,并從數(shù)據(jù)庫表中讀取記錄,形成實(shí)際要使用的對(duì)象集合。而且,對(duì)數(shù)據(jù)資源,如數(shù)據(jù)庫,ADO提供了應(yīng)用程序一級(jí)的界面。
ADO對(duì)象主要是由Connection對(duì)象、Command對(duì)象、Parameter對(duì)象、Recordset對(duì)象、Field對(duì)象、Property對(duì)象、Error對(duì)象等七個(gè)對(duì)象,以及Fields數(shù)據(jù)集合、Properties數(shù)據(jù)集合、Parameters數(shù)據(jù)集合、Error數(shù)據(jù)集合等四個(gè)數(shù)據(jù)集合所組成。在介紹ADO的七個(gè)對(duì)象和四個(gè)數(shù)據(jù)集合后,下面將用圖表的關(guān)系來介紹一下。
6.4Connection對(duì)象
在ASP中,Connection對(duì)象是網(wǎng)頁通過ADO存取數(shù)據(jù)庫的關(guān)鍵,Connection對(duì)象負(fù)責(zé)與數(shù)據(jù)庫實(shí)際的連接動(dòng)作,其它的對(duì)象都是必須依賴與Connection對(duì)象的連接才能發(fā)揮其特有的功能。
Connection對(duì)象代表與數(shù)據(jù)源進(jìn)行的唯一會(huì)話。
在成功安裝ASP與Web服務(wù)器后,就可以使用ASPServer對(duì)象的CreateObject方法來創(chuàng)建Connection對(duì)象,語法如下:SetConn=Server.CreateObject(“ADODB.Connect”)Connection對(duì)象的方法包括:Open、Execute、Close、Cancel、Save、BeginTrans、CommitTrans、RollbackTrans等方法。(請(qǐng)參考書6.4)
Connection對(duì)象的屬性包括Attributes、CommandTimeout、ConnectionString、ConnectionTimeout、CursorLocation、DefaultDatabase、IsolationLevel、Mode、Provider、State、Version等屬性。
Connection對(duì)象提供Properties、
Errors兩種數(shù)據(jù)集合。前者表示Connection對(duì)象運(yùn)行是最近一次的錯(cuò)誤或警告信息,后者表示Connection對(duì)象所定義的相關(guān)屬性。
6.5Command對(duì)象
Command對(duì)象負(fù)責(zé)對(duì)數(shù)據(jù)庫提供請(qǐng)求,也就是傳遞指定的SQL命令。使用Command對(duì)象可以查詢數(shù)據(jù)庫并返回Recordset對(duì)象中的記錄,以便執(zhí)行大量操作或處理數(shù)據(jù)庫結(jié)構(gòu)。使用該對(duì)象不僅能夠?qū)σ话愕臄?shù)據(jù)庫信息進(jìn)行操作,還因?yàn)閷?duì)象可以帶輸入、輸出參數(shù),從而可以完成對(duì)數(shù)據(jù)庫存貯過程的調(diào)用。Command對(duì)象可以使用Execute方法來執(zhí)行SQL語句或?qū)?shù)據(jù)庫存儲(chǔ)過程的調(diào)用,或創(chuàng)建一個(gè)RecordSet對(duì)象。
Command對(duì)象還包括一個(gè)Parameter集合,使用該集合,可以將數(shù)據(jù)庫存儲(chǔ)過程的參數(shù)與集合中各項(xiàng)元素相對(duì)應(yīng),而且存儲(chǔ)過程的輸出值也作為一個(gè)參數(shù)被包含在Parameter集合中,從而簡化對(duì)存儲(chǔ)過程的調(diào)用。
Command對(duì)象所提供的屬性包括Name、ActiveConnection、CommandText、State、
CommandType、CommandTimeout、Prepared等屬性。
Command對(duì)象提供了Execute
、CreateParameter等方法。(請(qǐng)參考書6.5。)6.6Recordset對(duì)象
Recordset對(duì)象表示的是來自基本表或命令執(zhí)行結(jié)果的記錄全集。任何時(shí)候該對(duì)象所指的當(dāng)前記錄均為集合內(nèi)的單個(gè)記錄。也就是說,該對(duì)象負(fù)責(zé)瀏覽和操作從數(shù)據(jù)庫中取出的數(shù)據(jù),該對(duì)象就像一個(gè)二維數(shù)組,數(shù)組的每一列表示數(shù)據(jù)庫中的一個(gè)數(shù)據(jù)列,而同時(shí)每個(gè)數(shù)據(jù)列包含多個(gè)字段,每個(gè)數(shù)據(jù)字段就表示一個(gè)Field對(duì)象。
Recordset對(duì)象中一共有:Open、Close、Movefirst、MoveLast、MoveNext、Move、
MovePrevious、Update、AddNew、Delete、NextRecordset、CancelBatch、CancelUpdate、GetRows、Requery、Resync、Cupports、UpdateBatch
、
Close等方法。
Recordset對(duì)象屬性同樣很多,包括了ActiveConnection、Source、CursorLocation、CurSorType、LockType、RecordCount、BOF、EOF、PageCount、PageSize、State、
AbsolutePage、AbsolutePosition、Bookmark、EditMode、Filter、MaxRecords、CacheSize、Status等。
(請(qǐng)參考書6.6)6.7Field對(duì)象和Fields數(shù)據(jù)集合
Field對(duì)象代表使用普通數(shù)據(jù)類型的數(shù)據(jù)的列。前面介紹的Recordset對(duì)象,就包含有由Field對(duì)象組成的Fields集合,每個(gè)Field對(duì)象對(duì)應(yīng)于Recordset中的一列。使用Field對(duì)象的Value屬性可設(shè)置或返回當(dāng)前記錄的數(shù)據(jù)。
Fields數(shù)據(jù)集合與其它數(shù)據(jù)集合一樣,都有屬于自己的方法與屬性,有時(shí)候也稱為Field數(shù)據(jù)集合對(duì)象。Fields數(shù)據(jù)集合提供的方法和屬性包括Count屬性、Refresh方法、Item方法。
Field對(duì)象屬性包括Name、Value、Type、Attribute、NumericScale、Precision、ActualSize、DefinedSize、OriginalValue、UnderlyingValue等屬性。方法包括GetChunk
、
AppendChunk等。6.8Properies數(shù)據(jù)集合和Property對(duì)象
Property對(duì)象代表由提供者定義的ADO對(duì)象的動(dòng)態(tài)特征,動(dòng)態(tài)屬性由基本的數(shù)據(jù)提供者定義,并出現(xiàn)在相應(yīng)的ADO對(duì)象(如Connect對(duì)象、Command對(duì)象、Field對(duì)象、Recordset對(duì)象)的Properties集合中。語法如下:Setproperties=ADO對(duì)象.PropertiesProperties集合是包含特定對(duì)象實(shí)例的所有
Property對(duì)象,有時(shí)候也稱為Properties數(shù)據(jù)集合對(duì)象。包括Count屬性、Refresh方法、Item方法等。
Property對(duì)象主要是用來記錄相應(yīng)ADO對(duì)象的每一項(xiàng)屬性值,包括了Name屬性、Value屬性、Type屬性、Attributes屬性等。
6.9Parameters數(shù)據(jù)集合與Parameter對(duì)象
在前面介紹Command對(duì)象時(shí),知道Command對(duì)象是通過Parameter對(duì)象來傳遞一個(gè)參數(shù),而Parameters數(shù)據(jù)集合則是Command對(duì)象所有Parameter對(duì)象的集合。也可以說,Parameter對(duì)象是代表與基于參數(shù)化查詢或存儲(chǔ)過程的Command對(duì)象相關(guān)聯(lián)的參數(shù)或自變量。Parameters集合是由Parameter對(duì)象組成的。該集合包括Count屬性、Append方法、Delete方法、Refresh方法、Item方法。
Parameter對(duì)象負(fù)責(zé)記錄程序中要傳遞參數(shù)的相關(guān)屬性,Parameter對(duì)象提供了Name屬性、Value屬性、Type屬性、Attribute屬性等。
6.10Errors數(shù)據(jù)集合和Error對(duì)象
在ADO關(guān)系圖中,知道通過Errors數(shù)據(jù)集合,取得系統(tǒng)運(yùn)行時(shí)發(fā)生的錯(cuò)誤或警告信息,從而使程序更加完善。任何涉及ADO對(duì)象的操作都會(huì)生成一個(gè)或多個(gè)提供者錯(cuò)誤。每個(gè)錯(cuò)誤出現(xiàn)時(shí),一個(gè)或多個(gè)Error對(duì)象將被放到Connection對(duì)象的Errors集合中。
如果是通過直接建立Connection對(duì)象來使用,可以直接通過Connection對(duì)象的Errors數(shù)據(jù)集合取得Error對(duì)象。如果是通過建立Recordset對(duì)象或Command對(duì)象,在通過ActiveConnection屬性來使用Connection對(duì)象時(shí),則必須通過Recordset對(duì)象或Command對(duì)象的ActiveConnection屬性來取得Error對(duì)象。語法如下:SetErr=Connection.ErrorsSetErr=Recordset.ActiveConnection.ErrorsSetErr=Command.ActiveConnection.ErrorsErrors數(shù)據(jù)集合,也稱Errors數(shù)據(jù)集合對(duì)象,包含在響應(yīng)涉及提供者的單個(gè)失敗時(shí)產(chǎn)生的所有Error對(duì)象。包括Count屬性、Clear方法、Item方法。
Error對(duì)象是負(fù)責(zé)記錄存儲(chǔ)一個(gè)系統(tǒng)運(yùn)行時(shí)發(fā)生的錯(cuò)誤或警告。Error對(duì)象提供了Desription、Number、Source、NativeError、SQLState、HelpContext、HelpFile等屬性。
第七章
數(shù)據(jù)庫的訪問
第七章
數(shù)據(jù)庫的訪問
7.1常用的SQL命令 7.2數(shù)據(jù)庫的連接 7.3數(shù)據(jù)的查詢控制 7.4數(shù)據(jù)的添加和刪除7.5數(shù)據(jù)的修改 7.6調(diào)用數(shù)據(jù)庫的存儲(chǔ)過程
本章將進(jìn)一步介紹如何進(jìn)行Web數(shù)據(jù)庫的訪問操作,下面將ADO存取數(shù)據(jù)源的數(shù)據(jù)的一般流程表示為如圖:
7.1常用的SQL命令
SQL是StrucuredQueryLanguage的縮寫,也就是常說的結(jié)構(gòu)化查詢語言。使用SQL可以實(shí)現(xiàn)下面的功能:
(1)修改表結(jié)構(gòu);
(2)查詢表中的數(shù)據(jù)信息;
(3)添加、刪除數(shù)據(jù)庫中的數(shù)據(jù)內(nèi)容;
(4)修改數(shù)據(jù)庫中的數(shù)據(jù)記錄。1修改表結(jié)構(gòu)
在ASP中,可以通過使用SQL語句來修改現(xiàn)有的表結(jié)構(gòu)。
修改表結(jié)構(gòu)的SQL命令是ALTERTABLE,該命令可以實(shí)現(xiàn)兩種形式的修改:在原有的表中添加一個(gè)或多個(gè)列;修改原表中已有列的屬性。
語法如下:ALTERTABLE表名ADD列名數(shù)據(jù)類型|MODIFY列名數(shù)據(jù)類型;
其中ADD表示添加新列,MODIFY表示修改已有的列。2查詢表中的數(shù)據(jù)信息
“查詢”是數(shù)據(jù)庫應(yīng)用開發(fā)中最常用的操作,在SQL中,查詢操作是通過Select語句來完成的,最簡單的Select語句如下:
Select<列名>From表名Select語句還具有篩選的功能,即可以有選擇地輸出表中的記錄,方法是在Select語句后面加上Where子句,加上篩選的條件。
同時(shí),Select語句還提供了OrderBy子句,通過使用該字句,可以改變輸出結(jié)果的排序方式,語法如下:Select<列名>From表名Where條件OrderBy<列1>,<列1>…3添加、刪除數(shù)據(jù)庫中數(shù)據(jù)
在實(shí)際操作中,程序往往要將新記錄數(shù)據(jù)添加到數(shù)據(jù)庫中,這時(shí)就要使用SQL語句中Insert語句進(jìn)行數(shù)據(jù)的插入操作。程序除了要添加記錄,往往還要把某些記錄從數(shù)據(jù)庫中刪除,這時(shí)就要使用SQL語句中的Delete語句。
Insert語句有兩種方法,語法如下:InsertInto表名<列1,列2…>VALUES<值1,值2…>或InsertInto表1名<列1,列2…>Select<列1,列2…>From表2名Where條件
其中前一種是Insert命令的基本形式,它將值1、值2等值分別賦值給列1、列2,并為表添加一條新的數(shù)據(jù)記錄,只適用于少數(shù)記錄的添加,對(duì)于大批量的數(shù)據(jù)輸入,則是很不適合的。這時(shí),就要使用第二種方法,這種命令格式可以將一個(gè)或多個(gè)表的記錄輸入到另一個(gè)表中。
Delete語句的語法如下:DeleteFrom表名Where條件
要注意的是,如果沒有在Delete語句中加上Where條件,則該語句將刪除所有的記錄,這一點(diǎn)需要特別注意。
4修改數(shù)據(jù)庫中的數(shù)據(jù)記錄
在使用過程中,有些數(shù)據(jù)記錄需要進(jìn)行修改,這時(shí)就可以使用SQL中的Update命令,進(jìn)行修改數(shù)據(jù)庫的記錄,語法如下:Update表名Set列1=值1,列2=值2……Where條件7.2數(shù)據(jù)庫的連接
數(shù)據(jù)庫訪問操作的第一步是數(shù)據(jù)庫的連接。主要分下面幾種方法:
(1)設(shè)置ODBC的方法來連接數(shù)據(jù)庫
(2)直接指定ODBC驅(qū)動(dòng)程序來連接數(shù)據(jù)庫
(3)設(shè)置Connection對(duì)象的Provider屬性來設(shè)置連接信息
(4)設(shè)置ActiveConnection參數(shù),完成對(duì)數(shù)據(jù)源連接的設(shè)置
7.3數(shù)據(jù)的查詢控制
數(shù)據(jù)庫在網(wǎng)絡(luò)中的應(yīng)用,主要集中在數(shù)據(jù)的查詢操作上。數(shù)據(jù)的查詢主要是利用ADO對(duì)象中的Connection對(duì)象和Recordset對(duì)象。數(shù)據(jù)的查詢主要通過使用SQL語句中的Select語句,采用了Select語句對(duì)表進(jìn)行了篩選,然后得到了所要的數(shù)據(jù)結(jié)果。
當(dāng)查詢結(jié)果得到的數(shù)據(jù)記錄很大的時(shí)候,就有些不適用了,如隨著數(shù)據(jù)記錄數(shù)量的增加,從服務(wù)器傳遞到客戶機(jī)的時(shí)間就會(huì)增加,可能發(fā)生數(shù)據(jù)傳遞超時(shí)而中斷的現(xiàn)象,同時(shí)對(duì)服務(wù)器也會(huì)產(chǎn)生一些不好的后果,如增加服務(wù)器的負(fù)載等。
本節(jié)主要介紹兩種方法:一種是通過Session對(duì)象的特性,讓查詢程序以一頁或一條為單位進(jìn)行查詢操作,主要利用Recordset對(duì)象的AbsolutePosition屬性來記錄數(shù)據(jù)指針的位置;另一種則主要是利用Recordset對(duì)象的PageSize屬性來控制每一頁所要顯示的數(shù)據(jù)記錄條數(shù),當(dāng)然其間也用到了Session對(duì)象和Recordset對(duì)象的AbsolutePosition屬性。7.4數(shù)據(jù)的添加和刪除
添加數(shù)據(jù)記錄方法很多,這里主要介紹兩種:一種是利用SQL語句中的Insert命令來添加數(shù)據(jù)記錄;另一種是利用ADO對(duì)象之一的Recordset對(duì)象的AddNew方法來添加數(shù)據(jù)記錄。
數(shù)據(jù)的刪除也存在兩種方式:一種就是運(yùn)行SQL語句中的Delete命令來刪除表中的數(shù)據(jù)記錄;另一種就是利用Recordset對(duì)象中的Delete方法來刪除數(shù)據(jù)。7.5數(shù)據(jù)的修改
數(shù)據(jù)的修改也可以有相似的兩種方法:一種就是利用SQL語句中的Update命令來修改表中的數(shù)據(jù)記錄;另一種也是利用Recordset對(duì)象的Update或UpdateBatch方法來完成數(shù)據(jù)的修改。7.6調(diào)用數(shù)據(jù)庫的存儲(chǔ)過程
存儲(chǔ)過程是大型數(shù)據(jù)庫的一個(gè)重要概念。存儲(chǔ)過程(StoredProcedure)有時(shí)也稱為存儲(chǔ)查詢(StoredQuery),是存儲(chǔ)在數(shù)據(jù)庫中的一組預(yù)先定義的SQL語句集合,在存儲(chǔ)過程中不僅可以包括標(biāo)準(zhǔn)的SQL語句,還可以包含輸入和輸出參數(shù)。因此在更一般意義上講,存儲(chǔ)過程相當(dāng)于對(duì)一個(gè)數(shù)據(jù)庫進(jìn)行操作的子程序,如果靈活運(yùn)用,則可以完成很多復(fù)雜的功能。存儲(chǔ)過程具有以下優(yōu)點(diǎn):
(1)存儲(chǔ)過程在執(zhí)行速度上要快得多;(2) 存儲(chǔ)過程減少了對(duì)磁盤的訪問;(3) 存儲(chǔ)過程允許被嵌套調(diào)用;(4) 提高數(shù)據(jù)的安全性;(5) 使用存儲(chǔ)過程可以減輕網(wǎng)絡(luò)的通信流量;(6) 存儲(chǔ)過程可以帶有輸入輸出參數(shù),可以利用它返回一個(gè)數(shù)據(jù)集合或其它類型的結(jié)果1創(chuàng)建存儲(chǔ)過程
創(chuàng)建存儲(chǔ)過程使用的是一種被稱為數(shù)據(jù)定義語言(DDL)的命令,該命令對(duì)SQL的擴(kuò)展。存儲(chǔ)過程可以包含多條Transact-SQL語句,而Transact-SQL對(duì)使用
MicrosoftSQLServer非常重要,與SQLServer通訊的所有應(yīng)用程序都通過向服務(wù)器發(fā)送Transact-SQL語句來進(jìn)行通訊。
可使用
Transact-SQL語句
CREATEPROCEDURE創(chuàng)建存儲(chǔ)過程。創(chuàng)建存儲(chǔ)過程前,請(qǐng)考慮下列事項(xiàng):
(1) 不能將該語句與其它SQL語句組合到單個(gè)批處理中;(2) 創(chuàng)建存儲(chǔ)過程的權(quán)限默認(rèn)屬于數(shù)據(jù)庫所有者;(3) 存儲(chǔ)過程是數(shù)據(jù)庫對(duì)象;(4)
只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)過程。而且,在創(chuàng)建存儲(chǔ)過程時(shí),還應(yīng)指定:(l) 所有輸入?yún)?shù)和向調(diào)用過程或批處理返回的輸出參數(shù);(2) 執(zhí)行數(shù)據(jù)庫操作(包括調(diào)用其它過程)的編程語句;(3) 返回至調(diào)用過程或批處理以表明成功或失?。ㄒ约笆≡颍┑臓顟B(tài)值。創(chuàng)建存儲(chǔ)過程的語法如下:CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[...n]各個(gè)參數(shù)的意義的意義請(qǐng)參考書7.6.1。2.在SQLServer中創(chuàng)建存儲(chǔ)過程
由于在ASP應(yīng)用開發(fā)中最常用的大型數(shù)據(jù)庫是SQLSever,這里將介紹SQLServer2000如何創(chuàng)建存儲(chǔ)過程。需注意的是SQLServer一般是安裝在NT環(huán)境。3在ASP中調(diào)用存儲(chǔ)過程
在ASP中,調(diào)用存儲(chǔ)過程的方法主要有兩種:一種是通過Connection對(duì)象來執(zhí)行存儲(chǔ)過程,另一種是通過Command對(duì)象來執(zhí)行存儲(chǔ)過程。第八章用VisualInterDev編寫調(diào)試腳本第八章用VisualInterDev編寫調(diào)試腳本8.1VisualInterDev使用基礎(chǔ) 8.2建立Web工程 8.3建立Web頁 8.4客戶端腳本 8.5服務(wù)器端腳本VisualInterDev是Microsoft公司推出的一個(gè)功能強(qiáng)大的用于在Internet/Intranet領(lǐng)域建立和維護(hù)動(dòng)態(tài)Web站點(diǎn)的軟件,是快速設(shè)計(jì)、建立和調(diào)試Web應(yīng)用程序的可視化編程環(huán)境。使用VisualInterDev,既可編寫客戶端腳本,也可編寫服務(wù)器端腳本。8.1VisualInterDev使用基礎(chǔ)
1VisualInterDev主要特點(diǎn) 網(wǎng)頁設(shè)計(jì)器
站點(diǎn)設(shè)計(jì)器
CSS編輯器
功能強(qiáng)大的調(diào)試器
數(shù)據(jù)庫集成
動(dòng)態(tài)HTML
協(xié)作開發(fā)2開發(fā)環(huán)境和工作模式
開發(fā)環(huán)境:
每臺(tái)工作站都要安裝一份VisualInterDev或MicrosoftFrontPage。開發(fā)者可以在各自工作站上建立本地Web(LocalWeb)進(jìn)行開發(fā),從宿主Web(MasterWeb)中獲取文件,拷貝到本地Web中。另外,每臺(tái)工作站上應(yīng)安裝一份IIS或PWS,以便開發(fā)者在本機(jī)上測試和調(diào)試應(yīng)用程序。工作模式
宿主模式(MasterMode)
本地模式(LocalMode)
脫機(jī)模式(OfflineMode)3VisualInterDev用戶界面
如上圖所示,其中包括標(biāo)題欄、菜單欄、網(wǎng)頁編輯器、工具箱、工程瀏覽器和屬性窗口等部分。
網(wǎng)頁編輯器
工具箱
屬性窗口
工程瀏覽器8.2建立Web工程
建立一個(gè)工程需要五步:①命名工程;②指定服務(wù)器和工作模式;③指定Web;④選擇一種布局;⑤選擇一種主題。建立工程后,如果要更改工作模式,請(qǐng)從“Project”菜單指向“WebProject”子菜單,再選擇“WorkingMode”子菜單的“Local”、“Master”或“WorkOffline”命令。8.3建立Web頁
1添加新頁面
2設(shè)置頁面屬性
Web頁面都有一些通用屬性,如頁面標(biāo)題、背景圖像及顏色等。要設(shè)置這些屬性,在網(wǎng)頁編輯器中打開待設(shè)置屬性的頁面,然后在屬性窗口的對(duì)象框中選擇“DOCUMENT”,再單擊屬性窗口的“PropertyPages”按鈕,打開“Properties”對(duì)話框。3文本與列表
文本輸入及格式化:在頁面編輯器中,可以直接輸入文本并用HTML工具欄來設(shè)置文本的格式,如標(biāo)題、字體、字體號(hào)、粗體、斜體、下劃線、上下標(biāo)、顏色及對(duì)齊方式列表:在VisualInterDev中,可以建立五種列表,即無序列表、有序列表、目錄列表、菜單列表和定義列表。4滾動(dòng)文本
滾動(dòng)文本是指可在網(wǎng)頁的指定區(qū)域循環(huán)往復(fù)滾動(dòng)的字符串。插入滾動(dòng)文本的方法是:
⑴將光標(biāo)移到待插入滾動(dòng)文本的位置。
⑵選擇“HTML”菜單的“Marquee”命令,網(wǎng)頁編輯器中出現(xiàn)一個(gè)矩形區(qū)域。
⑶輸入要滾動(dòng)的文本,并通過HTML工具欄對(duì)文本進(jìn)行格式化處理。5超級(jí)鏈接
超級(jí)鏈接是從文本或圖像指向另一頁面或其它類型文件的鏈接。每個(gè)超級(jí)鏈接包含兩個(gè)端點(diǎn)(也稱錨)和一個(gè)方向。超級(jí)鏈接由開始端點(diǎn)(稱源錨)指向目標(biāo)端點(diǎn)(稱目標(biāo)錨)。目標(biāo)錨可以是任意的網(wǎng)絡(luò)資源,而源錨通常是頁面中的文本或圖像。6書簽
書簽是頁面中一個(gè)預(yù)定義的位置,它可以作為同一頁面或其它頁面中超級(jí)鏈接的目標(biāo)錨。當(dāng)在瀏覽器單擊指向書簽的超級(jí)鏈接時(shí),瀏覽器不僅會(huì)加載相應(yīng)的頁面,而且會(huì)自動(dòng)滾動(dòng)到書簽的位置。7插入圖像
網(wǎng)頁上常用的圖像格式有GIF、JPEG和PNG。GIF是交錯(cuò)圖形格式,使用非常高效的無損壓縮。交錯(cuò)圖片的特點(diǎn)是只要一半的顯示時(shí)間便可大致看出全貌。JPEG是有損壓縮的靜態(tài)圖像文件格式,特點(diǎn)是壓縮比非常高并支持真彩色圖像。PNG采用無損壓縮來保存圖片,產(chǎn)生的文件比GIF小,支持真彩色圖像。8表格
表格由多個(gè)方框組成,這些方框排成若干行和列。每個(gè)方框稱為單元格,在單元格中可以填入文字、圖像和超級(jí)鏈接等。9表單
表單是用來輸入信息的區(qū)域。方法是:
⑴將光標(biāo)移到合適的位置。
⑵選擇“HTML”菜單的“Form”命令,在頁面中插入一個(gè)表單。
⑶根據(jù)需要從工具箱的“HTML”選項(xiàng)卡中把表單元素拖放到頁面中。
⑷設(shè)置表單及表單元素的屬性。10文檔大綱
文檔大綱以層次結(jié)構(gòu)形式顯示了當(dāng)前頁面中的所有HTML元素和對(duì)象。在文檔大綱中選擇一個(gè)HTML元素或?qū)ο?,就可以在網(wǎng)頁編輯器中將光標(biāo)迅速移到相應(yīng)的位置。8.4客戶端腳本
客戶端腳本是嵌在網(wǎng)頁中的一段程序,是由瀏覽器進(jìn)行解釋執(zhí)行的??蛻舳四_本能夠?yàn)橛脩籼峁└嗟慕换バ浴@?,在將表單?nèi)容發(fā)送給服務(wù)器之前,可以用客戶端腳本來驗(yàn)證內(nèi)容的合法性,這樣不需要連接服務(wù)器就能使用戶得到及時(shí)的反饋。1設(shè)置腳本語言
客戶端腳本可以用VBScript來編寫,也可用JavaScript來編寫。VisualInterDev默認(rèn)將腳本語言設(shè)為JavaScript。如果要將腳本語言設(shè)為VBScript,請(qǐng)?jiān)凇癈lient”框中選擇VBScript。
2事件處理
網(wǎng)頁上的每個(gè)元素都是一個(gè)對(duì)象。對(duì)象具有自己的屬性、方法和事件。事件是能被對(duì)象識(shí)別的操作??蛻舳四_本可以處理由網(wǎng)頁上的元素產(chǎn)生的事件。當(dāng)事件由系統(tǒng)或用戶觸發(fā)時(shí),對(duì)象就會(huì)對(duì)事件做出響應(yīng)。響應(yīng)某個(gè)事件后執(zhí)行的操作是通過一段代碼來實(shí)現(xiàn)的,這段代碼稱為事件處理函數(shù)。3腳本大綱
Visual1nterDeV提供了一個(gè)腳本大綱來幫助開發(fā)人員編寫事件處理函數(shù),腳本大綱按層次結(jié)構(gòu)顯示了網(wǎng)頁中的所有的對(duì)象、事件和腳本。4樣式屬性
要在腳本中訪問元素的樣式屬性,需借助style這個(gè)輔助對(duì)象才能實(shí)現(xiàn)。8.5服務(wù)器端腳
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖北省定向?qū)ν饨?jīng)濟(jì)貿(mào)易大學(xué)選調(diào)生招錄備考題庫附答案
- 2026湖南益陽市桃江縣中醫(yī)醫(yī)院招聘編外勞務(wù)派遣人員5人參考題庫附答案
- 2026甘肅慶陽華池縣教育事業(yè)單位引進(jìn)高層次和急需緊缺人才15人備考題庫附答案
- 2026福建省面向北京交通大學(xué)選調(diào)生選拔工作備考題庫附答案
- 2026福建福州市鼓樓區(qū)司法局專職人民調(diào)解員招聘2人備考題庫附答案
- 2026西藏日喀則市亞東縣糧食公司人員招聘1人備考題庫附答案
- 2026貴州龍辰(集團(tuán))電氣有限公司招聘3人參考題庫附答案
- 2026重慶奉節(jié)縣竹園鎮(zhèn)人民政府公益崗招聘7人考試備考題庫附答案
- 2026陜西省選調(diào)生招錄考試已發(fā)布備考題庫附答案
- 2026青海西寧市湟源縣水務(wù)發(fā)展(集團(tuán))有限責(zé)任公司招聘8人參考題庫附答案
- 2025年新能源停車場建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年物業(yè)管理中心工作總結(jié)及2026年工作計(jì)劃
- 創(chuàng)傷性脾破裂的護(hù)理
- 蓬深102井鉆井工程(重新報(bào)批)項(xiàng)目環(huán)境影響報(bào)告表
- 馬路切割承包協(xié)議書
- 大模型金融領(lǐng)域可信應(yīng)用參考框架
- (新教材)2025年人教版七年級(jí)上冊歷史期末復(fù)習(xí)??贾R(shí)點(diǎn)梳理復(fù)習(xí)提綱(教師版)
- 學(xué)??剌z保學(xué)工作流程及四書一表一單
- 塔吊拆除應(yīng)急預(yù)案
- 中國全色盲診療專家共識(shí)2026
- 20052-2024電力變壓器能效限定值及能效等級(jí)
評(píng)論
0/150
提交評(píng)論