




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP程式設計第一章ASP簡介第一章ASP簡介1.1什麼是ASP1.2ASP的工作平臺1.3創建ASP頁1.1什麼是ASPASP是ActiveServerPages的簡稱,是伺服器端腳本編寫環境,使用它可以創建和運行動態、交互的
Web伺服器應用程式。使用
ASP可以組合
HTML頁、腳本命令和
ActiveX組件以創建交互的
Web頁和基於Web的功能強大的應用程式。ASP可用來創建動態
Web頁或生成功能強大的
Web應用程式。
1.2ASP的工作平臺
一般來說,ASP程式可以在Windows9x/NT/2000等操作系統下運行.本節將以windows98為例解釋一下安裝TCP/IP網路通訊協議、Web伺服器及ASP軟體。1.3創建ASP頁ActiveServerPages(ASP)檔是以.asp為擴展名的文本檔,這個文本檔可以包括下列部分的任意組合:
文本,HTML標記,
ASP腳本命令。第二章Web頁面製作基礎第二章Web頁面製作基礎2.1HTML語言概述 2.2製作表單 2.3框架結構 2.1HTML語言概述 HTML是超文本標記語言(HyperTextMarkupLanguage)的縮寫。
HTML檔的開頭和結尾由<HTML>和</HTML>來標記的。所有HTML檔都可以分為兩個部分:標題和正文。每一部分用特定的標記標出:在HTML語言中規定<HEAD>和</HEDAD>標記標題部分,用<BODY>和</BODY>標記正文部分。
下麵就給出了HTML檔的基本格式:<HTML><HEAD>
標題部分
</HEAD>
<BODY>
正文部分
</BODY></HTML>2.2製作表單
表單是用戶和Web應用程式、Web資料庫等進行交互的介面。 表單由兩個部分組成:HTML代碼和CGI程式。其中HTML代碼主要用來生成表單的可視化介面,CGI程式主要用來負責對表單所包含的資訊進行解釋或處理,在本書中CGI程式主要用ASP構成。
在HTML中,表單一般有如下的結構:
<FORMACTION=“…”METHOD=“…”>…<INPUT>……<SELECT>…</SELECT>…<TEXTAREA>…</TEXTAREA>…</FORM>2.3框架結構
在HTML中,為解決網頁的框架結構,引入了框架標記。使用框架標記,就可以在一個螢幕上多開幾個窗口,在每個不同多窗口顯示不同的HTML檔。
含有框架結構的網頁其HTML的形式和一般的HTML檔相似,只是用FRAMESET代替BODY標記。框架結構有開始和結束標記,框架所有內容都應該在<FRAMESET>和</FRAMESET>之間。FRAMESET標記內使用另一個標記符合<FRAME>來指定框架中每個小(子)窗口的內容。
其具體格式如下:
<HTML> <HEAD>
… </HEAD> <FRAMESET> <FRAME>
… </FRAMESET></HTML>
下麵以一個例子介紹:<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內置對象第三章ASP內置對象3.1Request對象 3.2Response對象 3.3Sever對象 3.4Session對象 3.5Application對象 3.6ObjectContext對象
本章將介紹ASP本身所提供的對象,稱為ASP內置對象,包括Request對象、Response對象、Server對象、
Session對象、Application對象及ObjectContext對象。 這些對象都有其特別的任務與工作,在詳細說明之前,下麵先簡單地說明每個內置對象的功能,然後再將這些對象分六個小節進行介紹。對
象
名
稱對
象
功
能Request對象負責從用戶端接收資訊。Response對象負責傳送資訊給用戶。Sever對象負責控制ASP的運行環境。Session對象負責存儲個別用戶的資訊,以便重複使用。Application對象負責存儲數據以供多個用戶使用。ObjectContext對象可供ASP程式直接配合MTS進行分散式的事務處理。3.1Request對象 Request對象通常包括了用戶端的相關資訊,如流覽器的種類、表頭資訊、表單參數及cookies等等。而Response對象則是包含Web伺服器所要回應給用戶的各項資訊。
Request對象的語法描述如下
:Request[.collection|property|method](variable)
其中collection表示Request對象的集合,property表示Request對象的屬性,method表示Request對象的方法,變數參數(variable)是一些字串,這些字串指定要從集合中檢索的專案,或作為方法或屬性的輸入。Request對象的集合如下:
集
合功
能
說
明ClientCertificate存儲發送到HTTP請求中客戶端證書中的字段值。CookiesHTTP請求中被發送的cookies的值。FormHTTP請求正文中表格元素的值。QueryStringHTTP中查詢字串中變數的值。ServerVariables預定的環境變數的值。Request對象提供BinaryRead方法,該方法是以二進位方式來讀取客戶端使用POST傳送方法所傳遞的數據。
Request對象總共提供了Form集合、
Cookies集合、
ClientCertificate集合、ServerVariables集合及
QueryString集合等。3.2Response對象
在ASP中負責將資訊傳遞給用戶的對象就是Response對象。
Response對象用於動態回應客戶端請求(Request),並將動態生成的回應結果返回到客戶端流覽器中,使用該對象可以動態創建web頁面。
Response對象的使用語法為:
其中collection表示Response對象的集合,property表示Response對象的屬性,method表示Response對象的方法。Response.collection|property|methodResponse對象的方法:方
法功
能
說
明AddHeader從名稱到值設置HTML標題。AppendToLog在該請求的Web伺服器日誌條目後添加字串。BinaryWrite將給出資訊寫入到當前HTTP輸出中,並且不進行任何字元集轉換。Clear清除任何緩衝的HTML輸出。End停止處理.asp檔並返回當前的結果。Flush立即發送緩衝的輸出。Redirect將重指示信息發送到流覽器,嘗試連接另一個URL。Write將變數作為字串寫入當前的HTTP輸出。Response對象的屬性:屬
性功
能
說
明Buffer表明頁輸出是否被緩衝。CacheControl決定代理伺服器是否能緩存ASP生成的輸出。Charset將字元集的名稱添加到內容類型標題中。ContentType指定回應的HTTP內容類型。
Expires在流覽器中緩存的頁面超時前,指定緩存的時間。ExpiresAbsolute指定流覽器上緩存頁面超時的日期和時間。IsClientConnected表明客戶端是否與伺服器斷開。Pics將PICS標記值添加到回應標題的PICS標記字段中。Status伺服器返回的狀態行的值。
Response對象只有Cookies一個數據集合。
Cookies數據集合允許將數據設置在客戶端的流覽器中。假如所指定名稱的Cookies不存在,系統會自動在客戶端的流覽器中建立新的Cookies,
3.3Sever對象Server對象提供對伺服器上的方法和屬性的訪問,其中大多數方法和屬性是作為實用程式的功能服務的。
Sever對象的使用語法為:
其中property表示Server對象的屬性,method表示Server對象的方法。Sperty|methodServer的屬性只有一個
ScriptTimeout,表示超時值,即在腳本運行超過這一時間之後作超時處理。Server對象的方法:方法描述CreateObject創建伺服器組件的實例。HTMLEncode將HTML編碼應用到指定的字串。MapPath將指定的虛擬路徑,無論是當前伺服器上的絕對路徑,還是當前頁的相對路徑,映射為物理路徑。URLEncode將URL編碼規則,包括轉義字元,應用到字串。3.4Session對象
由於網頁是一種無狀態的程式,因此無法得知用戶的流覽狀態。在ASP中,是通過Session對象記錄用戶的相關資訊,用來作為用戶再次對伺服器提供要求時作確認。要注意的是,會話狀態僅在支持Cookie的流覽器中保留。
Session對象的使用語法為:
其中collection表示Session對象的集合,property表示Session對象的屬性,method表示Session對象的方法。
Session.collection|property|methodSession對象在global.asa檔中聲明兩個事件Session_OnEnd、Session_OnStart的腳本。
Session對象對應兩個事件:Session_OnEnd、Session_OnStart。其中Session_OnStart事件對應Session對象的起始事件:每當產生一個Session對象,該事件所定義的代碼都將被啟動;Session_OnEnd事件對應Session對象的結束事件:當Session對象被終止或失效時,該事件所對應的代碼被啟動。<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>SubSession_OnStart‘事件的處理程式代碼EndSub
SubSession_OnEnd‘事件的處理程式代碼EndSub</SCRIPT>這兩個事件的代碼必須放在global.asa檔中,如下:Session對象的屬性:屬
性
名描
述CodePage將用於符號映射的代碼頁。LCID現場標識。SessionID返回用戶的會話驗證。Timeout應用程式會話狀態的超時時限,以分鐘為單位。Session對象的集合:集
合
名描
述Contents包含已用腳本命令添加到會話中的專案。StaticObjects包含通過<OBJECT>標記創建的並給定了會話作用域的對象。Session對象只提供了Abandon方法,該方法刪除所有存儲在Session對象中的對象並釋放這些對象的源。
3.5Application對象Application對象和Session對象有很多相似之處,它們的功能都是用於在不同的ASP之間共用資訊。最大的不同在於其應用的範圍:
Application對象是對所有用戶,
Session對象是對單一用戶。
Application對象的使用語法為:
其中property表示Application對象的屬性,method表示Application對象的方法。
Aperty|methodApplication對象在global.asa檔中聲明兩個事件Application_OnEnd、Application_OnStart的腳本:
Application對象對應兩個事件:Application_OnEnd、Application_OnStart。其中Application_OnStart事件對應Application對象的起始事件:每當產生一個Application對象,該事件所定義的代碼都將被啟動;Application_OnEnd事件對應Session對象的結束事件:當Application對象被終止或失效時,該事件所對應的代碼被啟動。<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>SubApplication_OnStart‘事件的處理程式代碼EndSub
SubApplication_OnEnd‘事件的處理程式代碼EndSub</SCRIPT>這兩個事件的代碼必須放在global.asa檔中,如下:Application對象的集合如下:
Application對象的屬性如下:屬
性
名描
述LockLock方法禁止其他客戶修改Application對象的屬性。UnlockUnlock方法允許其他客戶修改Application對象的屬性。集
合
名描
述Contents包含所有通過腳本命令添加到應用程式中的項。StaticObjects包含所有用<OBJECT>標記添加到會話中的對象。3.6ObjectContext對象
ObjectContext對象是一個以組件為主的事務處理系統,可以保證事務的成功完成。使用ObjectContext對象,就允許程式在網頁中直接配合MicrosoftTransactionServer(MTS)使用,從而可以管理或開發高效率的Web伺服器應用程式。
在ASP中使用@TRANSACTIO關鍵字來完成的,語法如下:<%@TRANSACTION=value%>
要注意的是@TRANSACTION指令必須位於.asp檔中的第一行,否則將出錯,必須將該指令加到要在某個事務下運行的每一頁中。當腳本處理完成之後,當前事務也就結束了。
ObjectContext的方法:方
法意
義SetCompleteSetComplete方法聲明腳本不了解事務未完成的原因。如果事務中的所有組件都調用SetComplete,事務將完成。SetAbortSetAbort方法聲明被腳本初始化的事務未完成,無法更新源。ObjectContext對象提供OnTransactionCommit、OnTransactionAbort兩個事件處理程式,前者是在事務完成時被啟動,後者是在事務失敗時啟動。
SubOnTransactionCommit()‘處理程式EndSub
SubOnTransactionAbort()‘處理程式EndSub第四章ASP組件第四章ASP組件4.1AdRotator組件 4.2BrowserCapabilities組件 4.3DatabaseAccess組件 4.4FileAccess組件 4.5ContentLinking組件4.6其他ASP組件
使用組件可以完成諸如Web廣告條輪換、流覽器相容、資料庫存取、伺服器端檔存取等多種功能,值得一提的是,ASP提供的組件是在伺服器端運行,
組
件
名描
述AdRotator創建一個AdRotator對象,該對象可按用戶指定的播放順序,在同一頁上自動輪換顯示各種廣告。BrowserCapabilities創建一個BrowserType對象,該對象決定訪問Web站點的每個流覽器的性能、類型及版本。DatabaseAccess提供ActiveXDataObjects(ADO)對數據庫的訪問。ContentLinking創建一個NextLink對象,該對象可動態生成Web頁內容列表,並象書一樣將各頁順續連接。FileAccess提供對Web伺服器端檔的輸入輸出訪問。4.1AdRotator組件
AdRotator組件中,能很容易實現在Web頁面上插入一個迴圈播放廣告橫幅的播放器,可以通過定義一個播放順序檔,使播放器能根據檔中定義的播放順序輪流播放一系列廣告圖片。
AdRotator組件所使用的播放順序檔是一個文本檔,只要修改這個檔,就可以實現廣告橫幅播放順序的更新。
一般來說,AdRotator組件相關檔
除了必要的Adrot.dll檔外,還要有迴圈定時檔,另外也可以有重定向檔。
迴圈定時檔也叫作RotatorSchedule檔,包含AdRotator組件用於管理和顯示各種廣告圖象的資訊。
重定向檔是AdRotator組件中可選擇項,如果在迴圈定時檔中指定使用重定向檔,每當用戶點擊廣告時,其發出的請求對會重定向到該檔。
AdRotator組件的屬性屬
性
名語
法描
述BorderBorder=size允許用戶指定顯示廣告時四周是否帶邊框。ClickableClickable=value允許用戶指定是否將廣告作為超鏈接顯示。默認值是
TRUE。TargetFramesTargetFrame=frame用於指定鏈接將被裝入的目標框架。該屬性完成的功能等價於HTML語句中的TARGET參數。frame指定用來顯示廣告框架的名稱。AdRotator組件只要GetAdvertisement一個方法,主要功能在於重新取得一個將要顯示的圖片和超文本鏈接。語法如下:
其中rotationSchedulePath指定RotatorSchedule檔相對於虛擬目錄的位置。GetAdvertisement(rotationSchedulePath)4.2BrowserCapabilities組件
ASP提供的BrowerCapabilities組件的使用,可以輕鬆地獲取客戶端流覽器的類型,進而判斷流覽器所支持的特性,然後再根據此信息,啟用流覽器支持的特性,遮罩不支持的特性。
BrowserCapabilities組件除包含一系列屬性、方法外,也有一個外部驅動檔Browscap.ini檔。語法如下:
SetBrowser=Server.CreateObject("MSWC.BrowserType")
Browscap.ini檔中主要定義了各種流覽器所具有的屬性,可以在該檔中聲明屬性定義任意數量的流覽器數目,也可以設置用戶流覽器不在所定義的列表中時使用的默認值。對每一個流覽器定義,都可以提供一個用戶代理的HTTP(HTTPUserAgent)標題和屬性以及希望與標題相關聯的值。4.3DatabaseAccess組件
DatabaseAccess組件是ASP的精華,通過使用該組件,Web開發人員可以很容易地實現在Web應用程式中訪問資料庫。
DatabaseAccess組件可以通過ADO訪問存儲在資料庫或其他表格化數據結構中的資訊,同時支持ODBC3.0的資料庫連接池特徵。4.4FileAccess組件FileAccess組件可用來訪問電腦檔系統的方法和屬性。該組件是由FileSystemObject對象、TextStream對象組成。其中,FileSystemObject對象負責檔或目錄的管理,但如果你要訪問檔的內容,就必須與TextStream對象一起使用。FileAccess組件建立的語法如下:Setfs=CreateObjext(“Scripting.FileSystemObject”)
FileSystemObject對象提供對電腦檔系統的訪問,共有24種方法(教材表4.4)和一種屬性。語法如下:Scripting.FileSystemObject
TextStream對象的使用可以有助於順序訪問檔,可以協助利用FileAccess組件啟動或建立的檔。語法如下:TextStream.{property|method}
其中property和method參數可以是任何與TextStream對象相關聯的屬性和方法。
4.5ContentLinking組件ContentLinking組件的主要目的在於管理網頁或網址間的超文本鏈接,可以通過一個網頁或網址的線性排列順序列表來管理多個網頁或網址間的超文本鏈接順序。該組件讀取一個被稱為線性排列順序文本鏈接的文本檔,根據該檔的內容,組件可以自動創建每個相關頁面的導航鏈接和目錄鏈接。ContentLinking組件創建語法如下:SetNextLink=Server.CreateObject("MSWC.NextLink")
線性排列順序檔是一個包含Web頁列表的文本檔,語法如下:WebURL[text-description[comment]]
其中參數WebURL表示的Web頁的虛擬或相對URL。參數text-description包含
WebURL描述文字的值。參數comment為組件不處理的說明性文字。
4.6其他ASP組件ASP還包括其他組件,每個組件都相當於一個小工具,利用這些組件,就可以快速、方便的構造網頁。比如ContentRotator組件、PermissionChecker組件、LoggingUtility組件、Tools組件等。第五章VBScript和Jscript第五章VBScript和Jscript5.1伺服器端腳本和客戶端腳5.2VBScript腳本語言5.3JScript腳本語言
ASP程式是由文本、HTML標記和腳本組合而成的。可以用任何腳本語言來編寫ASP程式中的腳本部分,只要Web伺服器上安裝了該語言的腳本引擎。
目前比較流行的腳本語言有VBScript和Jscript。5.1伺服器端腳本和客戶端腳本
使用VBScript和JScript,既可編寫伺服器端腳本,也可編寫客戶端腳本。伺服器端腳本在Web伺服器上執行,生成發送到流覽器的HTML頁面由Web伺服器負責。在ASP中,伺服器端腳本要用分隔符號<%%>括起,或者在<SCRIPT></SCRIPT>標記中用RUNAT=Server表示腳本在伺服器端執行。
腳本代碼能夠嵌入到HTML文檔的任何地方,通常都是將所有腳本代碼集中放在HEAD部分,這樣可以確保在BODY部分調用代碼之前所有腳本代碼都被讀取並解碼。5.2VBScript腳本語言
VBScript是VisualBasic的一個子集,編程方法和VisualBasic基本相同,但有相當多的VisualBasic特性在VBScript中都被刪去了。1將單行語旬分成多行
有時一條語句可能會很長,這給列印和閱讀帶來不便,此時可用續行符“-”(一個空格緊跟一個下劃線)將長語句分成多行。2在代碼中加注釋
在VBScript中,注釋符採用西文單引號“′”,即以撇號作為注釋的開始。注釋可以和語句在同一行並寫在語句的後面,也可單獨占一行。3使用不同進制的數字
在VBScript中,除了可以用默認的十進位來表示數字外,還允許用十六進制或八進制來表示數字。對於不同進制的數,VBScript在表達方式上有明確規定,即十六進制數要加首碼&H(如&H9),八進制數要加首碼&0(數字零)(如&011)4數據類型
VBScript只有一種數據類型,即Variant類型。由於Variant類型是VBScript中唯一的數據類型,因此它也是VBScript中所有函數的返回值的數據類型。Variant類型可以在不同場合代表不同類型的數據。5變數
聲明變數有兩種方式,即顯式聲明和隱式聲明。
顯式聲明要用到Dim語句。
隱式聲明是指腳本中第一次使用變數時,就自動創建該變數。
在VBScript中,變數命名必須遵循這樣的規則:
①名字必須以字母開頭;
②名字中不能含有句號;
③名字不能超過255個字元;
④名字不能和關鍵字同名;
⑤名字在被聲明的作用域內必須唯一。
VBScript不區分大小寫。
變數被聲明後不是在任何地方都可以被使用,每個變數都有它的作用域,作用域是指程式中哪些代碼能引用變數。過程內部聲明變數稱為過程級變數或局部變數,這樣的變數只有在聲明它們的過程中才能使用,即無法在過程外部訪問;過程外部聲明的變數稱為腳本級變數或全局變數,即在同一個程式檔中的任何腳本命令均可訪問和修改該變數的值。過程級和腳本級變數可以同名,修改其中一個變數的值,不會影響另一個。6常量
常量是具有一定含義的名稱,用於代替數值或字串。
在VBScript中,還可以用Const語句來定義自己的常量。
7數組
在VBScript中,把具有相同名字不同下標值的一組變數稱為數組變數,簡稱數組。
數組有上界和下界,數組中的元素在上下界內是連續的。
在VBScript中,數組有兩種類型,即固定數組和動態數組。8運算
在VBScript中,可以進行4種類型的運算,即算術運算、連接運算、關係運算和邏輯運算。
在運算式中,當運算符不止一種時,要首先進行算術運算,接著進行關係運算,然後進行邏輯運算。9控制結構
在VBScript中,控制結構有兩種,即判定結構和迴圈結構。
VBScript支持的判定結構分條件結構和選擇結構兩種。
可以用選擇結構來替代塊結構的條件語句,以便在多個語句塊中有選擇地執行其中的一個。
迴圈結構允許重複執行一行或數行代碼。
在VBScript中,提供了三種不同風格的迴圈結構,即Do迴圈、For迴圈和ForEach迴圈。
10with語句
with語句用於對某個對象執行一系列操作,而不用重複指出對象的名字。
With語句可以嵌套,即With語句能夠置入另一個With語句中,但不能用一個With來設置多個不同的對象。
11過程
過程是用來執行特定任務的獨立的程式代碼。
使用過程,可以將程式劃分成一個個較小的邏輯單元,過程中的代碼能夠被反復調用,這樣可以減少不必要的重複。12VBscript函數摘要
VBScript提供的函數見教材表5.55.3JScript腳本語言Jscript完全實現了ECMAScript-262語言規範並提供了一些增強特性。與C++和Java這樣成熟的面向對象語言相比,功能要弱些,不能用Jscript來編寫獨立運行的應用程式,Jscript腳本只能在某個解釋器上運行,該解釋器既可是Web伺服器,也可是Web流覽器。Jscript是一種寬鬆類型的語言,即不必顯式定義變數的數據類型,JScript會根據需要自動進行轉換。1語句和語句塊
在JScript中,語句由一行中的一個或多個項和符號組成。每行開始一條新的語句。可以用分號(;)來顯式地終止一條語句。分號是JScript的語句終止符。
用大括弧括起來的一組Jscript語句稱為一個語句塊。2變數
JScript通常不要求變數聲明,但在使用之前先進行聲明是一種良好的編程習慣。在JScript中,變數聲明要用到var語句。3數據類型
JScript有六種數據類型(見教材表5.6)。
在JScript中,變數在技術上沒有固定的類型,但具有與其包含的值的類型等價的類型。4運算符
Jscript的運算符如教材表2.7所示。
5數組
在JScript中,可以用new運算符和Array()構造函數來創建數組。
當創建數組時,Jscript將在該數組中包括一個只寫的length屬性,用來記錄數組中的項數。
創建數組後,可以用方括號[]來訪問數組中的單個元素。6控制結構
Jscript支持if和if…else條件語句。
JScript支持條件運算。條件運算在待測條件後用一個問號並指定兩個可選項,一個可選項在條件滿足時使用,另一個在條件不滿足時使用,選項間用冒號隔開。
JScript支持for迴圈、for…in迴圈、while迴圈和do…while迴圈。7函數
在JScript中,可以用function語句來創建自己的函數。
8複製、傳遞和比較數據
9特殊字元
JScript提供了一些特殊字元(見教材表5.9),允許在字串中包括一些無法直接鍵人的字元。每個特殊字元都以反斜杠開始。反斜杠是一個轉義字元,表示緊隨其後的字元是特殊字元。10固有對象
JScript提供了九個固有對象(教材表5.10),每個固有對象都有與之關聯的方法和屬性。第六章Web資料庫的使用 第六章Web資料庫的使用6.1Web資料庫的概述6.2ODBC的安裝設置 6.3ADO概述 6.4Connection對象 6.5Command對象 第六章Web資料庫的使用6.6Recordset對象 6.7Field對象和Fields數據集合6.8Properies數據集合和Property對象6.9Parameters數據集合與Parameter對象6.10Errors數據集合和Error對象 6.1Web資料庫的概述
資料庫是管理資訊的常規方法,它可以處理各種各樣的資訊、試驗數據、銷售總結、業務記錄、人事檔案和顧客要求等等。隨著網路技術的飛速發展,基於Internet/Intranet的流覽器/伺服器結構的管理資訊系統應運而生
。
要開發基於Internet/Intranet的流覽器/伺服器結構的管理資訊系統,首先要解決的就是如何實現網頁與資料庫的連接和集成,實現這個目的,一般有下麵三種方法:(1)CGI的方法;(2)Web通過處理器與資料庫進行連接;(3)採用集成了ODBC介面功能的Web伺服器。現在採用的方式絕大多數都是用第三種方式。
對於一個ASP程式而言,它通常是通過ADO層或ODBC介面來訪問資料庫的。ASP對數據庫的整個訪問過程是這樣:客戶端的流覽器向Web伺服器提出ASP頁面檔請求(包括資料庫的操作),伺服器將把該頁面由ASP.DLL檔進行解釋,並在伺服器端運行,完成資料庫的操作,再把資料庫操作的結果生成動態的網頁返回給流覽器,流覽器再將該網頁內容顯示在客戶端。
6.2ODBC的安裝設置
本節主要介紹如何建立一個與已有數據庫連接的DSN(DataSourceName),其中DSN表示應用程式和指定資料庫的連接資訊。(請參考書6.2
)6.3ADO概述
ASP對數據庫的訪問是可以通過ADO模式來實現。ADO對象給開發人員提供了一種快捷、簡單、高效的資料庫訪問方法,ADO可以包含在腳本中來產生對數據庫的連接,並從資料庫表中讀取記錄,形成實際要使用的對象集合。而且,對數據資源,如數據庫,ADO提供了應用程式一級的介面。
ADO對象主要是由Connection對象、Command對象、Parameter對象、Recordset對象、Field對象、Property對象、Error對象等七個對象,以及Fields數據集合、Properties數據集合、Parameters數據集合、Error數據集合等四個數據集合所組成。在介紹ADO的七個對象和四個數據集合後,下麵將用圖表的關係來介紹一下。
6.4Connection對象
在ASP中,Connection對象是網頁通過ADO存取資料庫的關鍵,Connection對象負責與資料庫實際的連接動作,其他的對象都是必須依賴與Connection對象的連接才能發揮其特有的功能。
Connection對象代表與數據源進行的唯一會話。
在成功安裝ASP與Web伺服器後,就可以使用ASPServer對象的CreateObject方法來創建Connection對象,語法如下:SetConn=Server.CreateObject(“ADODB.Connect”)Connection對象的方法包括:Open、Execute、Close、Cancel、Save、BeginTrans、CommitTrans、RollbackTrans等方法。(請參考書6.4)
Connection對象的屬性包括Attributes、CommandTimeout、ConnectionString、ConnectionTimeout、CursorLocation、DefaultDatabase、IsolationLevel、Mode、Provider、State、Version等屬性。
Connection對象提供Properties、
Errors兩種數據集合。前者表示Connection對象運行是最近一次的錯誤或警告資訊,後者表示Connection對象所定義的相關屬性。
6.5Command對象
Command對象負責對數據庫提供請求,也就是傳遞指定的SQL命令。使用Command對象可以查詢資料庫並返回Recordset對象中的記錄,以便執行大量操作或處理資料庫結構。使用該對象不僅能夠對一般的資料庫資訊進行操作,還因為對象可以帶輸入、輸出參數,從而可以完成對數據庫存貯過程的調用。Command對象可以使用Execute方法來執行SQL語句或對數據庫存儲過程的調用,或創建一個RecordSet對象。
Command對象還包括一個Parameter集合,使用該集合,可以將資料庫存儲過程的參數與集合中各項元素相對應,而且存儲過程的輸出值也作為一個參數被包含在Parameter集合中,從而簡化對存儲過程的調用。
Command對象所提供的屬性包括Name、ActiveConnection、CommandText、State、
CommandType、CommandTimeout、Prepared等屬性。
Command對象提供了Execute
、CreateParameter等方法。(請參考書6.5。)6.6Recordset對象
Recordset對象表示的是來自基本表或命令執行結果的記錄全集。任何時候該對象所指的當前記錄均為集合內的單個記錄。也就是說,該對象負責流覽和操作從資料庫中取出的數據,該對象就像一個二維數組,數組的每一列表示資料庫中的一個數據列,而同時每個數據列包含多個字段,每個數據字段就表示一個Field對象。
Recordset對象中一共有:Open、Close、Movefirst、MoveLast、MoveNext、Move、
MovePrevious、Update、AddNew、Delete、NextRecordset、CancelBatch、CancelUpdate、GetRows、Requery、Resync、Cupports、UpdateBatch
、
Close等方法。
Recordset對象屬性同樣很多,包括了ActiveConnection、Source、CursorLocation、CurSorType、LockType、RecordCount、BOF、EOF、PageCount、PageSize、State、
AbsolutePage、AbsolutePosition、Bookmark、EditMode、Filter、MaxRecords、CacheSize、Status等。
(請參考書6.6)6.7Field對象和Fields數據集合
Field對象代表使用普通數據類型的數據的列。前面介紹的Recordset對象,就包含有由Field對象組成的Fields集合,每個Field對象對應於Recordset中的一列。使用Field對象的Value屬性可設置或返回當前記錄的數據。
Fields數據集合與其它數據集合一樣,都有屬於自己的方法與屬性,有時候也稱為Field數據集合對象。Fields數據集合提供的方法和屬性包括Count屬性、Refresh方法、Item方法。
Field對象屬性包括Name、Value、Type、Attribute、NumericScale、Precision、ActualSize、DefinedSize、OriginalValue、UnderlyingValue等屬性。方法包括GetChunk
、
AppendChunk等。6.8Properies數據集合和Property對象
Property對象代表由提供者定義的ADO對象的動態特徵,動態屬性由基本的數據提供者定義,並出現在相應的ADO對象(如Connect對象、Command對象、Field對象、Recordset對象)的Properties集合中。語法如下:Setproperties=ADO對象.PropertiesProperties集合是包含特定對象實例的所有
Property對象,有時候也稱為Properties數據集合對象。包括Count屬性、Refresh方法、Item方法等。
Property對象主要是用來記錄相應ADO對象的每一項屬性值,包括了Name屬性、Value屬性、Type屬性、Attributes屬性等。
6.9Parameters數據集合與Parameter對象
在前面介紹Command對象時,知道Command對象是通過Parameter對象來傳遞一個參數,而Parameters數據集合則是Command對象所有Parameter對象的集合。也可以說,Parameter對象是代表與基於參數化查詢或存儲過程的Command對象相關聯的參數或引數。Parameters集合是由Parameter對象組成的。該集合包括Count屬性、Append方法、Delete方法、Refresh方法、Item方法。
Parameter對象負責記錄程式中要傳遞參數的相關屬性,Parameter對象提供了Name屬性、Value屬性、Type屬性、Attribute屬性等。
6.10Errors數據集合和Error對象
在ADO關係圖中,知道通過Errors數據集合,取得系統運行時發生的錯誤或警告資訊,從而使程式更加完善。任何涉及ADO對象的操作都會生成一個或多個提供者錯誤。每個錯誤出現時,一個或多個Error對象將被放到Connection對象的Errors集合中。
如果是通過直接建立Connection對象來使用,可以直接通過Connection對象的Errors數據集合取得Error對象。如果是通過建立Recordset對象或Command對象,在通過ActiveConnection屬性來使用Connection對象時,則必須通過Recordset對象或Command對象的ActiveConnection屬性來取得Error對象。語法如下:SetErr=Connection.ErrorsSetErr=Recordset.ActiveConnection.ErrorsSetErr=Command.ActiveConnection.ErrorsErrors數據集合,也稱Errors數據集合對象,包含在回應涉及提供者的單個失敗時產生的所有Error對象。包括Count屬性、Clear方法、Item方法。
Error對象是負責記錄存儲一個系統運行時發生的錯誤或警告。Error對象提供了Desription、Number、Source、NativeError、SQLState、HelpContext、HelpFile等屬性。
第七章
資料庫的訪問
第七章
資料庫的訪問
7.1常用的SQL命令 7.2資料庫的連接 7.3數據的查詢控制 7.4數據的添加和刪除7.5數據的修改 7.6調用資料庫的存儲過程
本章將進一步介紹如何進行Web資料庫的訪問操作,下麵將ADO存取數據源的數據的一般流程表示為如圖:
7.1常用的SQL命令
SQL是StrucuredQueryLanguage的縮寫,也就是常說的結構化查詢語言。使用SQL可以實現下麵的功能:
(1)修改表結構;
(2)查詢表中的數據資訊;
(3)添加、刪除資料庫中的數據內容;
(4)修改資料庫中的數據記錄。1修改表結構
在ASP中,可以通過使用SQL語句來修改現有的表結構。
修改表結構的SQL命令是ALTERTABLE,該命令可以實現兩種形式的修改:在原有的表中添加一個或多個列;修改原表中已有列的屬性。
語法如下:ALTERTABLE表名ADD列名數據類型|MODIFY列名數據類型;
其中ADD表示添加新列,MODIFY表示修改已有的列。2查詢表中的數據資訊
“查詢”是資料庫應用開發中最常用的操作,在SQL中,查詢操作是通過Select語句來完成的,最簡單的Select語句如下:
Select<列名>From表名Select語句還具有篩選的功能,即可以有選擇地輸出表中的記錄,方法是在Select語句後面加上Where子句,加上篩選的條件。
同時,Select語句還提供了OrderBy子句,通過使用該字句,可以改變輸出結果的排序方式,語法如下:Select<列名>From表名Where條件OrderBy<列1>,<列1>…3添加、刪除資料庫中數據
在實際操作中,程式往往要將新記錄數據添加到資料庫中,這時就要使用SQL語句中Insert語句進行數據的插入操作。程式除了要添加記錄,往往還要把某些記錄從資料庫中刪除,這時就要使用SQL語句中的Delete語句。
Insert語句有兩種方法,語法如下:InsertInto表名<列1,列2…>VALUES<值1,值2…>或InsertInto表1名<列1,列2…>Select<列1,列2…>From表2名Where條件
其中前一種是Insert命令的基本形式,它將值1、值2等值分別賦值給列1、列2,並為表添加一條新的數據記錄,只適用於少數記錄的添加,對於大批量的數據輸入,則是很不適合的。這時,就要使用第二種方法,這種命令格式可以將一個或多個表的記錄輸入到另一個表中。
Delete語句的語法如下:DeleteFrom表名Where條件
要注意的是,如果沒有在Delete語句中加上Where條件,則該語句將刪除所有的記錄,這一點需要特別注意。
4修改資料庫中的數據記錄
在使用過程中,有些數據記錄需要進行修改,這時就可以使用SQL中的Update命令,進行修改資料庫的記錄,語法如下:Update表名Set列1=值1,列2=值2……Where條件7.2資料庫的連接
資料庫訪問操作的第一步是資料庫的連接。主要分下麵幾種方法:
(1)設置ODBC的方法來連接資料庫
(2)直接指定ODBC驅動程式來連接資料庫
(3)設置Connection對象的Provider屬性來設置連接資訊
(4)設置ActiveConnection參數,完成對數據源連接的設置
7.3數據的查詢控制
資料庫在網路中的應用,主要集中在數據的查詢操作上。數據的查詢主要是利用ADO對象中的Connection對象和Recordset對象。數據的查詢主要通過使用SQL語句中的Select語句,採用了Select語句對表進行了篩選,然後得到了所要的數據結果。
當查詢結果得到的數據記錄很大的時候,就有些不適用了,如隨著數據記錄數量的增加,從伺服器傳遞到客戶機的時間就會增加,可能發生數據傳遞超時而中斷的現象,同時對伺服器也會產生一些不好的後果,如增加伺服器的負載等。
本節主要介紹兩種方法:一種是通過Session對象的特性,讓查詢程式以一頁或一條為單位進行查詢操作,主要利用Recordset對象的AbsolutePosition屬性來記錄數據指針的位置;另一種則主要是利用Recordset對象的PageSize屬性來控制每一頁所要顯示的數據記錄條數,當然其間也用到了Session對象和Recordset對象的AbsolutePosition屬性。7.4數據的添加和刪除
添加數據記錄方法很多,這裏主要介紹兩種:一種是利用SQL語句中的Insert命令來添加數據記錄;另一種是利用ADO對象之一的Recordset對象的AddNew方法來添加數據記錄。
數據的刪除也存在兩種方式:一種就是運行SQL語句中的Delete命令來刪除表中的數據記錄;另一種就是利用Recordset對象中的Delete方法來刪除數據。7.5數據的修改
數據的修改也可以有相似的兩種方法:一種就是利用SQL語句中的Update命令來修改表中的數據記錄;另一種也是利用Recordset對象的Update或UpdateBatch方法來完成數據的修改。7.6調用資料庫的存儲過程
存儲過程是大型資料庫的一個重要概念。存儲過程(StoredProcedure)有時也稱為存儲查詢(StoredQuery),是存儲在資料庫中的一組預先定義的SQL語句集合,在存儲過程中不僅可以包括標準的SQL語句,還可以包含輸入和輸出參數。因此在更一般意義上講,存儲過程相當於對一個資料庫進行操作的副程式,如果靈活運用,則可以完成很多複雜的功能。存儲過程具有以下優點:
(1)存儲過程在執行速度上要快得多;(2) 存儲過程減少了對磁片的訪問;(3) 存儲過程允許被嵌套調用;(4) 提高數據的安全性;(5) 使用存儲過程可以減輕網路的通信流量;(6) 存儲過程可以帶有輸入輸出參數,可以利用它返回一個數據集合或其他類型的結果1創建存儲過程
創建存儲過程使用的是一種被稱為數據定義語言(DDL)的命令,該命令對SQL的擴展。存儲過程可以包含多條Transact-SQL語句,而Transact-SQL對使用
MicrosoftSQLServer非常重要,與SQLServer通訊的所有應用程式都通過向伺服器發送Transact-SQL語句來進行通訊。
可使用
Transact-SQL語句
CREATEPROCEDURE創建存儲過程。創建存儲過程前,請考慮下列事項:
(1) 不能將該語句與其它SQL語句組合到單個批處理中;(2) 創建存儲過程的許可權默認屬於資料庫所有者;(3) 存儲過程是資料庫對象;(4)
只能在當前資料庫中創建存儲過程。而且,在創建存儲過程時,還應指定:(l) 所有輸入參數和向調用過程或批處理返回的輸出參數;(2) 執行數據庫操作(包括調用其他過程)的編程語句;(3) 返回至調用過程或批處理以表明成功或失敗(以及失敗原因)的狀態值。創建存儲過程的語法如下:CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[...n]各個參數的意義的意義請參考書7.6.1。2.在SQLServer中創建存儲過程
由於在ASP應用開發中最常用的大型資料庫是SQLSever,這裏將介紹SQLServer2000如何創建存儲過程。需注意的是SQLServer一般是安裝在NT環境。3在ASP中調用存儲過程
在ASP中,調用存儲過程的方法主要有兩種:一種是通過Connection對象來執行存儲過程,另一種是通過Command對象來執行存儲過程。第八章用VisualInterDev編寫調試腳本第八章用VisualInterDev編寫調試腳本8.1VisualInterDev使用基礎 8.2建立Web工程 8.3建立Web頁 8.4客戶端腳本 8.5伺服器端腳本VisualInterDev是Microsoft公司推出的一個功能強大的用於在Internet/Intranet領域建立和維護動態Web站點的軟體,是快速設計、建立和調試Web應用程式的可視化編程環境。使用VisualInterDev,既可編寫客戶端腳本,也可編寫伺服器端腳本。8.1VisualInterDev使用基礎
1VisualInterDev主要特點 網頁設計器
站點設計器
CSS編輯器
功能強大的調試器
資料庫集成
動態HTML
協作開發2開發環境和工作模式
開發環境:
每臺工作站都要安裝一份VisualInterDev或MicrosoftFrontPage。開發者可以在各自工作站上建立本地Web(LocalWeb)進行開發,從宿主Web(MasterWeb)中獲取檔,拷貝到本地Web中。另外,每臺工作站上應安裝一份IIS或PWS,以便開發者在本機上測試和調試應用程式。工作模式
宿主模式(MasterMode)
本地模式(LocalMode)
脫機模式(OfflineMode)3VisualInterDev用戶介面
如上圖所示,其中包括標題欄、菜單欄、網頁編輯器、工具箱、工程流覽器和屬性窗口等部分。
網頁編輯器
工具箱
屬性窗口
工程流覽器8.2建立Web工程
建立一個工程需要五步:①命名工程;②指定伺服器和工作模式;③指定Web;④選擇一種佈局;⑤選擇一種主題。建立工程後,如果要更改工作模式,請從“Project”菜單指向“WebProject”子菜單,再選擇“WorkingMode”子菜單的“Local”、“Master”或“WorkOffline”命令。8.3建立Web頁
1添加新頁面
2設置頁面屬性
Web頁面都有一些通用屬性,如頁面標題、背景圖像及顏色等。要設置這些屬性,在網頁編輯器中打開待設置屬性的頁面,然後在屬性窗口的對象框中選擇“DOCUMENT”,再單擊屬性窗口的“PropertyPages”按鈕,打開“Properties”對話框。3文本與列表
文本輸入及格式化:在頁面編輯器中,可以直接輸入文本並用HTML工具欄來設置文本的格式,如標題、字體、字體號、粗體、斜體、下劃線、上下標、顏色及對齊方式列表:在VisualInterDev中,可以建立五種列表,即無序列表、有序列表、目錄列表、菜單列表和定義列表。4滾動文本
滾動文本是指可在網頁的指定區域循環往復滾動的字串。插入滾動文本的方法是:
⑴將游標移到待插入滾動文本的位置。
⑵選擇“HTML”菜單的“Marquee”命令,網頁編輯器中出現一個矩形區域。
⑶輸入要滾動的文本,並通過HTML工具欄對文本進行格式化處理。5超級鏈接
超級鏈接是從文本或圖像指向另一頁面或其他類型檔的鏈接。每個超級鏈接包含兩個端點(也稱錨)和一個方向。超級鏈接由開始端點(稱源錨)指向目標端點(稱目標錨)。目標錨可以是任意的網路資源,而源錨通常是頁面中的文本或圖像。6書簽
書簽是頁面中一個預定義的位置,它可以作為同一頁面或其他頁面中超級鏈接的目標錨。當在流覽器單擊指向書簽的超級鏈接時,流覽器不僅會加載相應的頁面,而且會自動滾動到書簽的位置。7插入圖像
網頁上常用的圖像格式有GIF、JPEG和PNG。GIF是交錯圖形格式,使用非常高效的無損壓縮。交錯圖片的特點是只要一半的顯示時間便可大致看出全貌。JPEG是有損壓縮的靜態圖像檔格式,特點是壓縮比非常高並支持真彩色圖像。PNG採用無損壓縮來保存圖片,產生的檔比GIF小,支持真彩色圖像。8表格
表格由多個方框組成,這些方框排成若干行和列。每個方框稱為單元格,在單元格中可以填入文字、圖像和超級鏈接等。9表單
表單是用來輸入資訊的區域。方法是:
⑴將游標移到合適的位置。
⑵選擇“HTML”菜單的“Form”命令,在頁面中插入一個表單。
⑶根據需要從工具箱的“HTML”選項卡中把表單元素拖放到頁面中。
⑷設置表單及表單元素的屬性。10文檔大綱
文檔大綱以層次結構形式顯示了當前頁面中的所有HTML元素和對象。在文檔大綱中選擇一個HTML元素或對象,就可以在網頁編輯器中將游標迅速移到相應的位置。8.4客戶端腳本
客戶端腳本是嵌在網頁中的一段程式,是由流覽器進行解釋執行的。客戶端腳本能夠為用戶提供更多的交互性。例如,在將表單內容發送給伺服器之前,可以用客戶端腳本來驗證內容的合法性,這樣不需要連接伺服器就能使用戶得到及時的回饋。1設置腳本語言
客戶端腳本可以用VBScript來編寫,也可用JavaScript來編寫。VisualInterDev默認將腳本語言設為JavaScript。如果要將腳本語言設為VBScript,請在“Client”框中選擇VBScript。
2事件處理
網頁上的每個元素都是一個對象。對象具有自己的屬性、方法和事件。事件是能被對象識別的操作。客戶端腳本可以處理由網頁上的元素產生的事件。當事件由系統或用戶觸發時,對象就會對事件做出回應。回應某個事件後執行的操作是通過一段代碼來實現的,這段代碼稱為事件處理函數。3腳本大綱
Visual1nterDeV提供了一個腳本大綱來幫助開發人員編寫事件處理函數,腳本大綱按層次結構顯示了網頁中的所有的對象、事件和腳本。4樣式屬性
要在腳本中訪問元素的樣式屬性,需借助style這個輔助對象才能實現。8.5伺服器端腳本
與客戶端腳本一樣,伺服器端腳本也是嵌入在網頁中的一小段程式,區別是:伺服器端腳本是在Web伺服器上執行,而客戶端腳本是由流覽器執行。在ASP頁中,伺服器端腳本要使用分隔符號<%和%>括起,或者在<SCRIPT>和</SCRIPT>標記中用RUNAT=Server表示腳本在伺服器端執行。第九章如何建立自己的ASP組件第九章如何建立自己的ASP組件9.1什麼是ActiveXServerComponents 9.2VisualBasic6.0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芭蕾舞形体课行业深度调研及发展战略咨询报告
- 书籍与文具区企业制定与实施新质生产力战略研究报告
- 足球电影制作行业跨境出海战略研究报告
- 足球桌游设计企业制定与实施新质生产力战略研究报告
- 跨平台设计资产管理企业制定与实施新质生产力战略研究报告
- 舞台表演技巧行业跨境出海战略研究报告
- 语言学习语音识别系统行业跨境出海战略研究报告
- 2025年学校教务处学生社团管理计划
- 文学社团读书活动职责
- 2025年中国机械式停车设备市场调查研究报告
- 【原创】学校书记中央八项规定精神学习心得
- 楼梯踏步抹灰标准合同7篇
- 【厦门大学】DeepSeek大模型赋能高校教学和科研
- 西安房屋租赁合同(官方版)6篇
- 2025年商丘职业技术学院单招职业技能考试题库含答案
- 2025年榆林城市投资经营集团有限公司招聘笔试参考题库含答案解析
- 2025届高三化学二轮复习 化学工艺流程 课件
- 2024广东深圳市龙岗区产服集团“春雨”第二批招聘笔试笔试参考题库附带答案详解
- PLC应用技术课件 任务7. S7-1200 PLC控制电动机星三角启动(定时器)
- 旅行社运营实务课件 2.2 设计国内长线主题旅游产品
- 高二化学电离水解
评论
0/150
提交评论