2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第6章 Web數(shù)據(jù)庫程序設(shè)計,1 Web數(shù)據(jù)庫訪問技術(shù)2 ODBC接口3 數(shù)據(jù)庫語言SQL4 使用ADO訪問數(shù)據(jù)庫 5 用Connection對象連接數(shù)據(jù)庫6 用Command對象執(zhí)行數(shù)據(jù)庫操作7 用RecordSet對象控制數(shù)據(jù)8 程序設(shè)計舉例——網(wǎng)站會員登錄與數(shù)據(jù)修改本 章 小 結(jié),數(shù)據(jù)庫應(yīng)用系統(tǒng)在現(xiàn)有計算機(jī)軟件中占有很大的比例 本章將著重介紹一種有效的Web數(shù)據(jù)庫訪問方案,即利用ASP服務(wù)器端的

2、組件ActiveX Data Objects(ADO)實(shí)現(xiàn)對數(shù)據(jù)庫的操作,6.1 Web數(shù)據(jù)庫訪問技術(shù),6.1.1 概述Web數(shù)據(jù)庫系統(tǒng)不能僅依賴某個DBMS來實(shí)現(xiàn)整個應(yīng)用系統(tǒng),它是通過其他Web應(yīng)用程序,用標(biāo)準(zhǔn)的HTML語言及其某些特定的擴(kuò)展功能開發(fā)的、以特殊形式訪問數(shù)據(jù)庫的應(yīng)用程序系統(tǒng)Web應(yīng)用系統(tǒng)一般采用Browser/WebServer/ApplicationServer模式實(shí)現(xiàn)Web訪問數(shù)據(jù)庫的關(guān)鍵是與數(shù)據(jù)庫服務(wù)器間

3、的接口,6.1.2 CGI,CGI(Common Gateway Interface,公關(guān)網(wǎng)關(guān)接口)是一種接口標(biāo)準(zhǔn),它使靜態(tài)的Web頁變?yōu)榻换ナ降拿襟w成為可能,圖6-1 通過CGI訪問Web數(shù)據(jù)庫模型,6.1.3 ODBC,ODBC(Open Database Connectivity,開放式數(shù)據(jù)庫連接)是一個數(shù)據(jù)庫編程接口,由微軟公司建議并開發(fā),圖6-2 ODBC應(yīng)用系統(tǒng)模型,6.1.4 JDBC,JDBC是較早的Web開發(fā)

4、平臺,在Web應(yīng)用中,嵌于網(wǎng)頁(HTML文件)中的Java applets利用JDBC來訪問數(shù)據(jù)庫,圖6-3 采用JDBC技術(shù)實(shí)現(xiàn)Web數(shù)據(jù)庫訪問模型,6.1.5 ADO,ADO(ActiveX Data Objects)是微軟公司W(wǎng)eb服務(wù)器端的內(nèi)置組件,ADO允許程序員在編寫程序時,通過一個OLEDB(數(shù)據(jù)庫對象鏈接嵌入技術(shù))提供者,如Microsoft SQL Server,Microsoft Access系統(tǒng)等,訪問并操縱數(shù)

5、據(jù)庫服務(wù)器中的數(shù)據(jù),圖6-4 采用ADO技術(shù)實(shí)現(xiàn)Web數(shù)據(jù)庫訪問模型,6.2 ODBC接口,6.2.1 ODBC接口概述ODBC是微軟公司建議并開發(fā)的數(shù)據(jù)庫API標(biāo)準(zhǔn),ODBC為異種數(shù)據(jù)庫提供了統(tǒng)一的訪問接口,它使應(yīng)用程序能用結(jié)構(gòu)化的查詢語言SQL訪問數(shù)據(jù)庫,從而對操作數(shù)據(jù)庫的應(yīng)用程序屏蔽了不同數(shù)據(jù)庫管理系統(tǒng)的訪問差異,也使數(shù)據(jù)庫系統(tǒng)的開發(fā)不僅僅局限于某個DBMS,,ODBC主要定義如下5方面的內(nèi)容:ODBC函數(shù)庫,它為應(yīng)用程

