互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)第九章 ASP與ADO DB連接_第1頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)第九章 ASP與ADO DB連接_第2頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)第九章 ASP與ADO DB連接_第3頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)第九章 ASP與ADO DB連接_第4頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)第九章 ASP與ADO DB連接_第5頁(yè)
已閱讀5頁(yè),還剩105頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第九章ASP與ADODB連接互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)課件主講教師:夏宏雷(武漢長(zhǎng)江工商學(xué)院)第九章ASP與ADODB連接Qu:9.1ASP基礎(chǔ)知識(shí)(174--178)

!ASP的概念、特點(diǎn)9.2ASP腳本語(yǔ)言基礎(chǔ)知識(shí)(P179--202)

!ASP中使用腳本語(yǔ)言的方法9.3用ADO實(shí)現(xiàn)對(duì)DB的訪問(wèn)(219--241)

!ADO的工作原理9.1ASP基礎(chǔ)知識(shí)Qu:

一.ASP的概念、特點(diǎn)、ASP運(yùn)行環(huán)境

二.ASP文件及其編程特點(diǎn)

三.ASP的內(nèi)置對(duì)象和應(yīng)用組件

四.ADO—ASP的數(shù)據(jù)庫(kù)存取組件五.ASP與傳統(tǒng)CGI的比較9.1ASP基礎(chǔ)知識(shí)(續(xù))ASP是基于NT平臺(tái)的動(dòng)態(tài)WEB技術(shù)。ASP通過(guò)ADO來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),包括添加、刪除、更新、查詢和調(diào)用存儲(chǔ)過(guò)程,并且有比較靈活的鎖定和光標(biāo)定位機(jī)制。9.1.1ASP簡(jiǎn)介1.交互式動(dòng)態(tài)網(wǎng)頁(yè)實(shí)現(xiàn)技術(shù)簡(jiǎn)介1)CGI(CommonGatewayInterface):是通用網(wǎng)關(guān)接口,是外部程序與Web服務(wù)器之間的標(biāo)準(zhǔn)編程接口。CGI是一種標(biāo)準(zhǔn),定義了動(dòng)態(tài)文檔應(yīng)如何創(chuàng)建,輸入數(shù)據(jù)應(yīng)如何提供給應(yīng)用程序,輸出結(jié)果應(yīng)如何使用等。

2)ASP(ActiveServerPages):是服務(wù)器端腳本環(huán)境,內(nèi)含于IIS3.0和4.0之中,可以通過(guò)結(jié)合HTML網(wǎng)頁(yè)、ASP指令和ActiveX控件建立動(dòng)態(tài)、交互且高效的Web服務(wù)器應(yīng)用程序,消除了某些創(chuàng)建Web應(yīng)用程序的不確定性,不必再擔(dān)心客戶機(jī)端安裝的瀏覽器類型。9.1.1ASP簡(jiǎn)介(續(xù))PHP(HypertextPreprocessor):超文本預(yù)處理器,是一種內(nèi)嵌入式的語(yǔ)言,類似于ASP。JSP(JavaServerPages):是Sun公司推出的網(wǎng)站開(kāi)發(fā)技術(shù),是將純Java代碼嵌入HTML中實(shí)現(xiàn)動(dòng)態(tài)功能的一項(xiàng)技術(shù)。ADO(ActiveDataObject):ASP的數(shù)據(jù)庫(kù)存取組件,是一種基于OLEDB標(biāo)準(zhǔn)的DB應(yīng)用編程接口,具有面向?qū)ο?,與語(yǔ)言無(wú)關(guān)的特點(diǎn),適合于在Web環(huán)境下訪問(wèn)DB。9.1.1ASP簡(jiǎn)介(續(xù))9.1.1ASP簡(jiǎn)介(續(xù))2.ASP:并不是一種語(yǔ)言,而是服務(wù)器端腳本環(huán)境,內(nèi)含于IIS3.0和4.0之中,可以通過(guò)結(jié)合HTML網(wǎng)頁(yè)、ASP指令和ActiveX控制建立動(dòng)態(tài)、交互且高效的web服務(wù)器應(yīng)用程序的不確定,不必再擔(dān)心客戶機(jī)一端安裝的瀏覽器類型。ASP所用的語(yǔ)言是Javascript或VBscript語(yǔ)言,或者是他們兩者的結(jié)合。9.1.1ASP簡(jiǎn)介(續(xù))ASP的四個(gè)重要特征:1)ASP可以包含服務(wù)器端腳本。2)ASP提供了幾種build-in對(duì)象。3)使用附加組件可以擴(kuò)展ASP。4)ASP可以與數(shù)據(jù)庫(kù)建立連接,通過(guò)對(duì)數(shù)據(jù)庫(kù)的操作建立功能強(qiáng)大的web應(yīng)用程序。9.1ASP基礎(chǔ)知識(shí)(續(xù))3.ASP的工作原理

普通HTML的執(zhí)行是以B/S模式(Browser/Server)

ASP的執(zhí)行過(guò)程:ASP應(yīng)用程序以.asp文件形式存儲(chǔ),無(wú)需編譯。其控制部分用VBScript、JScript等腳本語(yǔ)言設(shè)計(jì)執(zhí)行ASP程序時(shí),腳本程序?qū)⒁惶酌畎l(fā)送給腳本解釋器(腳本引擎),由腳本解釋器進(jìn)行翻譯并將其轉(zhuǎn)換成服務(wù)器能執(zhí)行的命令。

Browser發(fā)出請(qǐng)求,Server接到請(qǐng)求后,將請(qǐng)求的頁(yè)面響應(yīng)給客戶端9.1ASP基礎(chǔ)知識(shí)(續(xù))ASP執(zhí)行過(guò)程:1)用戶在瀏覽器的地址欄中鍵入ASP文件,回車觸發(fā)該ASP申請(qǐng);2)瀏覽器向服務(wù)器發(fā)出一個(gè)HTTP請(qǐng)求,請(qǐng)求一個(gè).asp文件;3)Web服務(wù)器響應(yīng)請(qǐng)求,調(diào)用ASP引擎執(zhí)行該文件;4)若遇到VBScript、JScript時(shí),ASP引擎調(diào)用相應(yīng)的腳本引擎解釋執(zhí)行其中腳本命令;5)若腳本中含有訪問(wèn)DB的請(qǐng)求,通過(guò)ODBC連接后臺(tái)DB,由ADO執(zhí)行訪庫(kù)操作;6)執(zhí)行ASP文件生成相應(yīng)的HTML文件;7)ASP將訪DB結(jié)果自動(dòng)生成HTML頁(yè)面發(fā)送到客戶瀏覽器;8)用戶的瀏覽器解釋這些HTML文件并將結(jié)果顯示出來(lái)。9.1ASP基礎(chǔ)知識(shí)(續(xù))4.ASP運(yùn)行環(huán)境ASP只能運(yùn)行在Windows平臺(tái)上,其運(yùn)行環(huán)境(Web服務(wù)器):WindowsNTServer4.0下運(yùn)行IIS3.0以上版本W(wǎng)indowsNTWorkstation下運(yùn)行PeeWebServer3.0以上版本安裝WindowsNTOptionPack安裝WindowsNTServerPack3以上版本時(shí)ASP已內(nèi)置Windows9x下運(yùn)行PWS(PersonalWebServer)9.1ASP基礎(chǔ)知識(shí)(續(xù))5.ASP文件及其編程特點(diǎn):