6、序提供連接DBMS、執(zhí)行SQL語句、提取訪問結(jié)果的程序接口SQL語法,它遵循X/Open and SQL Access Group Call Level Interface Specification標(biāo)準(zhǔn)錯誤代碼連接、登錄DBMS數(shù)據(jù)類型,6.2.2 ODBC的應(yīng)用,一個ODBC應(yīng)用的建立應(yīng)涵蓋以下主要內(nèi)容:建立需要操作數(shù)據(jù)庫的應(yīng)用程序,該程序通過調(diào)用ODBC函數(shù)提交SQL語句提供運(yùn)行環(huán)境,該環(huán)境應(yīng)包含數(shù)據(jù)庫驅(qū)動程序,它負(fù)

7、責(zé)處理ODBC函數(shù)調(diào)用,向數(shù)據(jù)源提交SQL請求,向應(yīng)用程序返回結(jié)果,必要時將SQL語法翻譯成符合DBMS語法規(guī)定的格式具有由用戶數(shù)據(jù)庫、DBMS等構(gòu)成的可供應(yīng)用程序訪問的數(shù)據(jù)源,,通過ODBC訪問數(shù)據(jù)庫的基本步驟如下:創(chuàng)立并配置數(shù)據(jù)源;建立一個與數(shù)據(jù)源的對話連接;向數(shù)據(jù)源發(fā)出SQL請求;定義一個緩沖區(qū)和數(shù)據(jù)格式用于存儲訪問結(jié)果;提取結(jié)果;處理各種錯誤;向用戶報告結(jié)果;關(guān)閉與數(shù)據(jù)源的連接,6.2.3 創(chuàng)建并配置數(shù)據(jù)源,

8、用戶可通過如下兩種方式創(chuàng)建或配置數(shù)據(jù)源:ODBC數(shù)據(jù)源管理程序或系統(tǒng)函數(shù)調(diào)用配置一個Access數(shù)據(jù)源的過程如下:在Windows系統(tǒng)下進(jìn)入控制面板,打開ODBC數(shù)據(jù)源,若是Windows 2000平臺,則打開管理程序下的數(shù)據(jù)源ODBC,屏幕上將出現(xiàn)如圖6-5所示的“ODBC數(shù)據(jù)源管理器”對話框,圖6-5 “ODBC數(shù)據(jù)源管理器”對話框,,選擇所使用的數(shù)據(jù)庫驅(qū)動程序,如選擇Microsoft Access Driver (*.md

9、b),單擊“完成”按鈕,出現(xiàn)如圖6-7所示的對話框,圖6-7 “ODBC Microsoft Access安裝”對話框,,選擇“系統(tǒng)DSN”標(biāo)簽,即選擇“系統(tǒng)數(shù)據(jù)源”。要使系統(tǒng)上的所有應(yīng)用程序都可以使用它,必須選用系統(tǒng)DSN,這是建立Web站點(diǎn)的需要。單擊“添加”按鈕,進(jìn)入“創(chuàng)建新數(shù)據(jù)源”對話框,如圖6-6所示,圖6-6 “創(chuàng)建新數(shù)據(jù)源”對話框,,在“數(shù)據(jù)源名”輸入框中鍵入數(shù)據(jù)源名,單擊“選擇”按鈕為該數(shù)據(jù)源指定一個已創(chuàng)建好的Ac

10、cess數(shù)據(jù)庫(*.mdb),該數(shù)據(jù)庫應(yīng)該是在Web應(yīng)用程序中即將訪問的數(shù)據(jù)庫。單擊“確定”按鈕,回到圖6-6“創(chuàng)建新數(shù)據(jù)源”對話框。單擊“確定”按鈕直到關(guān)閉ODBC數(shù)據(jù)管理器,此時完成一個數(shù)據(jù)源的建立過程。若要修改該數(shù)據(jù)源的配置,可在圖6-5“ODBC數(shù)據(jù)源管理器”對話框中選定要更改的數(shù)據(jù)源,再單擊“配置”按鈕,6.3 數(shù)據(jù)庫語言SQL,6.3.1 SQL概述SQL(Structured Query Language,結(jié)構(gòu)化查詢

11、語言)是一個被廣泛采用、適用于關(guān)系數(shù)據(jù)庫訪問的數(shù)據(jù)庫語言工業(yè)標(biāo)準(zhǔn)。它包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制等語句標(biāo)準(zhǔn)。SQL具有以下4部分功能:數(shù)據(jù)定義用于定義數(shù)據(jù)模式。數(shù)據(jù)查詢用于從數(shù)據(jù)庫中檢索數(shù)據(jù)。數(shù)據(jù)操縱用于對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行增加、刪除、 修改等操作。數(shù)據(jù)控制用于控制數(shù)據(jù)庫用戶的訪問權(quán)限,6.3.2 主要的SQL語句,查詢語句SELEC

12、TSELECT是SQL的核心語句,它功能強(qiáng)大,和各類SQL子句結(jié)合可完成多種復(fù)雜的查詢操作。其語法格式如下: SELECT [ALL | DISTINCT] fields_list [INTO] new_tablename FROM table_names [WHERE…]

13、[GROUP BY…][HAVING…][ORDER BY…],,插入數(shù)據(jù)語句INSERT INSERT可添加一個或多個記錄到一個表中。INSERT有兩種語法形式:INSERT INTO target [IN externaldatabase] (fields_list){DEFAULT VALUES|VALUES(DEFAULT|expression_list)INSERT INTO target

14、[IN externaldatabase] fields_list{SELECT…|EXECUTE…}刪除數(shù)據(jù)語句DELETEDELETE用于從一個或多個表中刪除記錄。其語法格式如下:DELETE FROM table_names[WHERE…],,更新數(shù)據(jù)語句UPDATE UPDATE語句用于更新表中的記錄。其語法格式如下:UPDATE table_nameSET Field_1=exp

15、ression_1[,Field_2=expression_2,…][FROM table1_name|view1_name[,table2_name|view2_name,…]][WHERE…],6.4 使用ADO訪問數(shù)據(jù)庫,6.4.1 概述ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對象)技術(shù)是一種良好的Web數(shù)據(jù)庫訪問解決方案ADO是一個ASP內(nèi)置的服務(wù)器組件,它是一座連接Web應(yīng)用程

16、序和OLEDB的橋梁ADO幾乎兼容所有的數(shù)據(jù)庫系統(tǒng)ADO支持多種程序設(shè)計語言,6.4.2 ADO的對象類和對象模型,ADO技術(shù)是通過ADO對象的屬性、方法來完成相應(yīng)的數(shù)據(jù)庫訪問的。ADO共有以下7種獨(dú)立對象類Connection——連接對象,表示與數(shù)據(jù)源的連接關(guān)系Command——命令對象,用于定義一些特定的命令語法,以執(zhí)行相應(yīng)的動作RecordSet——記錄集對象,用于表示來自數(shù)據(jù)庫表或命令執(zhí)行結(jié)果的記錄Property

17、——屬性對象,用于描述對象的屬性,每個ADO對象都有一組惟一的屬性來描述或控制對象的行為,,Error——錯誤對象,用于描述Connection對象在連接數(shù)據(jù)庫時發(fā)生的錯誤Field——域(字段)對象,用來表示RecordSet對象的字段,一個記錄行包含一個或多個域(字段)Parameter——參數(shù)對象,用來描述Command對象的命令參數(shù),是命令所需要的變量部分,圖6-8 ADO對象模型,6.4.3 ADO樣例,【例6-10】

18、 以下是一個視頻網(wǎng)站中某個頁面的源代碼(ch6-10.asp),它完成在頁面上列出數(shù)據(jù)庫表中所有電影的名稱、影片級別及主要演員的功能。存放這些電影信息的數(shù)據(jù)庫表名為films,點(diǎn)擊查看程序,6.5 用Connection對象連接數(shù)據(jù)庫,6.5.1 Connection對象的常用屬性和方法Connection對象的常用屬性:Mode用于設(shè)置數(shù)據(jù)的可用權(quán)限,其屬性

19、 值是系統(tǒng)定義的一些常量,只能在關(guān)閉Connection對象時設(shè)置。State指明Connection對象的當(dāng)前狀態(tài), 包括關(guān)閉、打開、正在連接、正在執(zhí) 行命令

20、等。ConnectionTimeout設(shè)置對象建立連接操作失敗時的等 待時間。DefaultDatabase設(shè)置連接數(shù)據(jù)源的默認(rèn)數(shù)據(jù)庫。ConnectionString設(shè)置連接數(shù)據(jù)源的一些信息,,Connection對象的常用方法:Open 用于建立到數(shù)據(jù)源的物理連接。Execute 用于執(zhí)行指定的查詢