ASP文件:是嵌入可執(zhí)行腳本的HTML文檔,擴(kuò)展名為.asp,一個(gè)ASP文件主要包含:一般文本、HTML文件標(biāo)記tags,腳本程序VBScript或Jscript驅(qū)動(dòng)。1)可使用任何腳本語(yǔ)言,只需要提供相應(yīng)的腳本引擎2)ASP自身提供了VBScript、JScript驅(qū)動(dòng),其中VBScript是缺省的腳本語(yǔ)言3)腳本命令語(yǔ)句包含在<%…%>4)用服務(wù)器端的SCRIPT標(biāo)簽,區(qū)別多種語(yǔ)言<ScriptLanguage=ScriptLanguageRunAt=Server>……</script>9.1.1ASP簡(jiǎn)介(續(xù))ASP在應(yīng)用和開(kāi)發(fā)方面具有自己的優(yōu)點(diǎn):1)ASP編寫(xiě)容易,可用任何無(wú)格式的文本編輯器編寫(xiě),程序開(kāi)發(fā)時(shí)間段;2)ASP靈活性好,它的主體是與平臺(tái)無(wú)關(guān)的HTML和腳本程序,無(wú)需編譯、鏈接直接執(zhí)行,可適時(shí)改變,運(yùn)行于各種操作環(huán)境;3)ASP程序獨(dú)立于瀏覽器,在服務(wù)器端執(zhí)行,相對(duì)客戶端源代碼隱藏,保密性好;ASP是面向?qū)ο?,并可擴(kuò)展使用各種語(yǔ)言編寫(xiě)的ActiveX服務(wù)組件。9.1ASP基礎(chǔ)知識(shí)(續(xù))6.ASP的內(nèi)置對(duì)象和應(yīng)用組件

ASP提供5個(gè)內(nèi)置對(duì)象,5個(gè)內(nèi)置對(duì)象可以被ASP腳本直接使用1)Request對(duì)象

作用:從客戶端提取信息,即讀取瀏覽器的用戶輸入信息

使用方式:10讀取附帶在網(wǎng)址后面的參數(shù)20

讀取HTML輸入表單Form里的關(guān)鍵字段內(nèi)容2)Response對(duì)象作用:將信息傳給客戶端用戶使用方式:10用write方式直接向HTML文檔插入字符串

格式:Response.Write數(shù)據(jù)20控制流程Response.Redirect網(wǎng)址將當(dāng)前網(wǎng)頁(yè)轉(zhuǎn)到另一個(gè)網(wǎng)頁(yè)Response.End終止當(dāng)前的ASP處理9.1ASP基礎(chǔ)知識(shí)(續(xù))3)Server對(duì)象

作用:提供Web服務(wù)器工具

使用方式:有2個(gè)重要方法10方法MapPath:將WebServer的虛擬路徑還原成實(shí)際路徑20

方法CreateObject:產(chǎn)生服務(wù)器組件的對(duì)象實(shí)例4)Session對(duì)象

作用:存儲(chǔ)在一次會(huì)話(Session)期間的用戶信息,僅被該用戶訪問(wèn)5)Application對(duì)象

作用:管理所有的會(huì)話信息,供所有用戶共享·服務(wù)器組件可以連接服務(wù)器DB、使用網(wǎng)絡(luò)功能或訪問(wèn)服務(wù)器文件系統(tǒng)ASP提供了5個(gè)內(nèi)置服務(wù)器組件,最重要的有:ADODB,DB訪問(wèn)組件,F(xiàn)ileSystemObject,文件訪問(wèn)組件9.1ASP基礎(chǔ)知識(shí)(續(xù))7.ADO-ASP的DB存取組件

DB訪問(wèn)組件ADO(ActiveDataObject),是基于OLEDB標(biāo)準(zhǔn)的DB應(yīng)用編程接口,具有面向?qū)ο?、與語(yǔ)言無(wú)關(guān)的特點(diǎn),適合在Web環(huán)境下訪問(wèn)DB。1)ADO的數(shù)據(jù)存取結(jié)構(gòu)ADO通過(guò)組件對(duì)象模型COM為ASP提供Web與DB連接的可編程界面,允許開(kāi)發(fā)人員使用任何語(yǔ)言和統(tǒng)一的編程模式操作各種與ODBC和OLEDB兼容的DB,包括SQLServer、Oracle、FoxPro等大、中、小型DB。9.1ASP基礎(chǔ)知識(shí)(續(xù))Web環(huán)境下ADO的數(shù)據(jù)存取結(jié)構(gòu)9.1ASP基礎(chǔ)知識(shí)(續(xù))2)ADO的對(duì)象模型10Connect對(duì)象

作用:建立一個(gè)與數(shù)據(jù)源的連接20Command對(duì)象

作用:執(zhí)行一個(gè)SQL命令語(yǔ)句,完成對(duì)數(shù)據(jù)源的操作30Recordset對(duì)象

作用:創(chuàng)建一個(gè)查詢DB信息的全部結(jié)果集9.1ASP基礎(chǔ)知識(shí)(續(xù))40Error集合

作用:收集ADO運(yùn)行過(guò)程中發(fā)生的所有錯(cuò)誤50Fields集合

作用:包括Recordset對(duì)象中的所有字段60Parameters集合

作用:包括所有的Parameter對(duì)象(3)ADO存取DB的步驟基本思想:ADO主要通過(guò)Connection對(duì)象和Recordset對(duì)象完成與DB的交互。Connect是與DB連接,Recordset中存放了與DB操作得到的結(jié)果記錄集。9.1ASP基礎(chǔ)知識(shí)(續(xù))使用ADO存取DB的四個(gè)步驟:10建立一個(gè)Connection對(duì)象:ConnsetConn=Server.CreateObject(“ADODB.Connection”)20調(diào)用Conn.Open打開(kāi)DBConn.Open“數(shù)據(jù)源名稱”30建立Recordset對(duì)象,調(diào)用Connection對(duì)象的Execute函數(shù)建立setrs=Conn.Execute(“SQL語(yǔ)句”)40將Recordset對(duì)象內(nèi)容輸出到瀏覽器50

關(guān)閉結(jié)果集對(duì)象,斷開(kāi)與DB的連接rs.closeConn.close9.1ASP基礎(chǔ)知識(shí)(續(xù))8.ASP與傳統(tǒng)CGI的比較10CGI(CommonGatewayInterface,公共網(wǎng)關(guān)接口)特點(diǎn):①可以使用任何語(yǔ)言實(shí)現(xiàn)②每一個(gè)查詢編寫(xiě)一個(gè)CGI程序,導(dǎo)致Web應(yīng)用復(fù)雜時(shí)不可用③多用戶同時(shí)訪問(wèn)一個(gè)CGI程序時(shí),服務(wù)器端會(huì)復(fù)制多個(gè)CGI導(dǎo)致用戶訪問(wèn)速度降低20ASP(ActiveServerPages)特點(diǎn):①ASP的前身IDC(InternetDatabaseConnect)可簡(jiǎn)單訪問(wèn)DB,動(dòng)態(tài)生成頁(yè)面②服務(wù)器端ASP引擎支持ADO(DBS的對(duì)象模型),不關(guān)心底層DB指令完成復(fù)雜的DB操作