21、、SQL語句、存儲過程 或特定的文本。Cancel 用于取消用異步方式執(zhí)行的Execute或 Open方法的調(diào)用。Close用于關(guān)閉一個連接。在對Connection對象 操作結(jié)束時,使用Close方法釋放所有與之關(guān)

22、 聯(lián)的系統(tǒng)資源,6.5.2 打開和關(guān)閉數(shù)據(jù)庫連接,打開Connection對象打開Connection對象的Open方法的語法格式如下: Open (ConnectionString, [UserID, ]Password [, Options] )關(guān)閉Connection對象關(guān)閉Connection對象的Close方法的語法格式如下:對象實(shí)例名.Close【例6-11】 以下是一段使用

23、連接對象的代碼,可以反映連接對象應(yīng)用的基本步驟,查看程序,6.5.3 通過Connection對象執(zhí)行SQL語句,打開Connection對象后,可以通過對象的Execute方法實(shí)現(xiàn)SQL語句的執(zhí)行過程。Execute方法的語法格式如下:Execute (CommandText , RecordsAffected , Option)【例6-12】 下列代碼從數(shù)據(jù)庫表sales中檢索出所有記錄并返回記錄數(shù)。,點(diǎn)擊查看程序,6.5

24、.4 Connection對象的事務(wù)處理,【例6-14】 本例是進(jìn)行事務(wù)處理的一段代碼 ,6.6 用Command對象執(zhí)行數(shù)據(jù)庫操作,6.6.1 Command對象的常用屬性和方法執(zhí)行SQL語句可以用打開的Connection對象,也可以用ADO的Command(命令)對象達(dá)到同樣的目的。Command對象的常用屬性和方法如下:ActiveConnection屬性指定與Command對象關(guān)聯(lián)的已打開 的連接

25、 對象。Name屬性指定Command對象的名字。CommandText屬性定義一個可執(zhí)行的命令串。CommandType屬性指定命令的類型。Execute方法執(zhí)行命令,6.6.2 用Command對象執(zhí)行SQL語句,【例6-16】 用Command對象的Execute方法從sales表中檢索出所有記錄。源程序如下:,6.6.3 用Comman

26、d對象調(diào)用存儲過程,在Web數(shù)據(jù)庫程序設(shè)計中使用SQL存儲過程有下列好處:執(zhí)行SQL存儲過程比執(zhí)行SQL命令快得多。當(dāng)一個SQL語句包含在存儲過程中時,服務(wù)器不必每次執(zhí)行它時都要分析和編譯它。在多個網(wǎng)頁中可以調(diào)用同一個存儲過程,使站點(diǎn)易于維護(hù)。一個存儲過程可以包含多個SQL語句,這意味著可用存儲過程建立復(fù)雜的查詢。存儲過程可以接收和返回參數(shù),這是實(shí)現(xiàn)復(fù)雜數(shù)據(jù)庫訪問功能的必要基礎(chǔ)。,,存儲過程的調(diào)用形式 存儲過程的調(diào)用也是一個C

27、ommand對象的執(zhí)行過程【例6-17】 實(shí)現(xiàn)對存儲過程HitCount的調(diào)用。源程序如下: ,,用Parameter對象實(shí)現(xiàn)存儲過程的參數(shù)傳遞Parameter對象代表基于參數(shù)化查詢或與存儲過程的Command對象相關(guān)聯(lián)的輸入、輸出參數(shù)及存儲過程的返回值。用Command對象的CreateParameter方法可以建立一個參數(shù)對象,其語法格式如下:CreateParameter( Name,Type,Direction,

28、Size,Value)【例6-18】 利用對一個存儲過程LoginCheck的調(diào)用,驗(yàn)證登錄用戶的合法性,點(diǎn)擊查看源程序,6.7 用RecordSet對象控制數(shù)據(jù),6.7.1 RecordSet對象簡介RecordSet對象可以實(shí)現(xiàn)以下功能:指定可以檢查的記錄。移動記錄。添加、更改和刪除記錄。通過更改記錄更新數(shù)據(jù)源。管理RecordSet的總體狀態(tài),6.7.2 RecordSet對象的創(chuàng)建和數(shù)據(jù)讀取,RecordS