9.1ASP基礎(chǔ)知識(shí)(續(xù))③支持IIS(InternetInformationServer)內(nèi)置對(duì)象Session對(duì)象:在一個(gè)用戶的多個(gè)頁(yè)面之間共享數(shù)據(jù)Application對(duì)象:同一應(yīng)用的多個(gè)用戶共享數(shù)據(jù)Request對(duì)象:操作用戶提交數(shù)據(jù)Response對(duì)象:反饋數(shù)據(jù)給用戶并動(dòng)態(tài)生成頁(yè)面System對(duì)象:訪問(wèn)系統(tǒng)的數(shù)據(jù)9.2ASP腳本語(yǔ)言介紹Qu:

1.ASP腳本語(yǔ)言的作用 2.VBScript代碼的基本格式、編程規(guī)范9.2.1VBScript代碼的基本格式1.ASP腳本語(yǔ)言的作用:在Web頁(yè)面中加入VBScript或JavaScript1)將數(shù)據(jù)發(fā)送到服務(wù)器之前先進(jìn)行處理和校驗(yàn),動(dòng)態(tài)地創(chuàng)建新的Web內(nèi)容2)編寫(xiě)完全在客戶端運(yùn)行的應(yīng)用程序:如計(jì)算器、游戲應(yīng)用程序,以擴(kuò)展客戶端的功能9.2.1VBScript代碼的基本格式(續(xù))2.VBScript代碼的基本格式<ScriptLanguage=“vbscript”><!--subwindow_onLoad()document.bgcolor=redmsgbox“歡迎你”endsub--></Script>說(shuō)明:①<!---->用來(lái)注釋一段代碼②Script中的Language說(shuō)明所用的腳本語(yǔ)言9.2.1VBScript代碼的基本格式(續(xù))3.VBScript塊與HTML的處理 VBScript塊可以出現(xiàn)在HTML頁(yè)面的任何地方,如BODY或HEAD部分中,盡量集中放。例如,響應(yīng)窗口按鈕的單擊事件,可在窗口中嵌入Script代碼:<HTML><HEAD><TITLE>測(cè)試按鈕事件</TITLE></HEAR><BODY><FORMNAME=“Form”><INPUTTYPE=“Button”NAME=“Button”VALUE=“單擊”>

<ScriptFor=“Button”>KVENT=“onClick”LANGUAGE=“VBScript”>MsgBox“按鈕已經(jīng)被單擊”

</Script></FORM></BODY>

</HTML>9.2.2VBScript變量1.變量的定義和數(shù)據(jù)類型變量是一種使用方便的占位符,用于引用計(jì)算機(jī)的內(nèi)存地址,該地址可以存儲(chǔ)Script運(yùn)行時(shí)可更改的程序信息。使用變量時(shí)引用變量名可以查看或更改變量的值,不需要了解變量在計(jì)算機(jī)內(nèi)存中的地址。VBScript中所有變量的數(shù)據(jù)類型都是Variant2.聲明變量

顯示聲明語(yǔ)句:Dim、Public、Private②隱式聲明:不聲明,直接使用,不提倡這種方式,容易出錯(cuò)

申明多個(gè)變量逗號(hào)隔開(kāi)例:DimCountStudent,CountTecher9.2.2VBScript變量(續(xù))3.變量命名規(guī)則遵循VBScript標(biāo)準(zhǔn)命名規(guī)則: ①第一個(gè)字母必須是字母。 ②不能包含嵌入的句點(diǎn)。 ③長(zhǎng)度不超過(guò)255個(gè)字符。

在被聲明的作用域內(nèi)必須唯一。4.變量的作用域與活動(dòng)期作用域:由聲明變量的位置決定過(guò)程級(jí)變量:在過(guò)程中聲明,該過(guò)程是其變量的局部作用域腳本級(jí)變量:在過(guò)程外聲明,被所有過(guò)程識(shí)別,具有Script作用域9.2.2VBScript變量(續(xù))5.變量賦值

變量名=表達(dá)式例:A=2000A=B+19.2.2VBScript變量(續(xù))6.標(biāo)量變量和數(shù)組變量標(biāo)量變量:僅包含一個(gè)值的變量,如:Dimx數(shù)組變量:包含一系列值的變量,如:Dimy(10)VBScript中所有數(shù)組都基于0,因此y實(shí)際包含11個(gè)元素多維數(shù)組變量:維數(shù)最大為60二維:DimMytable(2,4)動(dòng)態(tài)數(shù)組定義:DimMytable()

隨后必須重新定義:ReDimMytable(25)

將25調(diào)整為30,RedimPreservMytable(30)

保留字Preserve表示將m(25)中的原數(shù)據(jù)保存到m(30)中m00m01m02m03m04m10m11m12m13m14m20m21m22m23m24

M(2,4)3行5列,共15個(gè)數(shù)據(jù)

9.2.3VBScript過(guò)程和函數(shù)1.Sub過(guò)程Sub過(guò)程:是包含在sub和Endsub之間的一組VBScript語(yǔ)句,執(zhí)行操作但不返回值。①定義過(guò)程:SubConvertTemp()/*過(guò)程名*/temp=InputBox(“請(qǐng)輸入最低溫度:”,1)MsgBox“溫度為&Celsius(temp)&”攝氏度?!盓ndsubVBScript函數(shù)InputBox:提示用戶輸入信息(內(nèi)置函數(shù))MsgBox:顯示結(jié)果兩個(gè)固有的(內(nèi)置的VBScript函數(shù))9.2.3VBScript過(guò)程和函數(shù)②使用過(guò)程

在程序中調(diào)用過(guò)程方式1:callMyPro(firstarg,secondarg)方式2:MyProfirstarg,secondarg

或在無(wú)參數(shù)時(shí):convertTempcallconvertTemp2.Function過(guò)程

Function過(guò)程:是包含在Function與EndFunction之間的一組VBScript語(yǔ)句,可以返回值,該值在過(guò)程語(yǔ)句

中賦給函數(shù)名,使用時(shí)通過(guò)函數(shù)名返回該值。調(diào)用MyProc的兩種方式9.2.3VBScript過(guò)程和函數(shù)①定義函數(shù)(過(guò)程的數(shù)據(jù)傳遞):FunctionCelsius(megrees) celsius=(fDegrees-32)*5/9EndFunction注意:·用參數(shù)megrees傳遞該函數(shù)的輸入數(shù)據(jù)·參數(shù)作為要傳遞給過(guò)程名的數(shù)據(jù)的占位符,如fDegrees·參數(shù)名是任何有效的變量名②使用函數(shù)(在代碼中使用Sub和Function過(guò)程):調(diào)用函數(shù),函數(shù)名必須在變量賦值語(yǔ)句的右端或表達(dá)式中。例:Temp=Celsius(fDegrees)

或MsgBox“溫度為&Celsius(fDegrees)&”攝氏度從過(guò)程獲取數(shù)據(jù),必須使用Function過(guò)程9.2.4數(shù)據(jù)類型1.VBScript數(shù)據(jù)類型Variant變量類型:是VBScript中唯一的數(shù)據(jù)類型,也是VBScript中所有函數(shù)的返回值的數(shù)據(jù)類型最簡(jiǎn)單的Variant可以包含數(shù)字和字符串?dāng)?shù)據(jù)可以將數(shù)字包含在引號(hào)(”

”)中使用成為字符串。2.Variant子類型

Variant可以進(jìn)一步區(qū)分?jǐn)?shù)值信息的特定含義所具有的數(shù)據(jù)類型。

例如:使用數(shù)值信息表示日期或時(shí)間,此類數(shù)據(jù)在與其他日期、時(shí)間數(shù)據(jù)一起使用時(shí),結(jié)果也表示為日期和時(shí)間型。Variant數(shù)據(jù)子類型說(shuō)明表講義第184表9-19.2.4數(shù)據(jù)類型子類型描述Empty未初始化的Variant。對(duì)于數(shù)值變量,值為0;對(duì)于字符串變量,值為零長(zhǎng)度字符串("")。Null不包含任何有效數(shù)據(jù)的Variant。Boolean包含True

或False。Byte包含0到255之間的整數(shù)。Integer包含-32,768到32,767之間的整數(shù)。Currency-922,337,203,685,477.5808到922,337,203,685,477.5807。Long包含-2,147,483,648到2,147,483,647之間的整數(shù)。Single包含單精度浮點(diǎn)數(shù),負(fù)數(shù)范圍從-3.402823E38到-1.401298E-45,正數(shù)范圍從1.401298E-45到3.402823E38。Double包含雙精度浮點(diǎn)數(shù),負(fù)數(shù)范圍從-1.79769313486232E308到-4.94065645841247E-324,正數(shù)范圍從4.94065645841247E-324到1.79769313486232E308。Date(Time)包含表示日期的數(shù)字,日期范圍從公元100年1月1日到公元9999年12月31日。String包含變長(zhǎng)字符串,最大長(zhǎng)度可為20億個(gè)字符。Object包含對(duì)象。Error包含錯(cuò)誤號(hào)。Variant包含的數(shù)據(jù)子類型9.2.4數(shù)據(jù)類型例如:子類型說(shuō)明Null不包含任何有數(shù)據(jù)的VariantBoolean包含True或FalseInteger包含-32768到+32767之間的整數(shù)String包含變長(zhǎng)字符串,最長(zhǎng)為20億個(gè)字符Object包含對(duì)象Error包含出錯(cuò)對(duì)象Date(time)包含表示日期的數(shù)字,公元100年1月1日到9999年12月31日3.查詢數(shù)據(jù)類型數(shù)據(jù)以Variant變量的形式存儲(chǔ)時(shí)被指定為子類型,在需要了解數(shù)據(jù)的具體類型,調(diào)用函數(shù)Vartype()函數(shù)Vartype返回值分別表示不同的數(shù)據(jù)類型9.2.4數(shù)據(jù)類型Vartype()返回值相應(yīng)的變量子類型0空(沒(méi)有初始化)1Null2Integer3Long 4Single 5 Double 6 Currence7Date(time)8String9 Object10Error11Boolean 12 Variant(指示變量數(shù)組)13 Byte14 數(shù)組Vartype()函數(shù)的返回值9.2.5VBScript的常數(shù)VBScript常數(shù):是具有一定含義的名稱,用于代替其值不變化的數(shù)字或字符串VBScript固有常數(shù):由VBScript定義VBScript用戶自定義常數(shù):用Const語(yǔ)句創(chuàng)建并賦值例:ConstMyString=〞這是一個(gè)字符串〞

字符串型常數(shù)包含在〞…〞之間。ConstMyAge=30數(shù)值型常數(shù)ConstCutoffDate=#8-1-2009#日期型常數(shù)

日期和時(shí)間文字包含在#…#之間。注意:常數(shù)名字母大寫(xiě),或用Con或vb作常數(shù)名前綴,以區(qū)別變量9.2.6基本語(yǔ)法1.運(yùn)算符及優(yōu)先級(jí)VBScript運(yùn)算符及優(yōu)先級(jí)為:(越來(lái)越低)

括號(hào)()算術(shù)運(yùn)算符:求冪^、負(fù)號(hào)–、乘*、除/、整除\、求余mod、加+、減-、字符串運(yùn)算&比較運(yùn)算符:=、<>、<、>、<=、>=、IS對(duì)象引用比較符邏輯運(yùn)算符:NOT、And、OR、XOR(異或)、Eqv(等價(jià))、Imp(隱含)Not:IS,對(duì)象引用比較符,判斷兩個(gè)對(duì)象引用是否引用同一個(gè)對(duì)象9.2.6基本語(yǔ)法(續(xù))2.使用循環(huán)語(yǔ)句

循環(huán)用于重復(fù)執(zhí)行一組語(yǔ)句。循環(huán)課分為以下三類:在條件變?yōu)镕alse之前重復(fù)執(zhí)行語(yǔ)句在條件變?yōu)門rue之前重復(fù)執(zhí)行語(yǔ)句按照指定的次數(shù)重復(fù)執(zhí)行語(yǔ)句9.2.6基本語(yǔ)法(續(xù))2.使用循環(huán)語(yǔ)句VBScript中定義四種形式的循環(huán)語(yǔ)句①Do…Loop·用關(guān)鍵字while:當(dāng)(直到)條件為True時(shí)循環(huán),見(jiàn)例1·或者在循環(huán)至少運(yùn)行一次以后檢查循環(huán)條件,見(jiàn)例2·用關(guān)鍵字Until:重復(fù)執(zhí)行語(yǔ)句直到條件條件變?yōu)門rue,見(jiàn)例3、4·退出循環(huán),見(jiàn)例51)Do……loop2)While……Wend3)For……Next4)ForEach……Next9.2.6基本語(yǔ)法(續(xù))例1:(用關(guān)鍵字while)SubChkFirstWhile() Dimcounter,MyNum counter=0 MyNum=15 DowhileMyNum>10在循環(huán)前檢查條件是否成立 MyNum=MyNum–1counter=counter+1LoopMsgBox“循環(huán)重復(fù)了“&counter&”次”

EndSub9.2.6基本語(yǔ)法(續(xù))例2:(在循環(huán)至少執(zhí)行一次以后檢查循環(huán)條件)

… DoMyNum=MyNum–1counter=counter+1LoopwhileMyNum>10

…例3:(用關(guān)鍵字Until) DoUntilMyNum=10在循環(huán)前檢查MyNum=MyNum–1counter=counter+1LoopSubExitExample()Dimcounter,MyNumcounter=0MyNum=9DoUntilMyNum=0MyNum=MyNum–1counter=counter+1IfMyNum<10thenExitDoEndifLoopMsgBox“循環(huán)重復(fù)了”&counter”&次.”ENDSub9.2.6基本語(yǔ)法(續(xù))例4: DoMyNum=MyNum–1counter=counter+1LoopUntilMyNum=10只要條件為False,就會(huì)進(jìn)行循環(huán),為True停止例5:(退出循環(huán))

語(yǔ)句:ExitDo9.2.6基本語(yǔ)法(續(xù))②For…Next語(yǔ)句:將循環(huán)體運(yùn)行指定的次數(shù)P189