29、et對象的創(chuàng)建使用Server.CreateObject(“ADODB. RecordSet”)創(chuàng)建RecordSet對象,然后通過打開RecordSet對象創(chuàng)建一個與某個數(shù)據(jù)庫表相關(guān)聯(lián)的RecordSet對象實(shí)例可以采用Connection和Command對象的Execute方法,當(dāng)用Execute方法從一個數(shù)據(jù)庫返回查詢結(jié)果時,將自動創(chuàng)建一個RecordSet對象,,RecordSet對象數(shù)據(jù)的讀取【例6-19】 在Web頁

30、面上顯示表sales的所有記錄數(shù)據(jù),讀取字段值時利用字段順序號。源程序如下 Show Table sales …………(點(diǎn)擊看全部),6.7.3 記錄集記錄間的移動方法和記錄集游標(biāo),移動方法包括:MoveNumRecords在記錄集中向前或向后移動指 定條記錄MoveFirst

31、移動至記錄集中的第一條記錄MoveLast移動至記錄集中的最后一條記 錄MovePrevious移動至當(dāng)前記錄的上一條記錄MoveNext移動至當(dāng)前記錄的下一條記錄,,游標(biāo)的類型有以下4種 :adOpenFowardOnly 前向游標(biāo),只能在記錄集中向前移 動。

32、adOpenKeyset可在記錄集中向前或向后移動。 若 另一用戶刪除或改變一條記錄,記錄 集將反映這種變化,但若增加一條新

33、 記錄,新記錄不會出現(xiàn)在記錄集中。adOpenDynamic可在記錄集中向前或向后移動。 其 他用戶造成的任何改變都會動態(tài)反映 在記錄集中。adOpenStatic可在記錄集中

34、向前或向后移動。不 在記錄集中反映其他用戶對記錄集造 成的任何改變,,【例6-20】 在Web頁中列出數(shù)據(jù)庫表sales的GoodsName域,要求顯示順序從最后一條記錄開始直至第一條記錄為止 BackWard <%Set Conn=Server.Creat

35、eObject ("ADODB.Connection")Set RS=Server.CreateObject ("ADODB.RecordSet")Conn.Open "MyData"‘打開記錄集時,將指定游標(biāo)的類型為adOpenStatic,可在記錄集中前向或后向移動RS.Open "SELECT * FROM sales",Co

36、nn,adOpenstatic…………….(點(diǎn)擊查看全部),6.7.4 記錄集記錄的修改和記錄鎖定,使用RecordSet對象的一組方法對記錄集中的記錄進(jìn)行增、刪、改操作 AddNew [Fields,Values]方法 Delete [AffectRecords]方法 Update [Fields,Values]方法 CancelUpdate方法 UpdateBatch方法 CancelBatch方法,,【例6-2

37、1】 在數(shù)據(jù)庫表sales中插入一條新記錄 Insert a Record <%Set Conn=Server.CreateObject (" ADODB.Connection")Set RS=Server.CreateObject (" ADODB.RecordSet")Conn.Open " MyData"

38、'記錄集打開時,將指定鎖定方式為adLockPessimisticRS.Open " SELECT * FROM sales",Conn,adOpenDynamic,adLockPessimistic……(點(diǎn)擊查看全部),6.7.5 RecordSet對象的其他重要操作,指定記錄集的最大容量 記錄集對象的MaxRecords屬性可以限制記錄集中存放的記錄數(shù)記錄集中記錄的分頁處理與分頁

39、相關(guān)的屬性包括:PageSize指定一頁的記錄數(shù),它是分頁的關(guān)鍵。AbsolutePage表示當(dāng)前記錄所在頁的頁號。AbsolutePosition表示當(dāng)前記錄相對于第一條記錄的位置,當(dāng)前記錄是第一條記錄時,其值為1PageCountRecordSet對象總的頁數(shù)。RecordCountRecordSet對象總的記錄數(shù),,用數(shù)組處理記錄集數(shù)據(jù) 【例6-23】 將從

40、表sales中取出的記錄放入一個數(shù)組中" & SalesArray(0,i)) Reponse.Write (" " & SalesArray(1,i))nextRS.CloseConn.Close%>,本 章 小 結(jié),本章著重介紹了一種有效的Web數(shù)據(jù)庫解決方案,即利用ASP服務(wù)器端的組件ActiveX Data Objects(ADO)訪問數(shù)據(jù)庫ADO共有7個對

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論