例:將過(guò)程MyPro重復(fù)執(zhí)行30次SubDoMyProcs30Times() DimxForx=1To30 MyProcNext……使計(jì)數(shù)器變量每次加1EndSub例:SubAlertUser(value)Ifvalue=0ThenAlertLable.ForCorlor=vbRed…ElseAlertLable.ForCorlor=vbBlack…EndIfEndSub9.2.6基本語(yǔ)法(續(xù))3.條件語(yǔ)句(P190) if…thenelse語(yǔ)句selectcase(1)if語(yǔ)句 if…then…else語(yǔ)句用于計(jì)算條件是否為True或False,根據(jù)計(jì)算結(jié)果指定要運(yùn)行的語(yǔ)句(2)Selectcase語(yǔ)句

該語(yǔ)句從多個(gè)語(yǔ)句塊中選擇執(zhí)行其中的一個(gè)。計(jì)算表達(dá)式的值,表達(dá)式的結(jié)果將與結(jié)構(gòu)中每個(gè)case的值比較,如果匹配,則執(zhí)行與該case關(guān)聯(lián)的語(yǔ)句塊。SelectcaseDocument.Formal.CardType.Options(selectedIndex).TextCase“MaseCard”DiplayMcLogoValidateMCAccountCase“Visa”DiplayMcLogo…Case“AmericanExpress”DiplayAMEXCoLogo…CaseElseDiplayUnKnownImage…Endselect4.在VBScript中使用對(duì)象(講義P192) VBScript自身提供的對(duì)象有:·標(biāo)簽對(duì)象·Dictionary對(duì)象、·Err對(duì)象5.VBScript中的錯(cuò)誤陷阱6.VBScript代碼的調(diào)試7.VBScript的函數(shù)·數(shù)學(xué)函數(shù)(P196)表9-4·格式轉(zhuǎn)換函數(shù)(P197)表9-5·日期和時(shí)間函數(shù)表9-6·字符串操作函數(shù)表9-7·變體子類型表9-89.2.6基本語(yǔ)法(續(xù))1.編碼約定的內(nèi)容

約定的目的: ·編碼標(biāo)準(zhǔn)化,易于閱讀和理解·與其它語(yǔ)言約定保持一致

編碼約定包含以下內(nèi)容①對(duì)象、變量和過(guò)程的命名約定②注釋約定③文本格式和縮進(jìn)指南2.常數(shù)命名約定①常數(shù)以變量的方式表示,全部字母大寫(xiě)

常數(shù)名中的多個(gè)單詞用下劃線_分隔9.2.7VBScript的編碼約定(P198)9.2.7VBScript的編碼約定(P198)如:USER_NUM_MAXNEW_DATE②用Const語(yǔ)句創(chuàng)建,大小寫(xiě)混合格式,以”con”作為常數(shù)名的前綴

如:conYonOwnConstant3.變量命名約定(詳見(jiàn)P199表9-9)

子類型前綴例BooleanBlnBlnFonndData(Time)DtmdtmStartIntegerIntIntQuantityObjectObjObjCurrentStringStrStrfirstName4.變量作用域

變量應(yīng)定義在盡量小的作用域中9.2.7VBScript的編碼約定(P198)

作用域聲明變量處可見(jiàn)性·過(guò)程級(jí)事件、函數(shù)或子過(guò)程在聲明變量的過(guò)程中可見(jiàn)·Script級(jí)HTML頁(yè)面的HEAD部分,在Script的所有過(guò)程中可見(jiàn)

任何過(guò)程之外

標(biāo)明變量作用域—用前綴·過(guò)程級(jí)無(wú)前綴·Script級(jí)用S例如:SblnCaIcInprogress5.描述性變量名的過(guò)程名·變量名或過(guò)程名的主體使用大、小寫(xiě)混合格式·過(guò)程名用動(dòng)詞:InitNameArrayCloseDialog9.2.7VBScript的編碼約定(P198)6.對(duì)象命名約定(P200表9-12)

對(duì)象類型前綴例

組合框、下拉列表框CboCboEnglish

水平滾動(dòng)條HsbhsbVolume

垂直滾動(dòng)條VsbVsbRate

滑塊SldSldScale7.代碼注釋約定①

注釋過(guò)程的功能②

注釋過(guò)程中使用參數(shù)的用途、使用范圍③

代碼注釋約定(詳見(jiàn)P201表9-13)8.格式化代碼①

標(biāo)準(zhǔn)嵌套塊應(yīng)縮進(jìn)4個(gè)空格②

過(guò)程的概述注釋縮進(jìn)1個(gè)空格9.2.7VBScript的編碼約定(P198)③概述注釋后的最高層語(yǔ)句應(yīng)縮進(jìn)4個(gè)空格,每一層嵌套塊再縮進(jìn)4個(gè)空格**…………*………………**目的:返回指定用戶在UserList中第一次出現(xiàn)的位置輸入:utrUserList():所查找的用戶列表

StrTargetUser():要查找的用戶名返回:StrTargetUser在StrUserList數(shù)組中第一次出現(xiàn)時(shí)的索引,如果目標(biāo)用戶未找到,返回-1**……………*……………**FunctionintFindUser(StrUserList(),StrTargetUser)Dimi‘循環(huán)計(jì)數(shù)器DimblnFound‘發(fā)現(xiàn)目標(biāo)的標(biāo)記intFindUser=-1i=0‘初始化循環(huán)計(jì)數(shù)器Dowhilei<=Ubound(StrUserList)andNotblnFoundIfStrUserList(i):StrTargetUserThen blnFound=True‘標(biāo)記設(shè)為True intFindUser=i‘返回值設(shè)為循環(huán)計(jì)數(shù)器

EndIfi=i+1LoopEndFunction9.2.8ASP基礎(chǔ)1.ASP文件的結(jié)構(gòu)ASP文件可包含的內(nèi)容①HTML標(biāo)記(tags)②VBScript或Jsctint語(yǔ)言的程序碼③ASP語(yǔ)法

說(shuō)明:①ASP只處理服務(wù)器端腳本語(yǔ)言。 ASP文件中的其它內(nèi)容,如IIS(InternetInformationServer)等,支持ASP的服務(wù)器會(huì)將其原封不動(dòng)地發(fā)送到客戶端,由用戶端的瀏覽器進(jìn)行處理②在ASP中使用的腳本語(yǔ)言有VBScript、JavaScript

系統(tǒng)默認(rèn)的是VBScript。ASP中還可以使用其它與ActiveXScript標(biāo)準(zhǔn)兼容的腳本語(yǔ)言引擎9.2.8ASP基礎(chǔ)2.ASP基本語(yǔ)法①在HTML命令標(biāo)識(shí)的兩端分別加上<和>,以區(qū)分服務(wù)器端的HTML命令標(biāo)識(shí)與普通字符

例:<B>你好!</B>用粗體顯示字符②用<%%>標(biāo)識(shí)服務(wù)器端的ASP腳本,以區(qū)別其它字符

例:<%sport=“Climbing”%>給變量賦值③

用<SCRIPT>與指定屬性RunAt=SERVER共用,標(biāo)識(shí)服務(wù)器端用戶定義的函數(shù)方法、模塊。缺省指定屬性時(shí)Script腳本為客戶端的(一般不用)。3.聲明腳本語(yǔ)言 ASP默認(rèn)的是VBScript,可以聲明用什么語(yǔ)言,聲明方法有三種,第一種聲明方法:

通過(guò)InternetInformationServer管理器設(shè)定ASP的默認(rèn)語(yǔ)言為限定的語(yǔ)言使用IIS服務(wù)器的步驟為:

9.2.8ASP基礎(chǔ)使用IIS服務(wù)器的步驟:(1)從開(kāi)始菜單IIS的程序組中執(zhí)行網(wǎng)絡(luò)服務(wù)管理器(2)右鍵單擊網(wǎng)絡(luò)名稱(若沒(méi)有改變默認(rèn)設(shè)置,名稱是DefaultWebSite)(3)選擇屬性項(xiàng)(4)單擊主目錄表(5)單擊設(shè)置按鈕(6)在ApplicationConfiguration的對(duì)話框中,單擊AppOption表(7)在默認(rèn)的ASP語(yǔ)言文本框中輸入主要腳本語(yǔ)言,如VBScript,JScript9.2.8ASP基礎(chǔ)第二種聲明方法:直接在.asp文件中聲明,將語(yǔ)言名稱放在ASP文件最靠上的一行

如<%@LANGUAGE=Jscript%><HTML><HEAD><title>ASP示例</title></HEAD><body>…</body></HTML>9.2.8ASP基礎(chǔ)第三種聲明方法:在<Script>中加入所需的語(yǔ)言<HTML><head><title>ASP示例<title></head><body><Scriptlanguage=‘JScript’runat=‘Server’>functionsayhello()/*定義函數(shù){ response.write(‘你好’)}</Script><%sayhello!()%>/*引用函數(shù)</body></HTML><HTML><head><title>ASP示例</title></head><body>VBScript的時(shí)間函數(shù)時(shí)間:<%=time%><body></HTML>9.2.8ASP基礎(chǔ)4.標(biāo)記<Script>和<%…%>的區(qū)別(P204)·使用<Script>包含的直接腳本會(huì)立即執(zhí)行

優(yōu)點(diǎn):可以在一個(gè)單獨(dú)的主頁(yè)中混合使用多種Script腳本

例:(P205)將VBScript和JScript寫(xiě)在一段程序中5.HTML文件中運(yùn)用ASP變量<%=要引用的變量或常量%>

符號(hào)<%…%>標(biāo)識(shí)未輸出變量、方法、函數(shù)的值

例:<HTML><head><title>fornext.asp</title></head><body><bgcolor=“#FFFFFF”><br>startbyseetingafor…nextwork<br><%Forcounter=1to5Response.write“nowwearelooping”&“<br>next%><hr>9.2.8ASP基礎(chǔ)6.在ASP中使用基本腳本語(yǔ)言(共有8種語(yǔ)句)(1)do…Loop(2)For…next語(yǔ)句例1:瀏覽器顯示結(jié)果:startbyseetingafor…nextworknowwearelooping

重復(fù),共5行<HTML><head><title>vbs5eval.asp</title></head><body><%x=“3+3*2”response.writeeval(x)%></body></HTML>9.2.8ASP基礎(chǔ)(3)格式化日期(P211)(4)格式化數(shù)字(5)使用數(shù)字函數(shù)例:輸出結(jié)果:9(6)使用Split函數(shù)(P214)

函數(shù)的功能:將一個(gè)字符串的值賦給一個(gè)數(shù)組9.2.8ASP基礎(chǔ)(7)使用with語(yǔ)句

語(yǔ)句的功能:盡量減少代碼的重復(fù)<HTML><head><title>vbs5with.asp</title></head><body><%Withresponse·write“你好<br>”·write“見(jiàn)到你很高興<br>”·write“希望再次見(jiàn)到你<br>”Endwith%></body></HTML>

輸出結(jié)果為:你好見(jiàn)到你很高興希望再次見(jiàn)到你9.2.8ASP基礎(chǔ)(8)調(diào)用函數(shù)和過(guò)程

<HTML><body><%CallMyFunction/*調(diào)用函數(shù)

%></body></HTML><Scriptrunat=ServerLanguage=VBScript> Function.MyFunction() Flag=0Response.Write(“MyFunctioncalled”)EndFunction</Script>定義函數(shù)段9.2.8ASP基礎(chǔ)7.使用Server—SideInclude(SSI)服務(wù)器端包含指令(1)SSI的功能

使用SSI可將文件內(nèi)容及有關(guān)文件的信息包含到HTML頁(yè)中,還可以在ASP頁(yè)中使用6條SSI指令:#config指令返回到客戶端瀏覽器的錯(cuò)誤消息、日期、文件大小、所使用格式#echo在HTML頁(yè)中插入環(huán)境變量的值#exec運(yùn)行一個(gè)程序,或一條shell命令,將輸出插入到HTML頁(yè)中#fastmod將文件修改日期插入到HTML頁(yè)中#fsize將文件大小插入到HTML頁(yè)中#include在HTML或ASP頁(yè)中包含文件9.2.8ASP基礎(chǔ)因?yàn)榘琒SI指令的文件需要特殊處理,所以必須給SSI文件一個(gè)SSI文件擴(kuò)展名。默認(rèn)的擴(kuò)展名為.stm、.shtm和.shtml。

9.2.8ASP基礎(chǔ)(2)#include指令SSI用于在腳本中的特定位置插入另一個(gè)文件的內(nèi)容。在ASP中使用SSI的語(yǔ)法<!--#Includevirtual/File=Path/File-->

虛擬路徑

如:d:\interpub\wwwroot\sample\

虛擬路徑為:”/samples/sample.asp”9.2.8ASP基礎(chǔ)(3)使用動(dòng)態(tài)的SSI如果需要?jiǎng)討B(tài)的確定在發(fā)往客戶程序的ASP中要包含的文件,會(huì)有一些問(wèn)題,因?yàn)橄到y(tǒng)是在服務(wù)器開(kāi)始格式化頁(yè)面之前處理SSI的。9.2.8ASP基礎(chǔ)(4)應(yīng)用程序的輸出要運(yùn)行應(yīng)用程序或Shell命令,請(qǐng)使用#exec指令。該應(yīng)用程序可以是CGI程序、ASP應(yīng)用程序或ISAPI應(yīng)用程序。參數(shù)CGI用于運(yùn)行一個(gè)應(yīng)用程序,如CGI腳本、ASP或ISAPI應(yīng)用程序。參數(shù)CMD運(yùn)行shell命令。9.2.8ASP基礎(chǔ)(5)包含文件的大小#fsize將制定文件的大小插入到HTML頁(yè)中。該指令只能在HTML頁(yè)中使用,而不能在ASP頁(yè)中使用。參數(shù)設(shè)置同#include。默認(rèn)情況下,以千字節(jié)為單位表示文件大小。可以用帶有sizefmt選項(xiàng)的#config指令來(lái)改變計(jì)量單位。9.2.8ASP基礎(chǔ)(6)#config#config用于指定返回給客戶端瀏覽器的錯(cuò)誤信息、日期和文件大小的格式。參數(shù)ERRMSC:用于控制在處理SSI指令的過(guò)程中發(fā)生錯(cuò)誤時(shí)返回給客戶端瀏覽器的消息。例:<!--#configerrmsg=“Youarewrong!”-->參數(shù)TIMEFMT:用于指定返回給客戶端瀏覽器的日期格式。String參數(shù)指定格式。例:<!--#configsizefmt="bytes"--><!--#fsizefile="index.html"-->

可以通過(guò)在String中使用格式化標(biāo)記來(lái)提取日期中的個(gè)別部分,例如,一周或一個(gè)月中的某天。(格式化標(biāo)記與您在使用ANSIC的strftime函數(shù)時(shí)的那些標(biāo)記完全相同)。%a一周中某天的縮寫(xiě)(例如,Mon)。%A一周中某天的全稱(例如,Monday)。%b月份的縮寫(xiě)(例如,F(xiàn)eb)。%B月份的全稱(例如,F(xiàn)ebruary)。%c當(dāng)?shù)氐娜掌诤蜁r(shí)間的表示(例如,05/06/9112:51:32)。%d以十進(jìn)制數(shù)字表示的一個(gè)月中的某天(01-31)。%H24小時(shí)格式(00-23)。%I12小時(shí)格式(01-12)。%j以十進(jìn)制數(shù)字表示一年中的某天(001-366)。%m以十進(jìn)制數(shù)字表示的月份(01-12)。%M以十進(jìn)制數(shù)字表示的分(00-59)。%p當(dāng)?shù)氐纳衔缁蛳挛缰甘痉ɡ?,PM)。%S以十進(jìn)制數(shù)字表示的秒(00-59)。%U以十進(jìn)制數(shù)字表示一年中的某一周,星期日作為一周的開(kāi)始(00-51)。%w以十進(jìn)制數(shù)字表示一周中的某一天,星期天是第一天(0-6)。%W以十進(jìn)制數(shù)字表示一年中的某一天,星期一作為一周的開(kāi)始(00-51)。%x當(dāng)?shù)氐娜掌诒硎荆ɡ纾?5/06/91)。%X當(dāng)?shù)氐臅r(shí)間表示(例如,12:51:32)。%y以十進(jìn)制數(shù)字表示的不帶有世紀(jì)的年(例如,69)。%Y以十進(jìn)制數(shù)字表示的帶有世紀(jì)的年(例如,1969)。%z,%Z時(shí)區(qū)全稱或縮寫(xiě);如果不知道時(shí)區(qū),則沒(méi)有字符。%%百分號(hào)。9.2.8ASP基礎(chǔ)例:<!--#configtimefmt="%H:%M:%S"-->參數(shù)SIZEFMT后面跟ABBREV表示以千字節(jié)為單位,跟BYTE表示以字節(jié)為單位例:<!--#configsizefmt="bytes"-->9.2.8ASP基礎(chǔ)(7)#flastmod將指定文件的修改時(shí)間插入HTML頁(yè)。該指令只能在HTML頁(yè)中使用,而不能在ASP頁(yè)中使用。參數(shù)設(shè)置同#include(8)inc文件Inc文件代表includefile。實(shí)際上,文件的后綴對(duì)于文件包含是無(wú)所謂的??梢园粋€(gè)ASP文件,也可以包含.txt文件。Inc文件的作用有點(diǎn)類似于C/C++內(nèi)的.H、.PHP頭文件,使用inc文件可以是程序增加可讀性更易于開(kāi)發(fā)和維護(hù)。9.3利用ADO來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn)ActiveDataObject(ADO)是一項(xiàng)容易使用并且可擴(kuò)展的將數(shù)據(jù)庫(kù)訪問(wèn)添加到Web頁(yè)的技術(shù)??梢允褂肁DO編寫(xiě)緊湊簡(jiǎn)明的腳本以便連接到ODBC(OpenDatabaseConnectivity)兼容的數(shù)據(jù)庫(kù)和OLEDB兼容的數(shù)據(jù)源。9.3.1ADO的原理ADO是在OLEDB下開(kāi)發(fā)出來(lái)的。

OLEDB基本上就是OLE技術(shù)在數(shù)據(jù)庫(kù)中的應(yīng)用。OLEDB都是用C++語(yǔ)言開(kāi)發(fā)的,給ODBC的功能提供了一個(gè)標(biāo)準(zhǔn)的COM接口。OLEDB派生出來(lái)的目標(biāo)都是面向?qū)ο蟮模舱沁@種面向?qū)ο蟮奶匦允沟肁DO成為一種非常靈活的工作模式。9.3.1ADO的原理客戶端ADO關(guān)系數(shù)據(jù)庫(kù)OLEDB數(shù)據(jù)流/文本圖9-5ADO與數(shù)據(jù)庫(kù)的接口9.3.2用ADO進(jìn)行數(shù)據(jù)庫(kù)編程概述ADO所有重要的接口:Connection(連接)Connection接口表示正在使用的數(shù)據(jù)源和ADO接口之間的連接。任何與數(shù)據(jù)源有交互連接的ADO都可能導(dǎo)致一個(gè)或多個(gè)從數(shù)據(jù)源返回的錯(cuò)誤。因此Connection接口包含了產(chǎn)生所有錯(cuò)誤的接口。Error(錯(cuò)誤集)這個(gè)接口表示一個(gè)由數(shù)據(jù)源返回的錯(cuò)誤,相對(duì)于Connection的錯(cuò)誤集,Error則會(huì)更具體,可以利用一個(gè)Error來(lái)判讀出錯(cuò)的準(zhǔn)確原因。9.3.2用ADO進(jìn)行數(shù)據(jù)庫(kù)編程概述ADO所有重要的接口:Command(命令)這個(gè)接口表示一個(gè)能被數(shù)據(jù)提供者處理的命令。Command接口可以返回一個(gè)Recordset記錄集或執(zhí)行一個(gè)操作(如查詢、修改、刪除或插入)。任何時(shí)候查詢或存儲(chǔ)過(guò)程能接收的數(shù)據(jù)都能通過(guò)Parameter接口傳給它。Parameter(參數(shù))這個(gè)接口表示傳給Command的參數(shù)。9.3.2用ADO進(jìn)行數(shù)據(jù)庫(kù)編程概述ADO所有重要的接口:Recordset(游標(biāo))這是個(gè)最復(fù)雜、功能最強(qiáng)大的接口。在RecordSet接口中,含有包含數(shù)據(jù)的游標(biāo)。Field(字段)Field接口表示RecordSet對(duì)象中的某一列數(shù)據(jù),這個(gè)接口允許改變數(shù)據(jù),同時(shí)能返回游標(biāo)對(duì)象的一些關(guān)于數(shù)據(jù)本身的屬性和參數(shù)。9.3.3開(kāi)始使用ADO在開(kāi)始使用ADO之前,首先要?jiǎng)?chuàng)建一個(gè)與ADO能交互連接的數(shù)據(jù)庫(kù)。通常通過(guò)在Web服務(wù)器上創(chuàng)建數(shù)據(jù)庫(kù)源名DNS來(lái)實(shí)現(xiàn)。一、使用開(kāi)放式數(shù)據(jù)互聯(lián)ODBC1)安裝、設(shè)置和清除ODBC數(shù)據(jù)源。2)管理從客戶機(jī)到前端至數(shù)據(jù)服務(wù)器后端的查詢和其他SQL語(yǔ)句的通信以及反方向傳輸查詢結(jié)果集合或者查詢操作執(zhí)行的確認(rèn)。二、創(chuàng)建一個(gè)系統(tǒng)DNS9.3.4Connection對(duì)象Connection對(duì)象是數(shù)據(jù)源的一個(gè)開(kāi)放連接。1、創(chuàng)建Connection對(duì)象創(chuàng)建一個(gè)Connection接口:通常是調(diào)用server對(duì)象的CreateObject方法:

Set

myConnection=Server.CreateObject(“ADODB.Connection”)另法利用<object>標(biāo)記(不常用)<ObjectRUNAT=ServerID=connPRCGID=“ADODB.connection”></Object>9.3.4Connection對(duì)象2、connection對(duì)象的方法1)open方法:初始化一個(gè)連接,只有使用了connection對(duì)象的open方法后,connection對(duì)象才會(huì)真正存在。使用open方法兩種途徑(open所帶的參數(shù)是可選的)(a)直接將連接字符串傳給Open方法

<%

set

conn=Server.CreateObject(“ADODB.Connedtion”)

conn.Open“DSN=STUDENT;UID=uid;PWD=pwd”

%>(b)利用它的ConnectionString屬性

<%

Conn.Connectionstring=“DSN=STUDENT;UID=uid;PWD=pwd”

conn.Open

%>9.3.4Connection對(duì)象ConnectionString的參數(shù)作用

DSN

為數(shù)據(jù)源名(不可省)(要?jiǎng)?chuàng)建的DSN必須是一個(gè)系統(tǒng)的DSN或文件的DSN,而不是一個(gè)用戶的,它們之間的不同點(diǎn)在于系統(tǒng)DSN對(duì)于NT服務(wù)器上的所以用戶都是可以訪問(wèn)的,包括所有的NT系統(tǒng)服務(wù)。)

PWD:

訪問(wèn)數(shù)據(jù)源的口令

UID:

訪問(wèn)數(shù)據(jù)源的用戶帳號(hào)

9.3.4Connection對(duì)象2)Close方法:調(diào)用Close方法后,就停止了同數(shù)據(jù)源之間的連接,并且釋放相關(guān)的系統(tǒng)資源和Connection對(duì)象。

<%

conn.Close

set

conn=nothing

%>

這樣,就釋放了所有的資源,因此如果想再利用Connection對(duì)象,只能重新創(chuàng)建一個(gè)了。9.3.4Connection對(duì)象3)BeginTrans方法:ADO的一個(gè)重要的功能是執(zhí)行并控制數(shù)據(jù)源的事物操作。執(zhí)行了BeginTrans方法后,就在內(nèi)存中為這次操作開(kāi)辟一個(gè)緩沖區(qū)。通常BeginTrans方法返回一個(gè)整數(shù)值,表示它所在的嵌套層。最高層的事務(wù)將返回1。9.3.4Connection對(duì)象4)CommitTrans方法CommitTrans方法把一次事務(wù)中的操作全部寫(xiě)入硬盤。5)RollbackTrans方法取消一個(gè)事務(wù),恢復(fù)對(duì)數(shù)據(jù)源做的臨時(shí)性改變

注意:CommitTrans和RollbackTrans方法都是對(duì)最近的一塊事務(wù)起作用。9.3.4Connection對(duì)象6)Execute方法:Connection對(duì)象的主要任務(wù)是最高層控制與數(shù)據(jù)源之間的交互作用,但該對(duì)象也能執(zhí)行SQL語(yǔ)句及存儲(chǔ)過(guò)程。Execute方法的基本語(yǔ)句:SetmyRecordSet=conn.Execute(commandText,RecrdAffected,Options)

參數(shù):字符串參數(shù):變量參數(shù):用來(lái)指定commandstring參數(shù)性質(zhì)用來(lái)存放返回?cái)?shù)據(jù)的游標(biāo)名字9.3.4Connection對(duì)象Optinon參數(shù)有四個(gè)值來(lái)定義傳給executive的Commandstring類型:adCmdText:執(zhí)行時(shí)一個(gè)SQL串a(chǎn)dCmdTable:表明Commandstring中是一個(gè)表名adCmdStoreProc:表明executive方法將要執(zhí)行是一個(gè)數(shù)據(jù)源知道的存儲(chǔ)過(guò)程adCmdUnkow:表明Commandstring參數(shù)中的命令類型不清楚。9.3.4Connection對(duì)象3.connection對(duì)象屬性connection對(duì)象屬性用于控制高層的數(shù)據(jù)處理。1)Attributes屬性Attributes屬性是在ADO結(jié)構(gòu)中五個(gè)對(duì)象中共有的一個(gè)屬性。它定義了對(duì)象的一個(gè)或多個(gè)特點(diǎn)。9.3.4Connection對(duì)象2)CommandTimeout屬性CommandTimeout屬性定義了允許對(duì)數(shù)據(jù)源操作終止并產(chǎn)生一個(gè)錯(cuò)誤的等待時(shí)間。9.3.4Connection對(duì)象3)Connectionstring屬性該屬性將返回一個(gè)字符串,該串包含了創(chuàng)建數(shù)據(jù)連接時(shí)所用的所有信息。Connection對(duì)象可以接受該屬性傳過(guò)來(lái)的五個(gè)參數(shù):DNS、PWD、UID、Provider、FileName注意:在Connection對(duì)象被打開(kāi)以前,Connectionstring屬性可讀寫(xiě)的,而在Connection對(duì)象被打開(kāi)以后,它就是只讀的了。9.3.4Connection對(duì)象4)Connectiontimeout屬性該屬性決定了連接數(shù)據(jù)源時(shí)最大的連接時(shí)間??勺x寫(xiě)long類型,指定中止一個(gè)失敗的connection.open方法調(diào)用之前必須等待的時(shí)間,默認(rèn)值為15秒。9.3.4Connection對(duì)象5)Defaultdatabase屬性定義了Connection對(duì)象連接時(shí)的缺省數(shù)據(jù)庫(kù)??勺x寫(xiě)string類型,如果connectstring中未指定數(shù)據(jù)庫(kù)名稱,就使用這里所指定的名稱,對(duì)SQLServer而言,其值通常是pubs。9.3.4Connection對(duì)象6)mode屬性用來(lái)表示連接的寫(xiě)權(quán)限。見(jiàn)mode常數(shù)9.3.4Connection對(duì)象7)provider屬性用來(lái)返回或設(shè)置連接的數(shù)據(jù)提供者的名字。可讀寫(xiě)string類型,如果connectionstring中未指定oledb數(shù)據(jù)或服務(wù)提供者的名稱,就使用這時(shí)指定的名稱。默認(rèn)值是:MSDASQL(MicrosoftOLEDBProviderforODBC)。9.3.4Connection對(duì)象8)version屬性只讀string類型,返回ado版本號(hào)。9.3.5Command對(duì)象Command接口表示一個(gè)可被數(shù)據(jù)源處理的命令。Command對(duì)象提供了一種很簡(jiǎn)單而有效的辦法來(lái)處理查詢或者存儲(chǔ)過(guò)程。利用Command對(duì)象,可以表示一個(gè)命令字符

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論